Script per mostrare lista con flag

Come utilizzare gli script. Automatizzare gli archivi. Utilizzo dei pulsanti

Moderatore: Moderatori

Rispondi
PennaBianca
Messaggi: 4
Iscritto il: giovedì 18 aprile 2024, 10:10
Versione FileMaker: 20.3
Sistema operativo: Windows

Script per mostrare lista con flag

Messaggio da PennaBianca » giovedì 18 aprile 2024, 10:21

Buongiorno a tutti, sono una autodidatta di FileMaker. Lo usiamo in ufficio come gestionale e di tanto in tanto ho la necessità di effettuare delle modifiche.
Ora sono in difficoltà con uno script. Ho una serie di record che contengono vari dati, tra cui una casella di controllo da spuntare o lasciare in bianco; la lista valori corrispondente è solo 1. Lo script dovrebbe far sì che la lista mostri solo i record senza la spunta. Ho quindi impostato il valore "0", ma in questo modo lo script non mostra alcun record. Per verificare che fosse corretto, ho impostato il valore "1" e in questo caso lo script propone solo i record con la spunta.
Non riesco a capire dove sbaglio: spero di aver descritto correttamente la situazione.
Grazie

Avatar utente
fabio.beri
Messaggi: 1970
Iscritto il: sabato 4 ottobre 2014, 16:24
Versione FileMaker: 2023
Sistema operativo: Win/Mac

Re: Script per mostrare lista con flag

Messaggio da fabio.beri » giovedì 18 aprile 2024, 15:41

Salve. Nello script:

PASSA AL MODO TROVA
IMPOSTA CAMPO [TABELLA::CAMPO] CON "="
ESEGUI LA RICERCA
Fabio Beri
Moderatore FMPro.it
Sviluppatore OmniaGest 5 - FileMaker 15/16/17/18/19

Omnia Studio

-----------------------------------------
http://tinyurl.com/omniagest2024

Avatar utente
fabio.beri
Messaggi: 1970
Iscritto il: sabato 4 ottobre 2014, 16:24
Versione FileMaker: 2023
Sistema operativo: Win/Mac

Re: Script per mostrare lista con flag

Messaggio da fabio.beri » giovedì 18 aprile 2024, 16:15

La ricerca con il carattere "=" (senza le virgolette), consente di trovare tutti i records privi di valore nel campo.
Fabio Beri
Moderatore FMPro.it
Sviluppatore OmniaGest 5 - FileMaker 15/16/17/18/19

Omnia Studio

-----------------------------------------
http://tinyurl.com/omniagest2024

PennaBianca
Messaggi: 4
Iscritto il: giovedì 18 aprile 2024, 10:10
Versione FileMaker: 20.3
Sistema operativo: Windows

Re: Script per mostrare lista con flag

Messaggio da PennaBianca » venerdì 19 aprile 2024, 9:04

Grazie per la risposta e la spiegazione. Qualcosa però non va, perché il risultato è una lista vuota.
Questo è quello che ho inserito (fa parte di uno script più lungo con diversi parametri, che non ho impostato io):
Else If [ Get ( ParametroScript ) = "assemblaggi" ]
Vai al formato [ “assemblaggi elenco” (ASSEMBLAGGI) ]
Passa al modo Trova [ ]
[ Pausa: Disattivata]
Imposta campo [ ASSEMBLAGGI::flagChiuso; "=" ]
Esegui la ricerca [ ]
Ordina i record [ ]
[ Senza finestra ]
Vai a Record/Richiesta/Pagina [ Primo ]

Se invece inserisco: Imposta campo [ ASSEMBLAGGI::flagChiuso; "1" ] compare l'elenco dei record con la spunta.

Avatar utente
fabio.beri
Messaggi: 1970
Iscritto il: sabato 4 ottobre 2014, 16:24
Versione FileMaker: 2023
Sistema operativo: Win/Mac

Re: Script per mostrare lista con flag

Messaggio da fabio.beri » venerdì 19 aprile 2024, 16:20

Leggendo lo script si sta dicendo a FileMaker:

VAI IN MODO TROVA
DISATTIVA LA PAUSA
IMPOSTA IL CAMPO CHIAMATO "FLAG_CHIUSO" DELLA TABELLA ASSEMBLAGGI CON IL VALORE "UGUALE A VUOTO"
ESEGUI LA RICERCA
ORDINA
VAI AL PRIMO RECORD

