Hai una domanda?

Inserisci una o più parole chiave e trova la risposta!

Introduzione ai report da modello odt

  1. INTRODUZIONE
  2. DEFINIZIONE SEGNAPOSTI
  3. LISTE DI SEGNAPOSTI
  4. SEGNAPOSTI IN TABELLE
  5. BLOCCHI CONDIZIONALI
  6. ELENCO SEGNAPOSTI DISPONIBILI
  7. CARICAMENTO A SISTEMA DEL MODELLO ODT
  8. UTILIZZO DEL MODELLO DI CONTRATTO
  9. ESEMPI DI UTILIZZO


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.

Lascia un commento

Devi essere loggato per lasciare un commento.