Gli oggetti di TESTO
Gli oggetti di testo
Gli oggetti di testo servono per inserire testi all'interno del report.
Tali oggetti possono essere dei seguenti tipi:
- testi fissi (statici)
- formule
- variabili
Gli oggetti possono essere di tipo TESTO oppure NUMERO.
I testi fissi
Sono oggetti che rappresentano descrizioni, intestazioni, testi che non sono
soggetti a modifica.
Le formule
Le formule sono espressioni, di tipo numerico o di tipo testuale, che
vengono calcolate durante l'esecuzione del report.
Le formule possono fare uso di valori costanti, di altri oggetti e di funzioni.
E' possibile inoltre usare il costrutto IF: if( predicato ; valore se vero;
valore se falso )
Nelle formule è possibile utilizzare le macro
locali.
Le formule numeriche possono fare uso delle 4 operazioni e delle
parentesi tonde (per eseguire raggruppamenti di operazioni).
Le formule di testo possono fare uso dell' operatore di concatenamento
(segno +). Gli oggetti costanti delle formule di testo devono essere racchiusi
tra virgolette (doppi apici).
Le variabili
Le variabili sono dei campi di 5 tipi differenti:
- CAMPO DATABASE: rappresenta un campo che viene letto dalla query della sezione cui l'oggetto appartiene;
- PARAMETRI: si dividono a loro volta in:
- parametri (normali): campi che possono essere inizializzati
nella callback function resa disponibile dall'eseguibile; consentono
all'eseguibile di guidare la creazione del report; i parametri sono
tipicamente stabiliti dalla procedura che esegue la stampa, ma vi sono
alcuni parametri sempre disponibili (se presenti sul report: è
sufficiente che sul report esista un oggetto di tipo parametro con il
nome e del tipo richiesto):
PARM_LO_KEY_SESSIONE (tipo: numero) numero univoco che identifica la sessione di lavoro (utile ad esempio per le tabelle temporanee)
PARM_OPERATORE_CODICE (tipo: testo) codice dell'operatore che esegue la stampa
PARM_OPERATORE_NOME_COMPLETO (tipo: testo) nome esteso dell'operatore che esegue la stampa
PARM_OPERATORE_SIGLA (tipo: testo) sigla dell'operatore che esegue la stampa
PARM_OPERATORE_LOGO (tipo: testo) nomefile del logo grafico (firma) dell'operatore che esegue la stampa
JOLLY_PRINT_DEFAULT_LOGO (tipo: testo) nomefile del logo grafico default (firma) - parametri runtime: campi che vengono richiesti a runtime all'utente; per ulteriori dettagli vedi PARAMETRI RUNTIME;
- parametri (normali): campi che possono essere inizializzati
nella callback function resa disponibile dall'eseguibile; consentono
all'eseguibile di guidare la creazione del report; i parametri sono
tipicamente stabiliti dalla procedura che esegue la stampa, ma vi sono
alcuni parametri sempre disponibili (se presenti sul report: è
sufficiente che sul report esista un oggetto di tipo parametro con il
nome e del tipo richiesto):
- SQL-SYNTAX: il campo contiene una query che viene eseguita e rende
un valore che viene assegnato al campo; se la query rende più di una riga,
le righe successive alla prima vengono trascurate;
la query viene eseguita tante volte quanti sono i records della sezione; può fare riferimento agli altri oggetti della sezione (o di sezioni superiori);
le SQL-SYNTAXes sono comodissime per reperire dati, ma in caso di reports con un gran numero di records possono rallentare sensibilmente l'esecuzione;
poiché questo tipo di campo viene valutato dopo aver eseguito la query della sezione cui appartiene, è evidente che non può essere referenziato dalla stessa query né, a maggior ragione, negli scripts SQL preliminari; - EARLY-SQL-SINTAX: è un campo in tutto simile a SQL-SYNTAX, ma viene valutato prima dell'esecuzione degli scripts SQL preliminari; può essere referenziato da tutte le queries SQL e dagli scripts SQL preliminari; non può essere referenziato dai parametri runtime; la query SQL viene eseguita una sola volta;
- VERY-EARLY-SQL-SINTAX: è un campo in tutto simile a EARLY-SQL-SYNTAX, ma viene valutato prima della richiesta dei parametri runtime; può essere referenziato dai parametri runtime (e altrove)
- var_group_expr_SQL: tipo di oggetto obsoleto, disponibile solo per (limitata) compatibilità con il passato; da non usare.
Per comprendere meglio le differenze intercorrenti tra i vari tipi di parametri è utile vedere la sequenza delle operazioni eseguite da un report.