Macro parametriche
MACRO PARAMETRICHE
Le macro parametriche servono quando è necessario ripetere più volte la stessa espressione entro la quale è tuttavia necessario effettuare la sostituzione di uno o più parametri. Il meccanismo di sostituzione dei parametri è 'rigido', ovvero il parametro viene sostituito prima di effettuare qualunque valutazione dello stesso. Per intenderci: come avviene con le macro in C (chi non sa cosa significhi C non si preoccupi: il riferimento sarebbe comunque irrilevante).
DEFINIZIONE DELLE MACRO PARAMETRICHE
Le macro parametriche devono essere definite nella opportuna
pagina delle impostazioni del report.
Il formato è il seguente:
NOMEMACRO(P1, P2, P3, ...) = TESTO #P1 TESTO #P2 TESTO #P3
dove NOMEMACRO é il nome con cui si desidera richiamare la
macro e P1 ..Pn sono i parametri che devono essere sostituiti nel testo della
macro. Per definire una macro priva di parametri lasciare la coppia di parentesi
vuota: NOMEMACRO() .
I punti di sostituzione dei parametri vengono indicati dal nome del
parametro preceduto da un #.
Le righe vuote sono ignorate. E' possibile inserire commenti
facendoli precedere da una doppia barra ( // ).
Se una riga inizia con uno spazio o una tabulazione viene considerata
continuazione della riga precedente.
COMANDO DI INCLUSIONE
E' possibile includere files esterni utilizzando (sempre a inizio riga) la seguente sintassi (vedi anche QUI):
#INCLUDE nomefile
Nomefile può contenere anche variabili d'ambiente (esempio: $PATH$).
UTILIZZO DELLE MACRO PARAMETRICHE
Le macro possono essere utilizzate praticamente ovunque;
all'interno delle formule è sufficiente effettuare la chiamata, nelle
espressioni SQL è necessario premettere un segno di dollaro al nome della
macro.
I parametri devono essere racchiusi fra apici (doppi oppure semplici,
indifferentemente). La sostituzione dei parametri è posizionale.
Esempio:
| definizione | TOTALE(A,B)=sum(#A) - SUM(#B) |
| chiamata normale (in una formula) |
if (qta = 0; 0; TOTALE("qta", "scarto")) |
| chiamata SQL | select $TOTALE("fl_qta", "fl_scarto") FROM xxx WHERE ......... |