Nell'articolo precedente di questa rubrica abbiamo visto come FileMaker ci consenta di importare dati da una vasta gamma di formati.

Proseguiamo nel nostro lavoro di import e passiamo ora ad importare un file Excel.

Prima di tutto, una raccomandazione: quando viene fatta l’operazione di import è opportuno lanciarla dal formato che mostra i record della tabella Destinazione. Dopo aver dato il comando

File – Importa record – File...

ci verrà chiesto di selezionare il file origine. Una volta selezionato il file e data conferma (Apri), comparirà la finestra che ci consentirà di gestire la nostra importazione.

immagine 1

Primo passo: la mappatura

La prima cosa da definire è la cosiddetta mappatura, ovvero l’indicazione dei campi che devono essere oggetto di importazione. Nel nostro esempio, nel file origine (campi di sinistra) ci sono colonne che non ci interessa importare e che non trovano corrispondenza con i campi della destinazione (campo Note).

A questo punto è necessario allineare orizzontalmente il campo destinazione e il campo origine, tenendo premuto con il mouse all'altezza della doppia freccia e spostandoci in verticale, per poi cliccare sul trattino “-“ facendolo diventare freccia.

immagine 2

FileMaker ci permette di organizzare la mappatura con un solo comando usando le opzioni Organizza per.

Qui è possibile selezionare:

  • Nomi corrispondenti: FileMaker imposta la mappatura allineando automaticamente i campi che hanno lo stesso nome nell’origine e nella destinazione.
  • Ultimo: FileMaker vi proporrà la mappatura dell’ultima importazione fatta con questa destinazione.
  • Di creazione: secondo l'ordine con cui sono stati creati i campi.
  • Alfabetico: secondo ordine alfabetico.
  • Di tipo di campo: in base al tipo di campo.
  • Importazione personalizzata: secondo parametri definiti dall'utente.

immagine 3

All'interno della finestra, in basso a sinistra, compare l’opzione Non importare il primo record (contiene nomi di campo): flaggando questa opzione il sistema non importerà il primo record, che in questo caso coincide con l’intestazione delle colonne del file di Excel, ovvero il nome dei campi.

immagine 4

Secondo passo: definire il tipo di importazione

Una volta fatto il lavoro di mappatura occorre decidere il tipo di importazione (vedi il riquadro in basso a sinistra della finestra di dialogo dell’import).

Abbiamo tre possibilità:

1. Aggiungi nuovi record. Se si attiva tale opzione FileMaker aggiungerà al nostro database tutti i record che sono presenti nel file origine. Esempio: se la rubrica del nostro database contiene 50 contatti e il file origine ne contiene 70, al termine dell’importazione nel nostro database ci saranno 120 contatti.

Nota bene: se il file origine è una tabella di FileMaker, la procedura importerà solo i record del gruppo trovato. In termini più espliciti: se il nostro database ha 50 contatti e il file FileMaker origine ha complessivamente 70 contatti di cui 10 trovati da precedente ricerca, al termine dell’importazione nel nostro database ci saranno 60 contatti.

2. Aggiorna i record esistenti in un gruppo individuato. Se si attiva tale opzione FileMaker sostituirà i dati contenuti nel nostro database con i dati presenti nell’origine. Riprendiamo l’esempio: la nostra rubrica contiene 50 contatti ed il nostro file Excel ne contiene 70. Con l’opzione Aggiorna i record esistenti in un gruppo individuato, FileMaker sostituisce i dati del primo contatto della rubrica del nostro database (primo record nel database) con il primo contatto del file Excel, i dati del secondo contatto nella rubrica FileMaker con i dati del secondo contatto del file Excel, etc.

Ed i contatti eccedenti del file Excel? Fino al 50° record FileMaker sostituisce i dati con i primi 50 contatti del file xls, ma gli altri 20 (dal 51° al 70°) che fine fanno? Possiamo decidere: se vogliamo che questi 20 eccedenti vengano importati, basta cliccare sul riquadro Aggiungi i dati rimanenti come nuovi record, ed avremo nel nostro database 70 record complessivi (50 sostituiti e 20 importati ex novo). Diversamente, FileMaker non terrà conto dei record eccedenti.

3. Aggiorna i record che corrispondono ai record selezionati. Se si attiva tale opzione FileMaker aggiornerà i record contenuti nel nostro database che corrisponderanno ai dati dell’origine prendendo a riferimento determinati campi di confronto (campi che decidiamo noi mettendo il segno “=” nella mappatura). Esempio: se nella mia rubrica “destinazione” di 50 contatti metto come campi di confronto “cognome” e “nome”, FileMaker aggiornerà solo i contatti i cui cognomi e nomi coincidono perfettamente sui 2 fronti (quindi, se tra i miei 50 contatti nella destinazione c’è il contatto “Rossi Mario”, questo verrà modificato con i dati dell’origine del contatto “Rossi Mario”, ovviamente qualora questo ci sia nel file excel).