Ora, alla luce di ciò, se si vuole trovare tutti i records vuoti in quel campo, loi script è corretto, altrimenti va modificato. Non potendo vedere i dati, lascio a Lei di valutare la situazione.
Fabio Beri
Moderatore FMPro.it
Sviluppatore OmniaGest 5 - FileMaker 15/16/17/18/19

Omnia Studio

-----------------------------------------
http://tinyurl.com/omniagest2024

Meccanico1991
Messaggi: 68
Iscritto il: venerdì 11 dicembre 2020, 8:32
Versione FileMaker: 14
Sistema operativo: OSX

Re: Script per mostrare lista con flag

Messaggio da Meccanico1991 » venerdì 19 aprile 2024, 21:02

Mi permetto di allegare un file di esempio, utilizzando solamente il comando di script "Esegui la ricerca" ;)

Wiwa
Non hai i permessi necessari per visualizzare i file allegati in questo messaggio.

PennaBianca
Messaggi: 4
Iscritto il: giovedì 18 aprile 2024, 10:10
Versione FileMaker: 20.3
Sistema operativo: Windows

Re: Script per mostrare lista con flag

Messaggio da PennaBianca » lunedì 22 aprile 2024, 9:52

Grazie, soprattutto per il file di esempio, che è molto chiaro.
Ho semplificato il mio script come da esempio ma la ricerca per record vuoti non funziona; se imposto la ricerca per casella di controllo "1" invece funziona.
Questa è la parte di script che mi interessa:
Else If [ Get ( ParametroScript ) = "assemblaggi" ]
Vai al formato [ “assemblaggi elenco” (ASSEMBLAGGI) ]
Esegui la ricerca [ Richieste di ricerca specificate: Ricerca dei record; Criteri: ASSEMBLAGGI::flagChiuso: “=” ][ Ripristina ]
Ordina i record [ ][ Senza finestra ]
Vai a Record/Richiesta/Pagina [ Primo ]

In questo modo, ottengo una lista vuota.
Se al posto di "=" metto "1" invece ottengo una lista di record con la spunta.
Non riesco a capire cosa non funziona. Il campo flagChiuso è un gruppo caselle di controllo, che prende valori da _boolean (che ha un unico valore, 1).

Avatar utente
fabio.beri
Messaggi: 1970
Iscritto il: sabato 4 ottobre 2014, 16:24
Versione FileMaker: 2023
Sistema operativo: Win/Mac

Re: Script per mostrare lista con flag

Messaggio da fabio.beri » martedì 23 aprile 2024, 13:32

Scusate, ma già al secondo post era chiaro che quanto indicato nel primo post non era corrispondente a verità.

Quando si scrive
Ora sono in difficoltà con uno script. Ho una serie di record che contengono vari dati, tra cui una casella di controllo da spuntare o lasciare in bianco; la lista valori corrispondente è solo 1
Significa che i record hanno, nella tabella, valore 1 oppure valore vuoto.

Di conseguenza è impossibile, che facendo una richiesta di ricerca con valore "=" , non escano records. E' semplicemente impossibile.
Fabio Beri
Moderatore FMPro.it
Sviluppatore OmniaGest 5 - FileMaker 15/16/17/18/19

Omnia Studio

-----------------------------------------
http://tinyurl.com/omniagest2024

PennaBianca
Messaggi: 4
Iscritto il: giovedì 18 aprile 2024, 10:10
Versione FileMaker: 20.3
Sistema operativo: Windows

Re: Script per mostrare lista con flag

Messaggio da PennaBianca » oggi, 12:22

Fabio, scrivi
Scusate, ma già al secondo post era chiaro che quanto indicato nel primo post non era corrispondente a verità.
Non capisco a cosa ti riferisci. Forse sono stata poco precisa, non lo escludo.
Di conseguenza è impossibile, che facendo una richiesta di ricerca con valore "=" , non escano records. E' semplicemente impossibile.
Eppure era così. Dico era, perché ho riprovato e qualcosa è cambiato.
Script(tale e quale a prima):
Else If [ Get ( ParametroScript ) = "assemblaggi" ]
Vai al formato [ “assemblaggi elenco” (ASSEMBLAGGI) ]
Esegui la ricerca [ Richieste di ricerca specificate: Ricerca dei record; Criteri: ASSEMBLAGGI::flagChiuso: “=” ][ Ripristina ]
Ordina i record [ ][ Senza finestra ]
Vai a Record/Richiesta/Pagina [ Primo ]

