|
||
Personalizzazioni avanzate campi calcolati
Richiamato dal pulsante di personalizzazioni avanzate delle griglie finestra Colonne (Personalizzazioni avanzate delle griglie)
Permette l'impostazione di campi calcolati definiti dall'utente
La funzione permette di fare calcoli oppure di definire campi non previsti nella griglia attingendo dai campi del data base attraverso una query SQL
Nome campo calcolato indicare il nome del campo calcolato. Se non viene definita un'intestazione di colonna, il campo verrà esposto nelle griglie con il nome indicato preceduto la simbolo '@'( nel nome evitare spazi e simboli ) Tipo di dato di output indicare se numero , stringa o data ) Intestazione di colonna permette di definire l'intestazione di colonna Timing permette di definire il timing di calcolo Immediato il calcolo viene eseguito ad ogni variazione Differito il calcolo viene eseguito la prima volta ed alla conferma della riga Calcolo ottimizzato il calcolo viene eseguito solo se i parametri sono variati altrimenti viene esposto il risultato memorizzato (per ottimizzare i tempi di visualizzazione evitando calcoli ripetuti non necessari) Calcola sempre il calcolo viene eseguito anche se il campo non è esposto in griglia (vale per i campi che pur non essendo esposti in griglia raccolgono risultati intermedi utilizzati da latri campi calcolati) Formula indicare la formula di calcolo per la definizione del nuovo campo (il - alla posizione iniziale della riga indica commento) Nella formula può essere indicato un calcolo aritmetico oppure, una funzione già predisposta
Collegamento con altre tabelle La funzione dei campi calcolati può essere utilizzata anche per rendere disponibili campi che non siano previsti nella griglia In questo caso nella formula verrà indicato il nome di campo che deve essere reso disponibile (ci deve essere un solo campo) Nella sezione Altre Tabelle dovranno essere indicate le tabelle necessarie alla ricerca del campo (secondo la sintassi SQL) Nella sezione Filtri dovranno essere indicate le condizioni di ricerca Si possono usare commenti con le solite convenzioni SQL ( -- commento di riga , /* */ commento inizio fine , evitare di mettere apici tra il testo nei commenti La query può avere sintassi sql così composta - Nel riquadro superiore indicare il campo da estrarre (equivale a select) - Nel riquadro intermedio indicare le tabelle interessate (equivale a from) - Nel riquadro inferiore indicare le join (equivale a where)
E' possibile utilizzare un campo calcolato per generare un altro campo calcolato. Non è necessario che siano visibili i campi ( calcolati e non ) usati come campi di input per altri campi calcolati. Le griglie che hanno i dati dinamici (tutte quelle di ricerca e in generale quelle che hanno i campi aggiuntivi e/o che hanno colonne intestate con la convenzione <TABELLA$CAMPO ) potrebbero dare un messaggio di errore quando si modifica un campo calcolato affinché usi nella sua formula un campo di input che non è attualmente visibile. Se capita occorre chiudere la finestra delle personalizzazioni e rilanciare l' elaborazione dei dati ( AVVIA ). Il messaggio di errore non comparirà più sempre che non si si tratti di un errore sintattico nella formula.
In questo caso è necessario che l'ordine dei campi rispetti l'ordine di calcolo
Differenze tra campi calcolati generali e campi calcolati della griglia Campi calcolati generali : Funzioni generali - Campi calcolati Si possono creare campi calcolati avendo come parametro un unico campo ( che è la categoria : ARTICOLI.ID_ARTICOLI ... ) Una volta definito un campo calcolato per una categoria verrà reso disponibile automaticamente tutti i programmi che lo gestiscono E' molto più veloce del campo calcolato su griglia Non è utilizzabile comunque in griglie modificabili Campi calcolati griglia : ( Griglia- dx - Personalizzazioni -Personalizza - Colonne - Campi calcolati ) Si possono creare campi calcolati avendo come parametro qualsiasi dato della griglia o qualsiasi dato della base dati soggiagente alla grglia Si possono fare tutti i calcoli che fanno i campi calcolati generali , ma l'elaborazione è più lenta E' utilizzabile in griglie modificabili e il calcolo viene aggiornato durante il caricamento
Esempio di formula
Esempio di funzione
Esempio di query sql
|
In quest'area possono essere indicate note riferite al campo calcolato
|
Duplica per duplicare il campo calcolato selezionato Elimina per eliminare il campo calcolato selezionato Nuovo per definire un nuovo campo calcolato Sposta giù per spostare il campo calcolato di una posizione inferiore Sposta su per spostare il campo calcolato di una posizione superiore
|
Dopo la definizione il campo calcolato dall'utente verrà reso disponibile nell'elenco dei campi della griglia con il nome convenzionale @NOME CAMPO
Per ulteriori informazioni riguardo alle regole SQL ed alla struttura del data base fare riferimento a: Documentazione sintetica regole SQL Documentazione tabelle Articoli Documentazione tabella Clienti e fornitori Documentazione tabelle Listini clienti e fornitori Documentazione tabelle sconti e provvigioni Documentazione tabelle Ordini e offerte clienti e fornitori Documentazione tabelle Testata bolle Documentazione tabelle Magazzino Documentazione tabelle Scheda di processo Documentazione relazioni tra tabelle
Teseo registra nel caricamento dei documenti ( Bolle, Ordini ) il nome utente ( di Windows e di Teseo ) di chi ha effettuato l'inserimento. I valori sono registrati in BOLLETCLI2.USER_SYSTEM,BOLLETCLI2.USER_TESEO,ORDTCLI2.USER_SYSTEM,ORDTCLI2.USER_TESEO. I campi ( sola lettura ) sono disponibili in : - Caricamento Bolle e Ordini ( paletta nascosta delle personalizzazioni ) - Ricerca Ordini e Bolle ( Ordini : <ORT2$.... , Bolle :<BTC2$... )
TESEO : UTILIZZO DI LOGICA IF THEN ELSE IN CAMPI CALCOLATI DELLE GRIGLIE
1) %CONTROLLA VALORE DA TESTARE %SE VALORE 1 %ALLORA RISULTATO 1 %ALTRIMENTI RISULTATO 2 %FINE Esempio.In questo esempio otteniamo un campo stringa che ci da come risultato “ATTIVO” se Il valore del campo “TIPO” è uguale a 1 … altrimenti ci da come risultato “PASSIVO” %CONTROLLA :TIPO %SE 1 %ALLORA ‘ATTIVO’ %ALTRIMENTI ‘PASSIVO’ %FINE
2)per testare + condizioni
%CONTROLLA VALORE DA TESTARE %SE VALORE 1 %ALLORA RISULTATO 1 %SE VALORE 2 %ALLORA RISULTATO 2 %ALTRIMENTI RISULTATO 3 %FINE
Esempio.
%CONTROLLA :TIPO %SE 1 %ALLORA ‘ATTIVO’ %SE 2 %ALLORA ‘PASSIVO’ %ALTRIMENTI ‘IGNOTO’ %FINE
3)per condizioni annidate considerare tutto il ciclo come un valore:
%CONTROLLA VALORE DA TESTARE %SE %CONTROLLA VALORE DA TESTARE (b) %SE VALORE 1(b) %ALLORA RISULTATO 1(b) %ALTRIMENTI RISULTATO 3(b) %FINE %ALLORA RISULTATO 1 %ALTRIMENTI RISULTATO 3 %FINE
Esempio. %CONTROLLA :TIPO %SE %CONTROLLA :IMPORTO %SE 0 %ALLORA 0 %ALTRIMENTI 1 %FINE %ALLORA ‘ATTIVO’ %ALTRIMENTI ‘PASSIVO’ %FINE
COME CALCOLARE
Il mese da una data
NOME : @MESE TIPO : STRINGA Questo calcolo .... FN_MESE ( :CAMPO_DATA , 1 ) ... restituisce : 01 - Gennaio 02 - Febbraio .... Questo altro calcolo .... FN_MESE ( :CAMPO_DATA , 0 ) ... restituisce Gennaio Febbraio Percentuale di incidenza di un importo rispetto al totale finale nella griglia (es. incidenza del fatturato cliente sul fatturato totale)
La griglia di output delle statistiche prende i dati da una tabella temporanea : TTV_STATISTICHE_ANNO_MESE TTV_STATISTICHE_ANNO_MESE_R ( quella a raffronto ).
pertanto è possibile aggiungere delle colonne che calcolano i dati rispetto al totale
Gg intercorrenti da una data (scad ) al 31.12
Giorni intercorrenti tra 2 date
Portare la data di sistema in un campo calcolato TO_CHAR (SYSDATE , 'YYYYNNDD' ) Nell'esempio la data verrà riportata in formato anno-mese-giorno
UNIRE PIU' CAMPI ALFABETICI ( 'B' || :NBOLLA ) Nell'esempio verrà riportata la lettera B unita al numero di bolla
Risalire, dal piano dei conti, al raggruppamento ed alla riclassificazione cui un sottoconto è collegato FUNCTION FN_LIST_RICLASS_X_SOTT ( in_ID_SOTTOCONTO IN NUMERIC, in_SEPARATOR_TIPO IN VARCHAR DEFAULT 'DEFAULT', in_SEPARATOR_LINE IN VARCHAR DEFAULT 'DEFAULT' ) Da un sottoconto Restituisce la lista di Riclassificazione e Raggruppamenti cui appartiene Di default Riclassificazione e raggruppamenti sono separati da " - " e ciascuna valore della lista è separato da "New Line" , ma si possono variare alterando in dati in in_SEPARATOR_TIPO , in_SEPARATOR_LINE Esempio:
1) Separatori default
Sintassi QUERY SELECT FN_LIST_RICLASS_X_SOTT( ST.ID_SOTTOCONTO ) FROM SOTTOCONTI ST
Sintassi CAMPO CALCOLATO FN_LIST_RICLASS_X_SOTT( :ID_SOTTOCONTO )
Supponendo che IL SOTTOCONTO appartenga a RICLASSIFICAZIONE "RICLA1" e "RICLA2" e appartenga a RAGGRUPPAMENTO "RAGGR1" e "RAGGR2" Si otterrà : RICLA1 - RAGGR1 RICLA2 - RAGGR2
2A) Separatori personalizzati Sintassi QUERY SELECT FN_LIST_RICLASS_X_SOTT( ST.ID_SOTTOCONTO ,' >>> ' ) FROM SOTTOCONTI ST
Sintassi CAMPO CALCOLATO FN_LIST_RICLASS_X_SOTT( :ID_SOTTOCONTO ,' >>> '
Si otterrà : RICLA1 >>> RAGGR1 RICLA2 >>> RAGGR2
2B) Separatori personalizzati
Sintassi QUERY SELECT FN_LIST_RICLASS_X_SOTT( ST.ID_SOTTOCONTO ,' >>> ' , '$$$$' ) FROM SOTTOCONTI ST
Sintassi CAMPO CALCOLATO FN_LIST_RICLASS_X_SOTT( :ID_SOTTOCONTO ,' >>> ' , '$$$$' )
Si otterrà : RICLA1 >>> RAGGR1$$$$RICLA2 >>> RAGGR2
Campo calcolato per mettere i parametri di ricerca in una griglia
I parametri possono essere DATE1,DATE2,DATE3,DATE4 NUMBER1,NUMBER2,NUMBER3,NUMBER4 VCHAR1,VCAHR2,VCHAR3,VCHAR4 Contengono i valori dei filtri di ricerca con i quali la griglia è stata estratta
|