Può comportare un certo numero di parametri 'per valore' necessari all'interpretazione della variabile (queste variabili saranno passate come parametri ai sottoprogrammi).
Deve comportare obbligatoriamente un parametro 'per indirizzo'. Questo parametro corrisponde al risultato dell'interpretazione della variabile.
Restituisce, oltre al parametro di valutazione, una variabile di tipo intero che permette di definire un codice di errore. Questo parametro non deve essere definito nella lista dei parametri, ma viene aggiunto automaticamente nel richiamo del sottoprogramma: il codice del sottoprogramma deve quindi includerlo.
Esempio :
In certe righe di movimenti automatici si ha bisogno di conoscere l'IVA da applicare tenuto conto del suo codice, della data contabile e della società. La variabile 'IVA' è stata introdotta in standard per permettere la valutazione del tasso di IVA e comporta quindi i parametri seguenti :
Tre parametri per 'valore' necessari alla valutazione del tasso di IVA: la società (CPY) di tipo 'Char', il codice tassa (TAX) di tipo 'Char', la data (DAT) di tipo 'Date'
Un parametro per 'indirizzo' corrispondente al risultato che si cerca di ottenere : il tasso IVA (VATRAT) di tipo 'Decimale'
Riferirsi alla documentazione di Implementazione
Presentazione
Ogni variabile può essere gestita nel riquadro delle formule associate ai campi delle righe di movimenti tramite la sintassi V_XXXXX (XXXXX determina il codice della variabile). L'inserimento di una variabile attiva l'apertura di una piccola finestra nella quale l'utente deve indicare il valore di ogni parametro necessario all'interpretazione della variabile (parametro di tipo 'Valore'). Il valore indicato per ogni parametro deve deve essere coerente.
Bisogna notare che i parametri trasmessi al richiamo di un sottoprogramma possono essere delle costanti, delle variabili, o delle espressioni complesse che integrano delle variabili in linea.
Esempio :
Se si desidera passare, in una formula associata al movimento automatico BPCIN, il codice giornale che si trova in questa tabella ad una variabile, si inserirà la formula [F:SIH]JOU in parametro.
Bisogna notare che una formula di una riga di movimenti automatici può gestire più variabili di movimenti automatici.
Esempio :
V_CONVERT-ar2(V_CONVERT/(1+V_TVA)), dove V_CONVERT deve restituire un importo CI, V_TVA deve restituire un tasso IVA e dove la formula intera deve restituire un importo IVA
Il riferimento ad una variabile su una riga di movimento automatico genera nel programma WMGAUYYYYY (YYYYY designa il codice del movimento automatico) il richiamo al sottoprogramma in questione con :
I parametri della variabile nell'ordine nel quale sono stati inseriti nella parametrizzazione della variabile di movimento automatico
Un parametro 'STAT' di tipo 'Integer', che permette eventualmente di restituire un ritorno al generatore di movimenti automatici. Se al ritorno, la variabile STAT è uguale a 98, il movimento contabile non sarà generato e l'errore visualizzato sarà quello contenuto nella variabile globale GMESSAGE.
Inoltre, si può notare che, nei programmi generati dalla contabilizzazione dei movimenti automatici, la tabella principale è aperta non sotto la propria abbreviazione, ma sotto l'abbreviazione [F:TB0] ; la tabella delle righe è, invece, aperta sotto l'abbreviazione[F:TB1]. Questo non ha alcuna incidenza sulle formule inserite o sulle espressioni di parametri passati in parametrizzazione dei movimenti. Si può continuare ad utilizzare le abbreviazioni abituali delle tabelle principali, poiché la validazione del movimento automatico crea automaticamente le sostituzioni di abbreviazioni nelle espressioni. Invece, se il programma richiamato dalla variabile deve far riferimento a dei campi della tabella principale o della tabella delle righe per la registrazione corrente (se ad esempio il programma testa dei campi di queste registrazioni che non sarebbero passati come chiave), bisognerà allora utilizzare le abbreviazioni [TB0] e [TB1] nel programma.
Esempio: Il riferimento alla variabile 'IVA' sulla riga 11 del movimento automatico 'PRINC' genera nel programma WMGAUPRINC la seguente chiamata:
Call LECTAUX([F:TB0]CPY,[F :TB1]VATLIN,[F:TB0]ACCDAT,[L]VATRAT,STAT) From CPTINIVAR
TB0 designa l'abbreviazione della tabella di attivazione (tabella PAYMENTH per il movimento automatico PRINC) ;
TB1 designa l'abbreviazione della tabella 'generale' (tabella PAYMENTD) ;
I parametri [F:TB0]CPY, [F :TB1]VATLIN, [F:TB0]ACCDAT corrispondenti ai parametri 'per valore' ;
Il parametro [L]VATRAT correspondente al parametro 'per indirizzo' ;
Il parametro STAT per lo stato di ritorno.
Il sottoprogramma che interpreterà la variabile deve essere allineato ai parametri che gli sono passati in chiamata, ovvero deve contenere nell'ordine :
I parametri della variabile nell'ordine nel quale sono stati inseriti nella parametrizzazione della variabile e di tipo coerente (Char, Integer, Data o Decimal)
Un parametro 'STAT' di tipo 'integer' che permette eventualmente di restituire uno stato di ritono al generatore di movimenti automatici. Se un errore nella valutazione della variabile (errore di lettura ad esempio), deve impedire la creazione del movimento contabile, il sottoprogramma dovrà posizionare la variabile STAT a 98 e alimentare la variabile globale GMESSAGE che dovrà contenere l'errore che impedirà la creazione del movimento contabile
Esempio :
Subprog LECTAUX(SOC,TAX,DAT,TAUX,STAT)
Value Char SOC()
Value Char TAX()
Value Date DAT
Variabile Decimale TAUX
Variabile Integer STAT
If clalev([F:TRA])=0 : Local File TABRATVAT [TRA] : Endif
Filter [TRA] Where CPY=SOC & VAT=TAX & STRDAT<=DAT
Read [TRA]TRA0 Last
If fstat>2
Filter [TRA] Where CPY="" & VAT=TAX & STRDAT<=DAT
Read [TRA]TRA0 Last
If !fstat
TAUX = [F:TRA]VATRAT/100
Endif
Filter [TRA]
Endif
If fstat>2
STAT = 98
GMESSAGE = "Errore di valutazione del tasso IVA"-TAX
Endif
End
Chiudi
Campi
I seguenti campi sono presenti in questo folder :
Testata
|
|   |
|
Blocco numero 2
Sotto-programma
|   |
|   |
Riquadro Parametri
|   |
|
|   |
|   |
|
Descrizione
|   |
Chiudi
Questo bottone permette di copiare un codice variabile di movimento automatico verso un altro dossier. |