Ed i record che non corrispondono che fine fanno? Possiamo decidere: se vogliamo che quelli non corrispondenti vengano importati è sufficiente flaggare il riquadro Aggiungi i dati rimanenti come nuovi record; diversamente FileMaker non terrà conto di quelli non corrispondenti.

Terzo passo: lanciare l'importazione

Dopo aver impostato la nostra importazione possiamo quindi lanciare la procedura vera e propria. Prima di iniziare, però, FileMaker potrebbe mostrarci un ulteriore avviso:

immagine 5

Perché "potrebbe”? Questo avviso viene mostrato solo se nella destinazione ci sono dei campi con caratteristiche di immissione automatica (numero di serie, creazione o modifica, calcoli proposti, riferimenti, etc). Con questa finestra FileMaker ci chiede: vuoi che per i record che vado ad importare tenga conto delle regole assegnate ai campi di immissione automatica?

In termini più espliciti: prendendo sempre il nostro esempio, il mio campo Data creazione (immissione automatica data di creazione) valorizzerà appunto la data di creazione nei record importati se flaggo il riquadro Esegui opzioni proposte durante l’importazione. Diversamente, per i record importati il campo Data creazione non verrà valorizzato alcun valore.

Attenzione: se il campo Data creazione è oggetto di importazione, anche se viene flaggato il riquadro Esegui opzioni proposte durante l’importazione (e quindi diciamo al sistema “tieni conto delle regole di immissione automatica”), FileMaker farà prevalere i valori di Origine. In termini più chiari: se dall’origine importo anche le date di creazione, la Destinazione erediterà i valori dell’origine e non terrà conto del fatto che per quel campo c’è una regola di immissione automatica. 

Tenete presente anche un altro dato: a importazione terminata, il foundset (gruppo record attivi nel formato) verrà sostituito con i record importati (ovviamente se si sono aggiunti record). Tornando all'esempio iniziale: se nella mia destinazione ho 50 record e ne importo 20, al termine dell’importazione il formato visualizzerà solo i 20 record importati.

Conclusioni

Tutto quanto detto sino ad ora in tema di importazione da file vale per una procedura in cui è possibile partire da file in cui i campi sono già definiti. Nei prossimi articoli ci occuperemo in dettaglio delle procedure di importazione dati in FileMaker, a partire da file in formato di testo.

Hai trovato un modo semplice ed efficace di esportare i dati in FileMaker? Condividi le tue idee con i nostri Guru: entra anche tu nella community Guru Corner!

2 Commenti

  1. Dovendo aggiornare dei record da Excel in Filemaker, tenendo presente che:
    - la colonna da importare in Excel è espressa per ogni singola cella con soli valori alfabetici (a, b, c, ecc.), o numerici (01, 02, 03, ecc.)
    - il campo in Filemaker che accoglie l'aggiornamento è formattato come "Testo" e collegato ad una lista valori strutturata, ad esempio, in questo modo:
    a) no
    b) si
    c) da valutare
    e che è stata spuntata l'opzione "completa automaticamente usando la lista valori",
    come posso ottenere nel campo di importazione in Filemaker la descrizione completa? In pratica, con l'importazione mi importa correttamente il valore della rispettiva cella di Excel, però non completa automaticamente usando la lista valori. C'è un modo per ottenere invece l'intera descrizione importando da Excel la sola lettera?
    Grazie

    • Ciao Gilberto
      Per ottenere il risultato che vuoi tu devi creare una seconda tabella (che puoi ad esempio chiamare “LISTA”) con 2 campi:
      - “VALORE_DA_EXCEL”. Esempio: “a”, “b”, “c”,.....;
      - “DESCRIZIONE”. Esempio: “a) no”, “b) si”, “c) da valutare”, ....;
      A questo punto devi fare 2 semplici passaggi:
      1. metti in relazione la tua tabella (quella che riceve i dati da excel) con la tabella LISTA (relazione campo della tua tabella che riceve dati di Excel con campo VALORE_DA_EXCEL della tabella LISTA);
      2. al campo della tua tabella che riceve i dati di Excel aggiungi l’opzione immissione automatica valore calcolato impostando quale risultato di calcolo il valore del campo “DESCRIZIONE” della tabella LISTA (nel riquadro della finestra “specifica calcolo” apparirà “LISTA::DESCRIZIONE”).
      A questo punto il gioco è fatto: quando importi il file excel, devi stare attento a flaggare il riquadro “Esegui opzione proposte durante l’importazione” (vedi nel presente articolo il “Terzo passo”) e vedrai che nei tuoi campi ci sarà la descrizione completa.
      Ciao

LASCIA UN COMMENTO

Please enter your comment!
Please enter your name here