Gli strumenti di FileMaker: Sostituisci contenuto campo

Introduzione

L’idea di questo articolo mi è venuta durante una casuale conversazione con un cliente proprio in questi giorni. Sostituisci contenuto campo è tra le istruzioni di script più utili nel panorama FileMaker. Allo stesso modo rientra tra gli strumenti più pericolosi messi a disposizione dello sviluppatore.

Alzi la mano chi di voi non ha mai sostituito per sbaglio migliaia di informazioni per un OK premuto un po’ troppo a cuor leggero. Su, non vi vergognate: capita, ve lo posso assicurare, anche ai nostri cari Guru!

Sosituisci contenuto campo: cos’è, come funziona

Partiamo dall’inizio: il comando Sostituisci contenuto campo permette di sostituire il contenuto di un campo selezionato in tutti i record o in gruppo limitato da una ricerca (foundset) con un nuovo valore, che può essere fisso, calcolato o seriale. È presente fin dalla versione 6 di FileMaker Pro.

Si può attivare in due modi:

  • dal menu Record (se non è stato rimosso o modificato ricorrendo ad un menu personalizzato);
  • come istruzione di script.

Utilizzo da menu Record

Come voce di menu, il comando Sostituisci contenuto campo si attiva solo quando un campo è selezionato e attivo, altrimenti rimane a fondo grigio.

menu_sostituisci_contenuto_campo

Premendo Sostituisci contenuto campo si apre una finestra di dialogo contenente varie opzioni.

  • Sostituisci con “<valore>”: lasciando selezionata questa opzione il contenuto di tutti i valori nel foundset verrà sovrascritto con un valore costante, cioè il dato contenuto nel campo del record attivo. Ad esempio, se non è presente nulla (“”) i valori del campo in tutti i record saranno rimossi. Se invece tra le virgolette è presente il valore 1 (“1”) in tutti i record del foundset il campo attivo avrà il valore 1.
  • sostituisci con numeri di serie: il valore nel campo sarà impostato con l’incremento selezionato in tutti record.

Nota bene: spuntando la voce Aggiornare N. serie in Opzioni di immissione il numero di serie successivo inserito automaticamente al momento della creazione di un nuovo record si conformerà all’operazione effettuata, ripartendo dall’ultimo numero utilizzato. È di fatto il modo più semplice per intervenire sul numero di serie inserito automaticamente, senza utilizzare l’area di gestione database.

  • Con il risultato calcolato: il valore inserito può essere calcolato attraverso le funzioni del motore di calcolo di FileMaker.

Sostituisci-contenuto-campo-tre-opzioni

Utilizzo come istruzione di script

Uno sviluppatore accorto dovrebbe valutare con molta attenzione se lasciare un comando così “pericoloso” a portata di click nei menu delle soluzioni che sviluppa. Nelle attività quotidiane di sviluppo, tuttavia, la possibilità di sostituire più informazioni con un solo comando è molto utile, soprattutto quando si compilano degli script.

Il funzionamento è pressoché identico. Una volta scelta l’istruzione che ci interessa dovremo specificare il campo target, cioè il campo su cui eseguire la sostituzione massiva.

sostituisci_scelta_campo_target

Poi potremo decidere il tipo di contenuto che vogliamo inserire. L’unica sostanziale differenza con i comandi già visti per l’utilizzo da menu è che la prima opzione non contiene più uno specifico valore ma il contenuto corrente, ovvero il contenuto scritto nel campo del record da cui partirà la sostituzione e che sarà usato nei record del foundset.

sostituisci_contenuto_corrente

L’ultima opzione che abbiamo a disposizione è Esegui senza finestra, e consente di eseguire la sostituzione senza visualizzare una finestra di conferma o di scelta delle opzioni. Una volta abilitata rende il comando totalmente compatibile anche all’esecuzione di script programmati di FileMaker Server, su FileMaker Webdirect e nella Pubblicazione Web personalizzata.

Avvertenze per l’uso

[box type=”warning” align=”aligncenter” ]Il comando è irreversibile. È possibile annullare l’operazione appena dopo averla avviata, spesso tuttavia è così rapida che non si ha il tempo di premere il pulsante Annulla. Nel frattempo una parte dei dati potrebbe essere già stata sostituita: la procedura effettua le modifiche sui record a gruppi di 100.

Non è possibile utilizzare questo comando su campi di tipo Calcolo o Riassunto, né su campi che abbiano impostata l’opzione di memorizzazione globale.

I valori sono assegnati in modo seriale a seconda dell’ordine in cui si trovano i record, a partire dal primo fino all’ultimo. Non importa quale sia il record attivo.

L’istruzione di script Esegui senza finestra impedisce la visualizzazione della finestra di dialogo Sostituisci contenuto campo quando viene eseguita l’istruzione di script.

Eventuali modifiche al record attivo devono essere salvate prima di eseguire l’istruzione di script Sostituisci contenuto campo, pena il rischio di risultati imprevisti. La sostituzione infatti viene effettuata in base ai dati “vecchi” e non a quelli modificati fintanto che il record non viene salvato.

La guida in linea di FileMaker Pro suggerisce caldamente di utilizzare sempre date con formato anno in 4 cifre quando si operano sostituzioni con questo tipo di dati.[/box]

Conclusione

Lo strumento Sostituisci contenuto campo può essere utile per molti scopi, come storicizzare dei calcoli o aggiungere un prefisso o un suffisso a una serie di dati già inseriti da tempo. Può servire inoltre a raccogliere le informazioni presenti in più campi all’interno di un unico campo, o semplicemente ad inserire dei valori casuali in un gruppo di record selezionati.

Nel file che allego a questo articolo ho inserito qualche [download id=”1086″] di funzionamento.

Ditemi, qual è l’errore più clamoroso che avete fatto utilizzando questo strumento? E qual è la funzione più utile per cui invece lo avete utilizzato o lo usate quotidianamente? Raccontatemi le vostre sostituzioni azzardate nei commenti: vi aspetto anche sulla nostra  pagina Facebook!




Risposte
Visite
Domanda
1
risposta
79
vis.
domanda inviata 11 mesi fa da
aggiornato 11 mesi fa da
6 Giugno 2024 09:47
Grazie per la segnalazione. Era un errore nella descrizione, il meetup è corretto. :) .g.
domanda inviata 11 mesi fa da