Generazione report studente tramite modello ODT
Questa mini guida sulla generazione dei report da anagrafiche studenti tramite modello .odt, è suddivisa nei seguenti paragrafi:
- INTRODUZIONE
- DEFINIZIONE SEGNAPOSTI
- LISTE DI SEGNAPOSTI
- SEGNAPOSTI IN TABELLE
- BLOCCHI CONDIZIONALI
- ELENCO SEGNAPOSTI DISPONIBILI
- CARICAMENTO A SISTEMA DEL MODELLO ODT
- UTILIZZO DEL MODELLO DI CONTRATTO
1. INTRODUZIONE
Nella direzione di consentire alla singola scuola una gestione autonoma di certificati, attestati, report e documenti di altro tipo, il sistema permette di preparare ed attivare in totale autonomia documenti che saranno poi esportabili per ogni corso e per ogni studente iscritto ai corsi.
Il report dovrà essere un modello in formato .odt, cioè OpenOffice, il contenuto potrà integrare un contenuto dinamico tramite l’utilizzo di segnaposto rispondenti ad una sintassi predefinita, potendo scegliere tra un ampio elenco di entità e di attributi che permettono di generare documenti di vario tipo.
Il sistema permetterà anche di accedere ai campi personalizzati dei corsi e degli utenti, o di inserire tabelle per elencare gli iscritti, con una sintassi piuttosto semplice, permettendo di generare documenti piuttosto ricchi.
La generazione di un report da modello odt permette di generare documenti in formato Open Document Text (documento di testo ODF, estensione .odt), contenenti informazioni dinamiche, utilizzando un file .odt, chiamato modello, nel quale sono inseriti degli appositi segnaposti, che, nel documento finale generato, verrano sostituiti dal valore indicato dal segnaposto.
ATTENZIONE: modello si riferisce, nel contesto di questa documentazione, ad un normale file .odt contente dei segnaposti, il file deve essere in formato documento di testo ODF, estensione .odt.
Il modello per generare il documento finale, da caricare in fase di configurazione del report, è un normale documento odt e dove c’è del testo, lì può essere inserito un segnaposto, all’interno del normale flusso del testo, anche dentro una tabella.
Questa tipologia di report può essere collegata ad un corso, ad uno studente di un corso o ad un docente di un corso e permette di generare attestati, certificati e report sul corso, può inoltre essere collegata ad uno studente dell’anagrafica studenti, per generare ad esempio delle schede di iscrizione oppure ad un docente dell’anagrafica docenti per generare una lettera di incarico; altro utilizzo possibile è come modello di contratto, da usare nella gestione degli ordini.
2. DEFINIZIONE DEI SEGNAPOSTI
La sintassi per definire un segnaposto è {oggetto.attributo}, il nome dell’oggetto è la parte del nome a sinistra del punto, il nome dell’attributo è la parte a destra del punto; quindi, ad esempio, per mostrare nel documento finale il nome del corso si usa {course.name}, per mostrare la sede del corso si usa {location.location}.
Se il nome dell’oggetto è plurale, in inglese, significa che è una lista di valori, che può essere utilizzata all’interno di una tabella o per creare un elenco di valori nel documento finale, utilizzando una apposita sintassi per indicare l’inizio e la fine della lista; nella lista dei segnaposti che segue è indicato quando un segnaposto è una lista.
Alcuni segnaposto, ad esempio course, students, student, teachers, teacher, posseggono un attributo che ha un comportamento diverso, l’attributo customfields, la cui sintassi è {oggetto.customfields[codice]}, che serve per mostrare il valore di un campo personalizzato, ad esempio, per mostrare il valore del campo personalizzato del corso con codice _LIVELLO, si usa {course.customfields[_LIVELLO]}.
Riassumendo, se volessimo mostrare il nome, il codice, la sede e il campo personalizzato _LIVELLO, del corso:
{course.name}
{course.code}
{location.location}
{course.customfields[_LIVELLO]}
3. LISTE DI SEGNAPOSTI
La sintassi per utilizzare una lista di valori, prevede di indicare dove inizia la lista e dove finisce, nel blocco di testo racchiuso tra i due marcatori si inseriscono i segnaposti per mostrare i valori di ogni elemento della lista, ad esempio per elencare i nomi completi e l’indirizzo email di ogni studente del corso:
[!-- BEGIN students --]
{students.fullName} {students.email}
[!-- END students --]
la riga tra [!-- BEGIN students --]
e [!-- END students --]
sarà ripetuta per ogni studente, nel documento finale.
Per ogni elemento della lista sono disponibili due segnaposti speciali, _position, la posizione dell’elemento nella lista e _total, il totale di elementi nella lista.
4. SEGNAPOSTI IN TABELLE
La sintassi per utilizzare una lista di valori all’interno di una tabella, prevede di indicare dove inizia la riga della tabella e dove finisce, nel blocco di testo racchiuso tra i due marcatori si inseriscono i segnaposti per mostrare i valori di ogni elemento della lista, ad esempio per elencare i nomi completi, l’indirizzo email ed il telefono mobile di ogni studente del corso, all’interno di una tabella:
[!-- BEGIN row.students --] {students.fullName} |
{students.email}
|
{students.mobile} [!-- END row.students --] |
la riga della tabella tra [!– BEGIN row.students –] e [!– END row.students –] sarà ripetuta per ogni studente, nella tabella del documento finale.
5. BLOCCHI CONDIZIONALI
Il blocco condizionale è una parte del documento, delimitato da appositi marcatori, al quale è associato una condizione, che può essere vera o falsa, se è vera il contenuto del blocco viene incluso nel documento finale, se falsa il contenuto del blocco viene eliminato dal documento finale.
Come condizione per il blocco può essere usato uno dei campi personalizzati definiti o le condizioni indicate nella sezione CONDIZIONE dell’elenco dei segnaposti disponibili.
La condizione che usa un campo personalizzato è vera se il campo è valorizzato, è falsa se è vuoto.
La sintassi per definire il blocco condizionale prevede di indicare l’inizio e la fine del blocco, indicando la condizione associata, ad esempio per definire un blocco condizionale da mostrare solo se l’ordine è scontato:
[!-- IF order.isDiscounted --]
Sconto: {order.discount}
[!-- ENDIF order.isDiscounted --]
order.isDiscounted è la condizione, se è vera l’ordine è scontato e viene mostrato lo sconto applicato, se è false l’ordine non è scontato e la riga dello sconto non verrà inserita nel documento finale.
Si può invertire il controllo della condizione aggiungendo NOT alla sintassi per definire il blocco condizionale, ad esempio per definire un blocco condizionale da mostrare solo se l’ordine non è scontato:
[!-- IF NOT order.isDiscounted --]
Sconto non applicabile.
[!-- ENDIF NOT order.isDiscounted --]
order.isDiscounted è la condizione, se è vera l’ordine è scontato ed il testo “Sconto non applicabile” non verrà mostrato nel documento finale, se è false l’ordine non è scontato e quindi il testo “Sconto non applicabile” verrà mostrato nel documento finale.
Per usare un campo personalizzato come condizione usare la seguente sintassi:
[!-- IF student.customfields[CERTIFICAZIONI] --]
Certificazioni: {student.customfields[CERTIFICAZIONI]}
[!-- ENDIF student.customfields[CERTIFICAZIONI] --]
la riga all’interno del blocco verrà mostrata solo le certificazioni dello studente sono state indicate, cioè se il campo personalizzato con codice CERTIFICAZIONI dello studente non è vuoto.
6. ELENCO SEGNAPOSTI DISPONIBILI
Segnaposto branch
Dati relativi al branch della Scuola, per i gestionali che gestiscono più di una filiale.SEGNAPOSTO | VALORE | NOTE |
---|---|---|
{branch.code} | codice filiale | |
{branch.description} | descrizione filiale | |
{branch.name} | nome filiale |
Segnaposto report
Dati relativi ai reportSEGNAPOSTO | VALORE | NOTE |
---|---|---|
{report.parameters[name]} | eventuale parametro |
Segnaposto configurazione
Dati relativi alla configurazioneSEGNAPOSTO | VALORE | NOTE |
---|---|---|
{configuration.settinga[name]} | valore del parametro di configurazione |
Segnaposto currentDate
dati relativi alla data correnteSEGNAPOSTO | VALORE | NOTE |
---|---|---|
{currentDate.date} | data corrente | |
{currentDate.day} | giorno corrente | da 01 a 31 |
{currentDate.year} | anno corrente | |
{currentDate.month} | mese corrente | da 1 a 12 |
{currentDate.monthName} | nome mese corrente | |
{currentDate.weekDay} | giorno della settimana |
Segnaposto student anagrafica studente
Dati dello studente disponibili nella sezione Anagrafiche → StudentiSEGNAPOSTO | VALORE | NOTE |
---|---|---|
{student.address} | indirizzo | |
{student.birthdate} | data di nascita | |
{student.birthday} | compleanno | |
{student.birthplace} | luogo di nascita | |
{student.birthprovince} | provincia di nascita | |
{student.birthcountry} | paese di nascita | |
{student.cap} | codice di avviamento postale | |
{student.city} | città | |
{student.country} | nazione | |
{student.countryCode} | nazione | |
{student.citizenship} | cittadinanza | |
{student.passport} | passaporto | |
{student.profession} | professione | |
{student.qualification} | qualifica | |
{student.customfields[]} | campo personalizzato | tra le parentesi quadre deve essere indicato il codice del campo personalizzato |
{student.email} | ||
{student.fullName} | nominativo | |
{student.gender} | genere | |
{student.maritalstatus} | stato civile | |
{student.id} | identificativo | |
{student.mobile} | telefono mobile | |
{student.name} | nome | |
{student.phone} | telefono fisso | |
{student.province} | provincia | |
{student.surname} | cognome | |
{student.taxcode} | codice fiscale | |
{student.vatnumber} | partita iva | |
{student.studLocation} | Sede di riferimento | |
{student.cardnumber} | numero dalla eventuale tessera | |
{student.notes} | note | |
CONDIZIONE | VALORE | NOTE |
student.isAdult | vero se lo studente è maggiorenne, falso altrimenti | |
student.isNotAdult | vero se lo studente è minorenne, falso altrimenti |
Segnaposto teachingYear
dati relativi all'anno scolasticoSEGNAPOSTO | VALORE | NOTE |
---|---|---|
{teachingYear.endDate} | data finale | |
{teachingYear.firstLesson} | data prima lezione | |
{teachingYear.lastLesson} | data ultima lezione | |
{teachingYear.name} | nome anno accademico | |
{teachingYear.startDate} | data iniziale |
Segnaposto teachingYear (se diviso in periodi)
dati relativi ai periodi in cui è suddiviso l'anno scolasticoSEGNAPOSTO | VALORE | NOTE |
---|---|---|
{teachingYear.firstPeriod} | nome primo periodo | |
{teachingYear.firstPeriodStartDate} | data iniziale primo periodo | |
{teachingYear.firstPeriodEndDate} | data finale primo periodo | |
{teachingYear.secondPeriod} | nome secondo periodo | |
{teachingYear.secondPeriodStartDate} | data iniziale secondo periodo | |
{teachingYear.secondPeriodEndDate} | data finale secondo periodo | |
{teachingYear.thirdPeriod} | nome terzo periodo | |
{teachingYear.thirdPeriodStartDate} | data iniziale terzo periodo | |
{teachingYear.thirdPeriodEndDate} | data finale terzo periodo | |
{teachingYear.fourthPeriod} | nome quarto periodo | |
{teachingYear.fourthPeriodStartDate} | data iniziale quarto periodo | |
{teachingYear.fourthPeriodEndDate} | data finale quarto periodo |
Segnaposto parentTutor
dati del genitore/tutore dell'ordine sezione ordini, valorizzato solo se nell'ordine vi è un solo studente collegato ad un solo genitore/tutoreSEGNAPOSTO | VALORE | NOTE |
---|---|---|
{parentTutor.address} | indirizzo | |
{parentTutor.birthdate} | data di nascita | |
{parentTutor.birthday} | compleanno | |
{parentTutor.birthplace} | luogo di nascita | |
{parentTutor.birthprovince} | provincia di nascita | |
{parentTutor.cap} | codice di avviamento postale | |
{parentTutor.city} | città | |
{parentTutor.country} | nazione | |
{parentTutor.countryCode} | codice iso nazione | |
{parentTutor.citizenship} | cittadinanza | |
{parentTutor.passport} | passaporto | |
{parentTutor.profession} | professione | |
{parentTutor.qualification} | qualifica | |
{parentTutor.customfields[]} | campo personalizzato | tra le parentesi quadre deve essere indicato il codice del campo personalizzato |
{parentTutor.email} | ||
{parentTutor.fullName} | nominativo | |
{parentTutor.gender} | genere | |
{parentTutor.maritalstatus} | stato civile | |
{parentTutor.id} | identificativo | |
{parentTutor.invoiceDataAddress} | indirizzo (fatturazione) | valorizzato in caso l'anagrafica prevede dati di fatturazione diversi da quelli di residenza |
{parentTutor.invoiceDataCity} | città (fatturazione) | valorizzato in caso l'anagrafica prevede dati di fatturazione diversi da quelli di residenza |
{parentTutor.invoiceDataCountry} | Paese (fatturazione) | valorizzato in caso l'anagrafica prevede dati di fatturazione diversi da quelli di residenza |
{parentTutor.invoiceDataEmail} | Email (fatturazione) | valorizzato in caso l'anagrafica prevede dati di fatturazione diversi da quelli di residenza |
{parentTutor.invoiceDataFiscalCode} | Codice Fiscale (fatturazione) | valorizzato in caso l'anagrafica prevede dati di fatturazione diversi da quelli di residenza |
{parentTutor.invoiceDataMobilePhone} | Numero mobile (fatturazione) | valorizzato in caso l'anagrafica prevede dati di fatturazione diversi da quelli di residenza |
{parentTutor.invoiceDataName} | Nome / Società (fatturazione) | valorizzato in caso l'anagrafica prevede dati di fatturazione diversi da quelli di residenza |
{parentTutor.invoiceDataPec} | Pec (fatturazione) | valorizzato in caso l'anagrafica prevede dati di fatturazione diversi da quelli di residenza |
{parentTutor.invoiceDataPhone} | telefono fisso (fatturazione) | valorizzato in caso l'anagrafica prevede dati di fatturazione diversi da quelli di residenza |
{parentTutor.invoiceDataProvince} | Provincia (fatturazione) | valorizzato in caso l'anagrafica prevede dati di fatturazione diversi da quelli di residenza |
{parentTutor.invoiceDataRecipientCode} | Codice destinatario (fatturazione) | valorizzato in caso l'anagrafica prevede dati di fatturazione diversi da quelli di residenza |
{parentTutor.invoiceDataVatNumber} | Partita IVA (fatturazione) | valorizzato in caso l'anagrafica prevede dati di fatturazione diversi da quelli di residenza |
{parentTutor.invoiceDataZipCode} | CAP (fatturazione) | valorizzato in caso l'anagrafica prevede dati di fatturazione diversi da quelli di residenza |
{parentTutor.mobile} | telefono mobile | |
{parentTutor.name} | nome | |
{parentTutor.pec} | indirizzo di posta elettronica certificata | |
{parentTutor.phone} | telefono fisso | |
{parentTutor.province} | provincia | |
{parentTutor.surname} | cognome | |
{parentTutor.taxcode} | codice fiscale | |
{parentTutor.vatnumber} | partita iva | |
CONDIZIONE | VALORE | NOTE |
parentTutor.isAdult | vero se il genitore/tutore è maggiorenne, falso altrimenti | |
parentTutor.isNotAdult | vero se il genitore/tutore è minorenne, falso altrimenti | |
{parentTutor.cardnumber} | numero della eventuale tessera | |
{parentTutor.notes} | note |
Segnaposto parentsTutors
dati dei genitori/tutori dell'ordine sezione ordini, listaSEGNAPOSTO | VALORE | NOTE |
---|---|---|
{parentsTutors.address} | indirizzo | |
{parentsTutors.birthdate} | data di nascita | |
{parentsTutors.birthday} | compleanno | |
{parentsTutors.birthplace} | luogo di nascita | |
{parentsTutors.birthprovince} | provincia di nascita | |
{parentsTutors.cap} | codice di avviamento postale | |
{parentsTutors.city} | città | |
{parentsTutors.country} | nazione | |
{parentsTutors.countryCode} | codice iso nazione | |
{parentsTutors.citizenship} | cittadinanza | |
{parentsTutors.passport} | passaporto | |
{parentsTutors.profession} | professione | |
{parentsTutors.qualification} | qualifica | |
{parentsTutors.customfields[]} | campo personalizzato | tra le parentesi quadre deve essere indicato il codice del campo personalizzato |
{parentsTutors.email} | ||
{parentsTutors.fullName} | nominativo | |
{parentsTutors.gender} | genere | |
{parentsTutors.maritalstatus} | stato civile | |
{parentsTutors.id} | identificativo | |
{parentsTutors.invoiceDataAddress} | indirizzo (fatturazione) | valorizzato in caso l'anagrafica prevede dati di fatturazione diversi da quelli di residenza |
{parentsTutors.invoiceDataCity} | città (fatturazione) | valorizzato in caso l'anagrafica prevede dati di fatturazione diversi da quelli di residenza |
{parentsTutors.invoiceDataCountry} | Paese (fatturazione) | valorizzato in caso l'anagrafica prevede dati di fatturazione diversi da quelli di residenza |
{parentsTutors.invoiceDataEmail} | Email (fatturazione) | valorizzato in caso l'anagrafica prevede dati di fatturazione diversi da quelli di residenza |
{parentsTutors.invoiceDataFiscalCode} | Codice Fiscale (fatturazione) | valorizzato in caso l'anagrafica prevede dati di fatturazione diversi da quelli di residenza |
{parentsTutors.invoiceDataMobilePhone} | Numero mobile (fatturazione) | valorizzato in caso l'anagrafica prevede dati di fatturazione diversi da quelli di residenza |
{parentsTutors.invoiceDataName} | Nome / Società (fatturazione) | valorizzato in caso l'anagrafica prevede dati di fatturazione diversi da quelli di residenza |
{parentsTutors.invoiceDataPec} | Pec (fatturazione) | valorizzato in caso l'anagrafica prevede dati di fatturazione diversi da quelli di residenza |
{parentsTutors.invoiceDataPhone} | telefono fisso (fatturazione) | valorizzato in caso l'anagrafica prevede dati di fatturazione diversi da quelli di residenza |
{parentsTutors.invoiceDataProvince} | Provincia (fatturazione) | valorizzato in caso l'anagrafica prevede dati di fatturazione diversi da quelli di residenza |
{parentsTutors.invoiceDataRecipientCode} | Codice destinatario (fatturazione) | valorizzato in caso l'anagrafica prevede dati di fatturazione diversi da quelli di residenza |
{parentsTutors.invoiceDataVatNumber} | Partita IVA (fatturazione) | valorizzato in caso l'anagrafica prevede dati di fatturazione diversi da quelli di residenza |
{parentsTutors.invoiceDataZipCode} | CAP (fatturazione) | valorizzato in caso l'anagrafica prevede dati di fatturazione diversi da quelli di residenza |
{parentsTutors.mobile} | telefono mobile | |
{parentsTutors.name} | nome | |
{parentsTutors.pec} | indirizzo di posta elettronica certificata | |
{parentsTutors.phone} | telefono fisso | |
{parentsTutors.province} | provincia | |
{parentsTutors.surname} | cognome | |
{parentsTutors.taxcode} | codice fiscale | |
{parentsTutors.vatnumber} | partita iva | |
{parentsTutors._position} | posizione dell'elemento nella lista | |
{parentsTutors._total} | totale degli elementi nella lista | |
CONDIZIONE | VALORE | NOTE |
parentsTutors.isAdult | vero se il genitore/tutore è maggiorenne, falso altrimenti | |
parentsTutors.isNotAdult | vero se il genitore/tutore è minorenne, falso altrimenti | |
{parentsTutors.notes} | note | |
{parentsTutors.cardnumber} | numero della eventuale tessera |
Segnaposto Courses anagrafica studente
Dati dello studente relativi ai corsi.Sono disponibili i segnaposti relativi a:
1) Corsi frequentati "attendedCourses.name"
2) Corsi a cui è attualmente iscritto "enrolledCourses.name"
3) Corsi totalmente saldati "{paidCourses.name}"
4) Corsi aperti (NON chiusi, archiviati e cancellati) in cui lo studente risulta ancora iscritto. "enrolledOpenCourses"
SEGNAPOSTO | VALORE | NOTE |
---|---|---|
{attendedCourses.code} | codice corso | |
{attendedCourses.name} | nome corso | |
{attendedCourses.duration} | durata del corso | |
{attendedCourses.hours} | ore totali del corso | |
{attendedCourses.lessons} | lezioni totali corso | |
{attendedCourses.subject} | materia | |
{attendedCourses.startDate} | data di inizio | |
{attendedCourses.endDate} | data fine | |
{attendedCourses.teachingYear} | anno scolastico | |
{attendedCourses.teachersFullNameList} | nominativi dei docenti del corso, separati da virgola | |
{attendedCourses.booksTitleList} | elenco dei libri di testo, il separatore è la virgola | |
{attendedCourses.customfields} | campi personalizzati | |
{attendedCourses.certificateStartLevel} | certificazione di partenza | |
{attendedCourses.certificateEndLevel} | certificazione finale | |
{attendedCourses.internalStartLevel} | livello interno di partenza | |
{attendedCourses.internalEndLevel} | livello interno finale | |
{attendedCourses.studentsFullNameList} | elenco studenti, il separatore è la virgola | |
{attendedCourses.enrolledStudents} | numero di studenti iscritti | |
{attendedCourses.plannedHours} | ore di lezione pianificate | |
{attendedCourses.lessonsPerWeek} | numero di lezioni a settimana | |
{attendedCourses.lessonsWeekDay} | giorno della settimana di lezione | |
{attendedCourses.lessonsStartTime} | orario di inizio lezioni | |
{attendedCourses.lessonsEndTime} | orario di fine lezioni | |
{attendedCourses.locationName} | nome della sede dove si svolge il corso | |
{attendedCourses.locationCompleteAddress} | indirizzo della sede dove si svolge il corso | |
{attendedCourses.cost} | costo | |
{attendedCourses.costIfInstallments} | costo in caso di pagamento a rate | |
{attendedCourses.installmentsNumber} | numero di rate previste dall'eventuale piano di rateizzazione | |
{attendedCourses.firstInstallmentAmount} | importo prima rata dell'eventuale piano di rateizzazione | |
{attendedCourses.firstInstallmentDate} | data prima rata dell'eventuale piano di rateizzazione | |
{attendedCourses.firstInstallmentDay} | giorno prima rata dell'eventuale piano di rateizzazione | |
{attendedCourses.firstInstallmentMonth} | mese prima rata dell'eventuale piano di rateizzazione | |
{attendedCourses.installmentsAdvanceAmount} | ammontare pagato in anticipo | |
{attendedCourses.model} | nome modello usato per creare il corso | |
{attendedCourses.lessonsDuration} | durata lezioni, impostato solo se corso regolare, in minuti | |
{attendedCourses.enrollmentDate} | data iscrizione al corso | |
{attendedCourses.attendanceLastDate} | data ultima presenza |
7. CARICAMENTO A SISTEMA DEL MODELLO ODT
Per inserire il modello di report nel sistema navigare su Configurazione → Reports e cliccare il pulsante “Aggiungi report“.
Dalla prossima schermata compilare i seguenti campi:
- Nome*: il nome del report
- Descrizione: eventuale descrizione del report
- Tipo di report: scegliere l’opzione “Da modello odt” per poter caricare il proprio modello
- Sezione in cui mostrare il report *: Studenti
- Estensione del modello: OpenOffice Write (.odt)
- Modello del report: caricare il modello con estensione odt del proprio report
- Seleziona tipo: selezionare il tipo di estensione del file che dovrà avere il report quando lo si esporta, potendo scegliere tra:
- OpenOffice Write (.odt)
- Portable Document Format (.pdf)
- Ordine *: l’ordine di elencazione dei report (es. 1, 2, 3, etc)
Cliccare il pulsante “Aggiungi report” per salvare l’operazione.
Dopo aver caricato il modello, entrare in modifica dello stesso (cliccando l’icona con la pennetta di modifica) e spuntare il checkbox “Abilitato” per abilitare l’esportazione del report dai corsi e cliccare uno dei due pulsanti in fondo alla pagina per salvare l’operazione.
Infine, cliccare l’icona sulla riga del modello caricato per abilitare gli account amministrativi che potranno visualizzare ed esportare il report dai corsi o dagli studenti iscritti.
8. UTILIZZO DEI REPORT
Per esportare il report di uno studente navigare alla voce di menù Anagrafiche → Studenti e cliccare sul nome dell’anagrafica.
Dal prossimo pop-up mostrato dal sistema, scegliere il report tramite il relativo menù a tendina (in caso ne siano stati caricati più di uno) e cliccare il bottone “Scarica” per effettuare l’esportazione.