<09> un campo chiave di ricerca di 10 caratteri che indica il codice identificativo della formula da creare.
Il nome che si inserisce in questo campo pu<70> essere utilizzato per la creazione di ulteriori
formule che necessitano dei calcoli che scaturiranno dall<6C>esecuzione della presente,
e che quindi andr<64> ad arricchire la libreria standard predisposta nel programma
</td>
</tr>
<tr><td><br></td></tr>
<tr>
<tdalign="center"class="nc">Descrizione</td>
</tr>
<tr>
<tdalign="center"class="testo">
<09> un campo chiave di ricerca di 50 caratteri che indica la descrizione identificativa della funzione da creare
</td>
</tr>
<tr><td><br></td></tr>
<tr>
<tdalign="center"class="nc">Picture</td>
</tr>
<tr>
<tdalign="center"class="testo">
<strong>Da controllare</strong><br>
<09> un campo alfanumerico di 20 caratteri che indica il metodo di visualizzazione del risultato della formula. Per definire il formato di presentazione <20> necessario indicare in quale posizione vanno inseriti i diversi elementi costitutivi sostituendo i caratteri che verranno stampati con i codici
carattere predefiniti ed eventualmente intervallati da elementi fissi necessari (es.: spazi, <20>.<2E>, <20>,<2C>, <20><><EFBFBD>, ecc.).<br><br>
I codici carattere predefiniti sono:<br><br>
# indica che si tratta di un carattere numerico. Nel caso nella posizione indicata si abbia uno zero non significativo tale carattere non viene stampato (es.: l<>importo 400000 con formato #.###.###.### viene stampato come 400.000).<br><br>
@ indica che si tratta di un carattere numerico. Nel caso nella posizione indicata si abbia uno zero non significativo tale carattere viene stampato ugualmente (es.: l<>importo 400000 con formato @.@@@.@@@.@@@ viene stampato come 0.000.400.000).<br><br>
^ indica che il carattere corrispondente alla posizione non deve essere stampato (es.: la data 12-02-96 con formato @@^@@^@@ viene stampata come 12 02 96)<br><br>
</td>
</tr>
<tr><td><br></td></tr>
<tr>
<tdalign="center"class="nc">Formula numerica</td>
</tr>
<tr>
<tdalign="center"class="testo">
<09> una casella di controllo che indica se il risultato della formula del documento <20> numerica,
casella selezionata, oppure di altro genere, casella deselezionata
<09> un campo alfanumerico di 50 caratteri che indica l<>espressione della formula da eseguire. <20> possibile dividere le formule disponibili in due categorie: standard e particolari. Le prime sono formule che eseguono semplici calcoli matematici, logici o su stringhe, mentre le seconde riguardano una gestione specifica della parte contabile dei documenti. All<6C>interno di questi campi <20> possibile inserire delle variabili, cio<69> degli identificatori di particolari valori, quali, ad esempio, i nomi dei campi degli archivi di testata dei documenti; si ricorda che <20> possibile visualizzare il tracciato record degli archivi tramite la Gestione Archivi gi<67> illustrata nel manuale introduttivo. Inoltre <20> possibile utilizzare anche formule documento inserite dall<6C>utente in precedenza.
Tutte le formule e le variabili dovranno essere inseriti in maiuscolo, diversamente non si otterr<72> il risultato desiderato in quanto tutto ci<63> che e inserito in minuscolo viene ignorato, inoltre valgono i consueti ordini di priorit<69> algebrica degli operatori aritmetici e logici e le priorit<69> imposte dalle parentesi. Per correttezza <20> necessario passare i parametri delle funzioni racchiusi tra doppi apici (<28><>); nel caso si desideri passare come parametri delle formule che contengono stringhe al loro interno occorrer<65> racchiudere queste ultime tra apici semplici (<28><>). Nella presente spiegazione si <20> convenuto racchiudere i parametri non obbligatori tra parentesi quadre ([ ]).<br><br>
Le formule standard si possono illustrare nelle seguenti funzioni:<br><br>
</td>
</tr>
<tr><td><br></td></tr>
<tr>
<tdalign="center"class="testo">
<strong>+, -, *, /</strong> si tratta degli abituali operatori aritmetici con i consueti significati di, rispettivamente, addizione, sottrazione, moltiplicazione e divisione;
</td>
</tr>
<tr><td><br></td></tr>
<tr>
<tdalign="center"class="testo">
<strong>&&, ||, !</strong> sono gli operatori logici AND, OR e NOT e ritornano i noti valori secondo le tavole di verit<69> dell<6C>algebra booleana;
</td>
</tr>
<tr><td><br></td></tr>
<tr>
<tdalign="center"class="testo">
<strong>==, >[=], <[=], !=</strong> rappresentano gli operatori di confronto tra valori numerici,
ed in particolare l<>operatore di uguaglianza, quello di maggioranza e non minoranza,
quello di minoranza e non maggioranza e quello di disuguaglianza;
</td>
</tr>
<tr><td><br></td></tr>
<tr>
<tdalign="center"class="testo">
<strong>?</strong> si tratta dell<6C>operatore match, cio<69> un operatore che indica al programma di sostituire
al punto interrogativo un qualsiasi carattere in modo da creare un identificatore corretto
(es.: la stringa <20>S?<3F> sar<61> sostituita dal programma in stringa <20>S1<53>, <20>S2<53>, ecc.);
</td>
</tr>
<tr><td><br></td></tr>
<tr>
<tdalign="center"class="testo">
<strong>LEFT(s,n), RIGHT(s,n)</strong> sono operatori che lavorano sulle stringhe di caratteri ed indicano rispettivamente
di estrarre solamente gli n caratteri sinistri o destri della stringa s passata. Es.: LEFT (<28>Mario Rossi<73>, 5)
visualizza la stringa <20>Mario<69>;
</td>
</tr>
<tr><td><br></td></tr>
<tr>
<tdalign="center"class="testo">
<strong>MID(s,da,[n]), SUBSTR(s,da,[a])</strong> anche queste funzioni lavorano sulle stringhe
e permettono di estrarre una parte della stringa s passata,
e precisamente la prima permette di estrarre una stringa lunga n a partire dal carattere da,
mentre la seconda visualizza la stringa dal carattere da al carattere a.
In entrambi i casi se non viene passato l<>ultimo parametro viene estratta la stringa
dal carattere d<>inizio indicato fino alla sua fine;
</td>
</tr>
<tr><td><br></td></tr>
<tr>
<tdalign="center"class="testo">
<strong>UPPER(s)</strong> permette di trasformare la stringa s passata in caratteri maiuscoli;
</td>
</tr>
<tr><td><br></td></tr>
<tr>
<tdalign="center"class="testo">
<strong>MIN(a,b), MAX(a,b)</strong> questi operatori confrontano due parametri numerici passati e restituiscono, rispettivamente, il minimo o il massimo dei due
</td>
</tr>
<tr><td><br></td></tr>
<tr>
<tdalign="center"class="testo">
<strong>ROUND(n,d)</strong> questa funzione restituisce il numero n passata come parametro troncato al decimale d-esimo;
nel caso venga passato come secondo parametro un valore negativo il valore di ritorno viene arrotondato
alla frazione corrispondente. Es.: per arrotondare un numero alla mille lire occorre passare il valore -3;
</td>
</tr>
<tr><td><br></td></tr>
<tr>
<tdalign="center"class="testo">
<strong>TRUNC(n,d)</strong> come il campo precedente, solamente che invece che fare l<>arrotondamento precede
con il semplice troncamento dei decimali non desiderati. Es.: TRUNC(123.456,1) ritorna 123.4;
</td>
</tr>
<tr><td><br></td></tr>
<tr>
<tdalign="center"class="testo">
<strong>CEIL(n,d)</strong> come il campo precedente, solamente che invece che fare l<>arrotondamento precede
con il semplice troncamento dei decimali non desiderati e all<6C>approssimazione al valore superiore.
Es.: CEIL(123.123,1) ritorna 123.2;
</td>
</tr>
<tr><td><br></td></tr>
<tr>
<tdalign="center"class="testo">
<strong>PERC(n,p)</strong> ritorna la percentuale p del valore passato come primo parametro.
Il secondo parametro va passato come numero intero (es.: 10, 12,50, ecc.);
</td>
</tr>
<tr><td><br></td></tr>
<tr>
<tdalign="center"class="testo">
<strong>SCORP(n,p)</strong> ritorna la percentuale p di scorporo dal valore passato come primo parametro.
Il secondo parametro va passato come numero intero (es.: 10, 12,50, ecc.);
</td>
</tr>
<tr><td><br></td></tr>
<tr>
<tdalign="center"class="testo">
<strong>IF(c,a,b)</strong> si tratta di una funzione logica che permette, se si verifica la condizione c di ritornare il valore di a,
altrimenti ritorna il valore di b, chiaramente a e b possono essere dei valori puti, degli identificatori
oppure altre funzioni
</td>
</tr>
<tr><td><br></td></tr>
<tr>
<tdalign="center"class="testo">
<strong>ANSI(s)</strong> ritorna la stringa s passata in formato ANSI
</td>
</tr>
<tr><td><br></td></tr>
<tr>
<tdalign="center"class="testo">
<br>Le formule specifiche si possono illustrare nelle seguenti funzioni:<br>
</td>
</tr>
<tr><td><br></td></tr>
<tr>
<tdalign="center"class="testo">
<strong>SOMMA(a,[b])</strong> questa funzione permette di lavorare sui valori delle righe ed indica se effettuare
la somma algebrica dei valori dei campi a delle righe del documento creato specificando un<75>eventuale
condizione di estrazione. dei dati da sommare.
Es.: SOMMA(<28>IMPNS<4E>,<2C>TIPO()!=<3D>S<EFBFBD><53>) fa la somma degli importi non scontati che non siano di tipo <20>S<EFBFBD>.
</td>
</tr>
<tr><td><br></td></tr>
<tr>
<tdalign="center"class="testo">
<strong>BOLLI(v,[i],[d])</strong> calcola l<>importo dei bolli da applicare sull<6C>importo v passato come primo parametro.
Il secondo parametro assume i valori 0 o 1 ed indica rispettivamente se il calcolo deve essere effettuato al lordo (default)
o al netto dell<6C>IVA, il terzo parametro indica il numero di decimali da tenere nel calcolo; di default vengono presi
0 decimali nel caso di importi in Lire e 3 nel caso di importi in valuta
</td>
</tr>
<tr><td><br></td></tr>
<tr>
<tdalign="center"class="testo">
<strong>SPESEINC(v,[i],[d])</strong> come la precedente, ma per il calcolo delle spese di incasso;
</td>
</tr>
<tr><td><br></td></tr>
<tr>
<tdalign="center"class="testo">
<strong>TIPO()</strong> ritorna il tipo della riga secondo quanto stabilito nella tabella dei tipi riga documento.
In questa sezione questa funzione viene utilizzate per effettuare eventuali filtri sulle righe inserite nel documento stesso.