Ho ottenuto una lista con un record. I record del formato sono 12. Quelli con il flag spuntato sono 4. Quindi dovrei ricavare una lista di 8 record senza flag, ma appunto me ne mostra 1 solo (creato 10 minuti fa, gli altri sono stati creati prima che scrivessi lo script).
A questo punto ho creato un nuovo record. Ho riapplicato lo script e trovo 2 record, quelli creati oggi. La casella del flag esisteva già da prima che mettessi mano allo script.

Avatar utente
fabio.beri
Messaggi: 1970
Iscritto il: sabato 4 ottobre 2014, 16:24
Versione FileMaker: 2023
Sistema operativo: Win/Mac

Re: Script per mostrare lista con flag

Messaggio da fabio.beri » oggi, 14:43

Dunque, ci tengo a spiegare la mia affermazione. Quando scrivo, che "quanto indicato non era corrispondente a realtà", è perché a determinata situazione, corrispondono dei risultati.

Nello specifico:
1. Se un record è vuoto, si può interrogare e individuare, in modo TROVA con il carattere " = " e quel record uscirà
2. Se il record non è vuoto, si può interrogare e individuare, in modo TROVA con il carattere "* " e quel record uscirà.

Non esistono altre casistiche, quindi quando scrivo che non corrispondeva a realtà, significa che se Lei scrive che in alcuni record il campo era vuoto, possiamo essere sicuri che quei records sono interrogabili con il carattere "=". Il fatto che non uscissero in ricerca significa che quei campi, diversamente da quanto rappresentato, erano semplicementi pieni di un qualche valore.

Il fatto che in un determinato formato, l'utente non veda il valore, non significa che il campo sia vuoto. Questo è un concetto fondamentale, perché l'oggetto potrebbe avere delle impostazioni che fanno sparire il valore (colore bianco sul campo piuttosto che impostazione sul "nascondi se".

Altro concetto basiliare: le situazioni, in un file FileMaker, non cambiano da sole. Sarà l'utente a cambiare qualcosa, come valori, come calcoli, come script, ma le cose non cambiano da sole.

A questo punto, per chiudere il tema, consiglio di fare ciò:

Crei un formato nuovo con VISTA MODULO
Inserisca i campi nel formato, senza alcuna proprietà (lista valori, caselle di verifica...)
Scorra i record in avanti a partire dal primo, per assicurarsi che i campi siano effettivamente privi di valore
Clicchi nel MENU MODO e sull'opzione PASSA AL MODO TROVA
Scriva nel campo incriminato, il carattere = e prema il tasto INVIO. Dovranno uscire NECESSARIAMENTE i records vuoti.

Se il risultato Le aggrada e soddisfa la visualizzazione dei records vuoti, allora il problema è nello script e non nei records

A quel punto, nel dover modificare lo script, lo strutturi in maniera trasparente, ossia così, come le ho scritto:

Codice: Seleziona tutto

Passa al modo Trova [ ]
[ Pausa: Disattivata]
Imposta campo [ ASSEMBLAGGI::flagChiuso; "=" ]
Esegui la ricerca [ ]
anziché così

Codice: Seleziona tutto

Vai al formato [ “assemblaggi elenco” (ASSEMBLAGGI) ]
Esegui la ricerca [ Richieste di ricerca specificate: Ricerca dei record; Criteri: ASSEMBLAGGI::flagChiuso: “=” ][ Ripristina ]
perché nel primo caso, rileggendo lo script, questo sarà più immediato e di facile lettura. Mentre con il memorizzare dentro "esegui la ricerca", sarà più facile ricorrere agli errori. Un ultimo concetto fondamentale: Lo script deve essere l'automatismo di quanto l'utente farebbe a mano", quindi in questo caso, si proverà una ricerca a mano e se la ricerca funziona, si applica nello script

Spero di esserle stato di aiuto. Buona giornata.
Fabio Beri
Moderatore FMPro.it
Sviluppatore OmniaGest 5 - FileMaker 15/16/17/18/19

Omnia Studio

-----------------------------------------
http://tinyurl.com/omniagest2024

Rispondi