FILTRI - SINTASSI AMMESSE IN 'CAMPO'

In sintassi le parentesi quadre racchiudono degli elementi opzionali.

Sintassi:

Descrizione:

NomeCampo

Stampa nella posizione il contenuto della variabile. La variabile può essere messa a disposizione dal programma di stampa o essere un campo calcolato.

[variabile]=[@@]FormulaNumerica

 

oppure

 

[variabile]=[££]FormulaNumerica

 

Esegue dei calcoli tra valori numerici.

Se variabile viene omessa viene stampato nella posizione il risultato di FormulaNumerica altrimenti il risultato della formula viene memorizzato in Variabile (in questo caso la riga deve avere come Opzione = 1 non stampare).

In formula si possono usare + - * / ( ) NomiCampi, Variabili, valori numerici costanti.

Se i primi due caratteri di una formula sono @@ tutti i calcoli vengono fatti con dei currency (calcoli vengono arrotondati alla quarta cifra decimale). Quando il risultato è 0 viene trasformato in “”.

Se invece si usano ££ il risultato 0 rimane 0
Es.X=
££(X+(C_RigPrz*C_RigQta)-C_PrzTot)

Le funzioni utilizzabili sono:

Len( arg)

Restituisce la lunghezza in caratteri di Arg

Arrot( Val [;Tipo] [;Varr] [;Ndec])
Campo=Arrot(X)

Arrotonda valori numerici.

Val è il valore da arrotondare.
Tipo
è il tipo di arrotondamento:
T = troncamento
S = valore superiore
A = Arrotondamento (anche una lettera diversa da S o da T) 

Si può usare: 

Varr, indica il valore a cui arrotondare (può ad es. essere 500)

Ndec, lo usa per calcolare il valore di arrotondamento.
Se negativo rappresenta il numero di decimali.
Se positivo,  potenze di 10
Es. -2 arrotonda a 0,01
3 arrotonda a 1000

Instr( [start];Par1;Par2)

Restituisce la posizione di Par2 all’interno di Par1, eventualmente facendo partire la ricerca dal carattere numero Start

Perc( Par1;Perc)

Calcola il valore percentuale.

Es. Perc(200,10) rest. 20

PercS( Par1;Perc)

Calcola la maggiorazione o lo sconto.
Es PercS(200,10) rest.
220

PercS(200,-10) rest. 180

Scorp( Par1;Perc[;Dec])

Calcola lo scorporo

Se Dec è specificato l’importo viene troncato a Dec  decimali (Dec è positivo).

ScorpS( Par1;Perc;[;Dec])

Calcola il valore scorporato.

Se Dec è specificato l’importo dello scorporo viene troncato a Dec  decimali. (Dec è positivo)

Iva( Par1;Perc;Dec)

Calcola l’I.V.A.  e arrotonda   a Dec decimali (Dec è positivo) (arrotonda  all’ importo superiore).

IvaS( Par1;Perc;Dec)

Calcola l’importo ivato e arrotonda a Dec decimali (Dec è positivo) (arrotonda  all’ importo superiore).

Cvdate( Par1)

Trasforma la stringa Par1 in data

DateDif( Data1;Data2)

Restituisce i giorni tra le due date

DateSom( Data;Par1[;Tipo])

Data. data di partenza per il calcolo.

Par1. Espressione numerica corrispondente al numero di intervalli da aggiungere. Può essere positiva, per ottenere date future, oppure negativa, per ottenere date passate.

Tipo. Espressione stringa corrispondente all'intervallo di tempo che si desidera aggiungere.

Le possibili impostazioni dell’argomento
Tipo sono:
Impostazione Descrizione
Yyyy          Anno
q                Trimestre
m               Mese
y                Giorno 
d                Giorno (Predef.)
w               Giorno della settimana
ww             Settimana
h               Ora
n               Minuti
s               Secondi

Giorno( Par1)

Restituisce il giorno del mese.

Par1 Espressione Data

WGiorno( Par1[;Par2])

Restituisce un numero corrispondente ad un giorno della settimana.
Domenica = 1
Par1
Espressione Data
Par2
Costante numerica (1-7) si può impostare per variare il primo giorno della settimana che di default è 1 cioè domenica.

Mese( Par1)

Restituisce il mese.

Par1 Espressione Data

Anno( Par1)

Restituisce L’anno.

Par1 Espressione Data

Val( Par1)

Restituisce il valore numerico del parametro passato.

Par1 Espressione stringa.

FunzVaria( par1;par2,……)

E’ possibile utilizzare altre funzioni messe a disposizione dal programma di stampa.

Es. incremento la variabile d’appoggio Sqta con Quantita:
Sqta=Sqta+Quantita
TotDoc=TotDoc+(Prezzo * Quantita)

Es. Stampo nella posizione definita: prezzo per quantità
=Prezzo * Quantita

Per azzerare la variabile a fine pagina occorre mettere una riga nel piede dove si azzera la variabile:   Sqta=0     

[variabile]=$ FormulaStringa

Esegue delle elaborazioni con stringhe.

Se variabile viene omessa, viene stampato nella posizione, il risultato di FormulaStringa,  il risultato della formula viene memorizzato in Variabile (in questo caso la riga deve avere come Opzione = 1 non stampare).
In formula si possono usare NomiCampi, Variabili, Costanti Stringa
E i seguenti comandi:

Union( par1;par2[;par3,…..])

Unisce le stringhe Par1,par2
Il numero di parametri è variabile.

Mid( Par1;posP[;Lung])

Estrae un gruppo di caratteri della stringa Par1 a partire da posP per Lung caratteri. Se Lung viene omesso, estrae fino alla fine di Par1

Left( Par1;Lung)  
(Se$ Left(xx;2) = "rb")

Estrae i primi Lung caratteri dalla stringa Par1

Right( Par1;Lung)

Estrae Lung caratteri alla destra di Par1

Ucase( Par1)

Converte in maiuscolo Par1

Lcase( Par1)

Converte in minuscolo Par1

Riempi( Par1;Num)

Restituisce una stringa formata da Num ripetizioni di Par1

Format( Par1;Par2)

Trasforma un valore numerico in una stringa.
Par1
. Espressione numerica che rappresenta il valore da convertire in stringa.
Par2
. Espressione stringa che rappresenta la modalità di trasformazione. (può essere anche Feuro, FLire, FQua, FEuroG, FLireG, FMon, FMonG).

RTrim( Par1)

Toglie gli eventuali spazi a destra da Par1

LTrim( Par1)

Toglie gli eventuali spazi a sinistra da Par1

Trim( Par1)

Esegue RTrim e LTrim da Par1

Esempi:
Metto in IndirCom tutti gli elementi di un indirizzo
IndirCom =$union(CliIndir;" ";CliCap;" ";CliLocalita;" (";CliProvincia;")")
Stampo il nome con la prima lettera maiuscola e le seguenti minuscole:
=$union(ucase(left(nome;1));lcase(mid(nome;2))) 

Se si vogliono stampare i doppi apici si dovranno mettere, come costante, tra apici singoli (es.  ‘”’) 

Si possono stampare dei caratteri di controllo mettendo nella stringa chr$(X)  con X =numero   es. chr$(13) per inserire un ‘andare a capo’

Es. =$union(mid("pippo";3);chr$(65);"s";chr$(13);"fine")  produrrà la stampa della stringa ppoAs poi va a capo e scrive fine

 

:NomeEtichetta

Definisco un’etichetta a cui posso fare riferimento nei comandi Se e Vai

Vai [:]NomeEtichetta

La stampa salta tutti i campi tra questo campo e il campo che contiene :NomeEtichetta.
I due punti prima del NomeEtichetta sono opzionali.
N.B. il campo che contiene l’etichetta a cui saltare deve essere successivo (in ordine di PosY e PosX) (non si può saltare a campi precedenti).

Se Ar1 Op Ar2 [;vai NomEt]

 

Oppure

 

Se$ Ar1 Op Ar2 [;vai NomEt]

Salto condizionale.
Ar1
e Ar2 sono formule numeriche in caso si utilizzi Se, sono formule stringa se si utilizza Se$.

Op è un operatore di confronto. Gli operatori ammessi sono:       >,<,>=,<=,=,<>

Se il nome NomEt (nome dell’etichetta a cui saltare) non è specificato e il test è verificato, la riga successiva del Modello viene eseguita altrimenti viene saltata.
Se si è specificato NomEt e il test è verificato vengono saltate tutte le righe fino all’etichetta NomEt.
N.B. il campo che contiene l’etichetta a cui saltare deve essere successivo (in ordine di PosY e PosX) (non si può saltare a campi precedenti).

=IIF(Test;Val1;Val2)

 

 

 

I Test possibili sono:  >,<,>=,<=,=,<>
Se Test è vero restituisce Val1 altrimenti Val2
Val
1 e Val2 sono variabili considerate sempre entrambe dello stesso tipo. Per definirle stringa occorre far precedere la prima da $$
Esempio: 
=$iif($$T.Sesso = "M";$$"Maschio";$$"Femmina")
oppure:
=iif(anno(cvdate(Dt))<2000;giorno(cvdate(Dt));mese(cvdate(Dt))) 

In caso di stampa di Variabili che potrebbero non essere mai inizializzate (non essere mai state assegnate) occorre  inizializzarle nel seguente modo:
Variabili numeriche:     Var = Var + 0
Variabili stringa :           Var =$ union(Var ; “”)   
Per azzerare una variabile
Var = $""

‘Nome campo’ particolari:
RigaPari
            
Restituisce –1 quando si sta stampando una riga di dettaglio pari.

Durante la stampa nel corpo di alcune righe particolari , ad esempio le spese, il formato controlla che il codice relativo (alle spese) non sia coinvolto direttamente nella stampa della testata o del piede. Se il codice relativo alle spese si trova dentro una formula il cui risultato viene memorizzato in una variabile d’appoggio le spese continuano ad essere stampate nel corpo del documento.
Il programma controlla se il campo è contenuto in una riga di testata o di piede con "opzione" = 0. Per non far stampare il campo nè nel corpo nè in testata/piede, basta inserire una riga in testata o piede con il nome del campo e "lunghezza" = 0.

Stampa immagini

Si possono stampare sui documenti delle immagini es. il logo della ditta o le immagini collegate agli articoli.
Per fare questo occorre predisporre sul filtro righe opportunamente compilate Vedi "Linea".