Nuova versione form di stampa documenti, in relazione al nuovo,

more cazzuted, programma.


git-svn-id: svn://10.65.10.50/trunk@4035 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
angelo 1997-01-02 09:02:47 +00:00
parent 8d83316486
commit e74f67bdcb
4 changed files with 1090 additions and 527 deletions

View File

@ -1,57 +1,6 @@
// - Codici per i totalizzatori:
// Questi vengono letti in G1 sulla testata:
// SPTRAS spese di trasporto
// SPINC spese incasso
// SPIMB spese imballaggio
// SPBOL spese bolli
// Questi vengono ricalcolati in stampa:
// TIMPONIBILI totale imponibile (calcolato in stampa dalla tabella riepilogativa)
// TIMPOSTE totale imposta (calcolato in stampa dalla tabella riepilogativa)
// TESENTI totale esenti (calcolato in stampa dalla tabella riepilogativa)
// TIMPNETTI totale importi netti (stesso codice per il totalizzatore della riga)
// TOTDOC totale documento (fattura in questo caso)
//
// Mappa dei selettori di filtro (parametro 2 di _RIEPILOGOIVA) per la stampa della tabella
// riepilogativa e dei totali esenti/imponibili/non soggetti/non imponibili:
// 1 = regime normale
// 2 = ventilare (non usato)
// 4 = esenti
// 8 = non imponibili
// 16 = non soggetti
// pertanto per avere i non imponibili in totale il selettore sara' 1,
// per avere gli esenti il selettore sara' 4; per avere i non soggetti + esenti
// il selettore sara' 20 e cosi' via.
// Modificatori di pictures:
// i parametri IMP_DECIMALS, QTA_DECIMALS, e PRI_DECIMALS settano i decimali da stampare/arrotondare
// per i seguenti: importi in genere, quantita', e prezzi. Il primo parametro intero e' per gli importi in lire
// il secondo per gli importi in valuta. Naturalmente per le quantita' non ha senso fare una cosa del genere, ma per completezza
// e' stata implementata.
// PRI_DECIMALS corrisponde al gruppo 29
// QTA_DECIMALS corrisponde al gruppo 30
// IMP_DECIMALS corrisponde al gruppo 31
// pertanto tutti i campi che apparterranno al gruppo 29,30 o 31 avranno gli importi stampati al numero di decimali impostati a
// seconda se il documento e' in lire o valuta. Se il numero di decimali e' 0 la picture rimarra' invariata.
// Altri gruppi definiti dall'utente saranno cosi' sintatticamente impostati:
// NEW_GROUP <n> <lit_dec> <val_dec>
// Dove <n> e' il numero del gruppo
// <lit_dec> e' il numero di decimali per i documenti in lire
// <val_dec> e' il numero di decimali per i documenti in valuta
// Istruzione EXCLUDE nella sezione GENERAL (facoltativo):
// EXCLUDE esclude dalla stampa le righe che soddisfano la condizione specificata.
// Si indicano in questo modo: "<tipo riga>,<cod. art>". Naturalmente si possono indicare tutti gli EXLCUDE che si vogliono.
// Es: EXCLUDE "V01,ART1" escludera' tutte le righe di tipo V01 con codice articolo ART1
// EXCLUDE ",ART1" escludera' tutte le righe che hanno codice articolo ART1
// EXCLUDE "V01," escludera' tutte le righe che hanno tipo riga V01
// EXCLUDE "," non escludera' nulla.
// Completare la sezione "iva" nel body
// Manca il campo "causale" nella section footer
// Completare con i messaggi di Matteo.
// Una volta completato, togliere dalla relazione i files che non servono.
USE 34
JOIN 33 INTO CODNUM==CODNUM ANNO==ANNO PROVV==PROVV NDOC==NDOC
USE 33
JOIN 34 INTO CODNUM==CODNUM ANNO==ANNO PROVV==PROVV NDOC==NDOC
JOIN 17 TO 33 INTO TIPOCF==TIPOCF CODCF==CODCF
JOIN 20 TO 33 INTO TIPOCF==TIPOCF CODCF==CODCF
JOIN 16 TO 33 INTO TIPOCF==TIPOCF CODCF==CODCF CODIND==CODINDSP
@ -157,141 +106,141 @@ BEGIN
MESSAGE _DITTA, !REGSOC
END
NUMERO 12 30 1
NUMERO 10 30 1
BEGIN
KEY "c.c.i.a.a. 143011"
PROMPT 5 7 "C.C.I.A.A. "
MESSAGE _DITTA, !CCIAA
END
STRINGA 14 36 2
STRINGA 11 36 2
BEGIN
KEY "destinatario, ditta"
PROMPT 44 10 ""
MESSAGE _CLIENTE,!RAGSOC
END
STRINGA 15 36 2
STRINGA 12 36 2
BEGIN
KEY "destinatario, indirizzo"
PROMPT 44 12 ""
MESSAGE _CLIENTE,!INDNUM
END
STRINGA 16 5 1
STRINGA 13 5 1
BEGIN
KEY "destinatario, cap"
PROMPT 44 14 ""
MESSAGE _CLIENTE,!CAP
END
STRINGA 17 30 2
STRINGA 14 30 2
BEGIN
KEY "destinatario, comune"
PROMPT 50 14 ""
MESSAGE _CLIENTE,!COM
END
STRINGA 18 2 1
STRINGA 15 2 1
BEGIN
KEY "destinatario, provincia"
PROMPT 77 15 ""
MESSAGE _CLIENTE,!PROV
END
STRINGA 19 10 1
STRINGA 16 10 1
BEGIN
KEY "data bolla"
PROMPT 58 19 ""
FIELD 33->DATADOC
FIELD DATADOC
END
STRINGA 20 7
STRINGA 17 7
BEGIN
KEY "numero bolla"
PROMPT 67 19 ""
FIELD 33->NDOC
END
STRINGA 21 30 1
STRINGA 18 30 1
BEGIN
KEY "destinazione, indirizzo"
PROMPT 1 10 ""
FIELD 16->INDIR
END
STRINGA 84 30 1
STRINGA 19 30 1
BEGIN
KEY "destinazione, cap"
PROMPT 1 12 ""
FIELD 16->CAP
END
STRINGA 85 50 1
STRINGA 20 50 1
BEGIN
FLAGS "H"
PROMPT 1 1 ""
FIELD 16->COM
END
STRINGA 86 30 1
STRINGA 21 30 1
BEGIN
KEY "destinazione, comune"
PROMPT 1 14 ""
MESSAGE _ISAMREAD,13,COM=#49,DENCOM
MESSAGE _ISAMREAD,13,COM=#20,DENCOM
END
STRINGA 87 2 1
STRINGA 22 2 1
BEGIN
KEY "destinazione, provincia"
PROMPT 31 14 ""
MESSAGE _ISAMREAD,13,COM=#49,PROVCOM
MESSAGE _ISAMREAD,13,COM=#20,PROVCOM
END
STRINGA 22 26 1
STRINGA 23 26 1
BEGIN
KEY "ordine"
PROMPT 1 19 ""
FIELD 33->NUMDOCRIF
FIELD NUMDOCRIF
END
DATA 23 10
DATA 24 10
BEGIN
KEY "data conferma"
PROMPT 28 19 ""
FIELD 33->DATADOCRIF
FIELD DATADOCRIF
FORMAT "1444-"
END
STRINGA 24 48 1
STRINGA 25 48 1
BEGIN
KEY "condizioni di pagamento"
PROMPT 1 21 ""
FIELD 201@->S0
END
STRINGA 25 29 1
STRINGA 26 29 1
BEGIN
KEY "banca d'appoggio"
PROMPT 50 21 ""
FIELD 204@->S0
END
STRINGA 26 8 1
STRINGA 27 8 1
BEGIN
KEY "codice cliente"
PROMPT 5 23 ""
FIELD 33->CODCF
FIELD CODCF
END
STRINGA 27 16 1
STRINGA 28 16 1
BEGIN
KEY "partita iva cliente"
PROMPT 16 23 ""
MESSAGE _CLIENTE,!IVA
END
STRINGA 28 25 1
STRINGA 29 25 1
BEGIN
KEY "porto"
PROMPT 35 23 ""
@ -302,17 +251,17 @@ STRINGA 29 3 1
BEGIN
KEY "codice agente"
PROMPT 1 23 ""
FIELD 33->CODAG
FIELD CODAG
END
STRING 88 28
STRING 30 28
BEGIN
KEY "nome agente"
PROMPT 5 23 ""
FIELD 202@->S0
END
STRINGA 30 21 1
STRINGA 31 21 1
BEGIN
KEY "vettore"
PROMPT 59 23 ""
@ -322,100 +271,104 @@ END
SECTION BODY ODD 5
STRINGA 31 13 1
STRINGA 51 13 1
BEGIN
KEY "codice articolo"
PROMPT 1 1 ""
FIELD 34->CODART
END
STRINGA 32 30 4
STRINGA 52 30 4
BEGIN
KEY "descrizione articolo"
PROMPT 17 1 ""
MESSAGE _DESCRIGA
END
STRINGA 33 2
STRINGA 53 2
BEGIN
KEY "unita' di misura"
PROMPT 46 1 ""
FIELD 34->UMQTA
MESSAGE _ALIGN,#32,BOTTOM
MESSAGE _ALIGN,#52,BOTTOM
END
NUMBER 34 10
NUMBER 54 10
BEGIN
KEY "quantita'"
PROMPT 49 1 ""
PICTURE "######"
GROUP 30
FIELD 34->QTA
MESSAGE _ALIGN,#32,BOTTOM
MESSAGE _ALIGN,#52,BOTTOM
END
NUMBER 35 15
NUMBER 55 15
BEGIN
KEY "prezzo unitario"
PROMPT 59 1 ""
PICTURE "###.###.###.###"
GROUP 29
FIELD 34->PREZZO
MESSAGE _ALIGN,#32,BOTTOM
MESSAGE _ALIGN,#52,BOTTOM
END
STRINGA 36 20
STRINGA 56 20
BEGIN
KEY "sconto"
PROMPT 75 1 ""
FIELD 34->SCONTO
MESSAGE _ALIGN,#32,BOTTOM
MESSAGE _ALIGN,#52,BOTTOM
END
NUMBER 37 15
NUMBER 57 15
BEGIN
KEY "importo netto"
PROMPT 68 1 ""
FLAGS "H"
GROUP 29
FIELD 34->IMPNN
PICTURE "###.###.###.###"
MESSAGE _TOTAL_RIGA,IMPNETTO|_ALIGN,#32,BOTTOM
MESSAGE _ALIGN,#52,BOTTOM
END
STRINGA 38 3 1
STRINGA 58 3 1
BEGIN
KEY "iva"
PROMPT 81 1 ""
FIELD 34->CODIVA
MESSAGE _ALIGN,#32,BOTTOM
MESSAGE _ALIGN,#52,BOTTOM
END
NUMBER 40 15
NUMBER 59 15
BEGIN
KEY "prezzo unitario scontato"
PROMPT 68 1 ""
PICTURE "###.###.###.###"
GROUP 29
MESSAGE _TOTAL_RIGA,IMPUNITARIO|_ALIGN,#33,BOTTOM
FIELD 34->PREZZONS
MESSAGE _ALIGN,#52,BOTTOM
FLAGS "H"
END
NUMBER 41 15
NUMBER 60 15
BEGIN
KEY "provvigione"
PROMPT 68 1 ""
PICTURE "###.###.###.###"
MESSAGE _TOTAL_RIGA,PROVVIGIONE|_ALIGN,#33,BOTTOM
MESSAGE _ALIGN,#52,BOTTOM
FIELD 34->PROVVR
GROUP 31
FLAGS "H"
END
NUMBER 42 15
NUMBER 61 15
BEGIN
KEY "Imposta"
PROMPT 68 1 ""
PICTURE "###.###.###.###"
MESSAGE _TOTAL_RIGA,IMPOSTA|_ALIGN,#33,BOTTOM
MESSAGE _ALIGN,#52,BOTTOM
FIELD 34->IMPOSTA
GROUP 31
FLAGS "H"
END
@ -424,7 +377,7 @@ END
SECTION FOOTER LAST 19
STRINGA 71 5 1
STRINGA 81 5 1
BEGIN
KEY "messaggio 'segue' in coda"
PROMPT 68 19 "SEGUE"
@ -434,7 +387,7 @@ END
SECTION FOOTER ODD 19
NUMBER 39 15
NUMBER 101 15
BEGIN
KEY "spese di trasporto"
PROMPT 43 52 ""
@ -443,7 +396,7 @@ BEGIN
GROUP 31
END
NUMBER 40 115
NUMBER 102 115
BEGIN
KEY "spese di incasso"
PROMPT 55 50 ""
@ -452,7 +405,7 @@ BEGIN
GROUP 31
END
NUMBER 41 15
NUMBER 103 15
BEGIN
KEY "spese bolli"
PROMPT 55 52 ""
@ -461,257 +414,440 @@ BEGIN
GROUP 31
END
STRINGA 42 21 1
STRINGA 104 21 1
BEGIN
KEY "descrizione altri 1"
PROMPT 22 48 ""
END
STRINGA 43 12 1
STRINGA 105 12 1
BEGIN
KEY "imponibile 1"
PROMPT 4 48 ""
END
STRINGA 44 3 1
STRINGA 106 3 1
BEGIN
KEY "iva 1"
PROMPT 17 48 ""
END
STRINGA 45 11 1
STRINGA 107 11 1
BEGIN
KEY "imposta 1"
PROMPT 22 48 ""
END
STRINGA 46 21 1
STRINGA 108 21 1
BEGIN
KEY "descrizione altri 2"
PROMPT 22 49 ""
END
STRINGA 47 12 1
STRINGA 109 12 1
BEGIN
KEY "imponibile 2"
PROMPT 4 49 ""
END
STRINGA 48 3 1
STRINGA 110 3 1
BEGIN
KEY "iva 2"
PROMPT 17 49 ""
END
STRINGA 49 11 1
STRINGA 111 11 1
BEGIN
KEY "imposta 2"
PROMPT 22 49 ""
END
STRINGA 50 21 1
STRINGA 112 21 1
BEGIN
KEY "descrizione altri 3"
PROMPT 22 50 ""
END
STRINGA 51 12 1
STRINGA 113 12 1
BEGIN
KEY "imponibile 3"
PROMPT 4 50 ""
END
STRINGA 52 3 1
STRINGA 114 3 1
BEGIN
KEY "iva 3"
PROMPT 17 50 ""
END
STRINGA 53 11 1
STRINGA 115 11 1
BEGIN
KEY "imposta 3"
PROMPT 22 50 ""
END
STRINGA 54 21 1
STRINGA 116 21 1
BEGIN
KEY "descrizione altri 4"
PROMPT 22 51 ""
END
STRINGA 55 12 1
STRINGA 117 12 1
BEGIN
KEY "imponibile 4"
PROMPT 4 51 ""
END
STRINGA 56 3 1
STRINGA 118 3 1
BEGIN
KEY "iva 4"
PROMPT 17 51 ""
END
STRINGA 57 11 1
STRINGA 119 11 1
BEGIN
KEY "imposta 4"
PROMPT 22 51 ""
END
STRINGA 58 21 1
STRINGA 120 21 1
BEGIN
KEY "descrizione altri 5"
PROMPT 22 52 ""
END
STRINGA 59 12 1
STRINGA 121 12 1
BEGIN
KEY "imponibile 5"
PROMPT 4 52 ""
END
STRINGA 60 3 1
STRINGA 122 3 1
BEGIN
KEY "iva 5"
PROMPT 17 52 ""
END
STRINGA 61 11 1
STRINGA 123 11 1
BEGIN
KEY "imposta 5"
PROMPT 22 52 ""
END
STRINGA 62 6 1
STRINGA 124 6 1
BEGIN
KEY "stampa totali"
PROMPT 1 54 ""
END
STRINGA 63 12 1
STRINGA 125 12 1
BEGIN
KEY "totale imponibile"
PROMPT 4 54 ""
END
STRINGA 64 11 1
STRINGA 126 11 1
BEGIN
KEY "totale imposta"
PROMPT 22 54 ""
END
STRINGA 65 11 1
STRINGA 127 11 1
BEGIN
KEY "totale importi netti"
PROMPT 68 48 ""
END
STRINGA 66 11 1
STRINGA 128 11 1
BEGIN
KEY "spese di imballo"
PROMPT 43 50 ""
END
STRINGA 67 2 1
STRINGA 129 2 1
BEGIN
KEY "cancella 'iva' per sp. tras"
PROMPT 43 51 ""
END
STRINGA 68 8 1
STRINGA 130 8 1
BEGIN
KEY "scritta spese di trasporto"
PROMPT 45 51 ""
END
STRINGA 69 11 1
STRINGA 131 11 1
BEGIN
KEY "totale imposta"
PROMPT 68 52 ""
END
STRINGA 70 11 1
STRINGA 132 11 1
BEGIN
KEY "totale fattura"
PROMPT 68 54 ""
END
LISTA 72 1 1
LISTA 133 1 1
BEGIN
KEY "trasporto a cura del mitt."
PROMPT 1 57 ""
ITEM "|" // default
ITEM "|"
ITEM "M|x"
FIELD 33->CODSPMEZZO
FIELD CODSPMEZZO
END
LISTA 73 1 1
LISTA 134 1 1
BEGIN
KEY "trasporto a cura del dest."
PROMPT 7 57 ""
ITEM "|" // default
ITEM "|"
ITEM "D|x"
FIELD 33->CODSPMEZZO
FIELD CODSPMEZZO
END
STRINGA 74 1 1
STRINGA 135 1 1
BEGIN
KEY "trasporto a cura del vett."
PROMPT 15 57 ""
ITEM "|" // default
ITEM "|"
ITEM "V|x"
FIELD 33->CODSPMEZZO
FIELD CODSPMEZZO
END
DATA 75 8 1
DATA 136 8 1
BEGIN
KEY "data inizio trasporto"
PROMPT 45 57 ""
FIELD 33->DATAPART
FIELD DATAPART
FORMAT "1444-"
END
STRINGA 76 5 1
STRINGA 137 5 1
BEGIN
KEY "ora inizio trasporto"
PROMPT 57 57 ""
FIELD 33->ORAPART
FIELD ORAPART
END
STRINGA 77 40 1
STRINGA 138 40 1
BEGIN
KEY "nominativo vettore" // nell'originale (.gen) c'era: "nominativo vettore 1"
KEY "nominativo vettore"
PROMPT 1 59 ""
FIELD 205@->S0
END
STRINGA 78 40 1
STRINGA 139 40 1
BEGIN
KEY "indirizzo vettore" // nell'originale (.gen) c'era: "nominativo vettore 2"
KEY "indirizzo vettore"
PROMPT 1 60 ""
FIELD 205@->S1 // il campo S1 e' usato per l'indirizzo vettore
FIELD 205@->S1
END
STRINGA 79 41 1
STRINGA 140 41 1
BEGIN
KEY "aspetto esteriore dei beni"
PROMPT 1 63 ""
FIELD 206@->S0
END
STRINGA 81 12 1
STRINGA 141 12 1
BEGIN
KEY "peso"
PROMPT 44 63 ""
FIELD 33->PNETTO
FIELD PNETTO
END
STRINGA 82 8 1
STRINGA 142 8 1
BEGIN
KEY "colli"
PROMPT 57 63 ""
FIELD 33->NCOLLI
FIELD NCOLLI
END
END
END
// NOTE SULLA COMPILAZIONE DEI FORM DI STAMPA
//
// SEZIONE GENERAL
// ===============
// Posizionamento:
// e' possibile effettuari posizionamenti manuali dei form con le seguenti istruzioni:
// CARATTERE <S>
// INIZIALE <N> <N>
// FINALE <N> <N>
// dove:
// CARATTERE indica il carattere da stampare per contrassegnare il posizionamento, racchiuso tra doppi apici (eg "X")
// INIZIALE indica le coordinate X ed Y per il posizionamento iniziale (dove stampare il primo carattere)
// FINALE indica le coordinate X ed Y per il posizionamento finale (dove stampare il secondo carattere)
// FINALE puo' essere omesso; se definito e' comunque buona norma tenere la coordinata verticale (Y) uguale
// a quella indicata in INIZIALE, se diversi il programma tiene conto solo della prima.
// Non e' possibile definire sia posizionamenti manuali che OFFSET, quindi o l'uno o l'altro, preferibilmente
// e' meglio scegliere OFFSET.
//
// Modificatori di pictures:
// i parametri IMP_DECIMALS, QTA_DECIMALS, e PRI_DECIMALS settano i decimali da stampare/arrotondare
// per i seguenti: importi in genere, quantita', e prezzi. Il primo parametro intero e' per gli importi in lire
// il secondo per gli importi in valuta. Naturalmente per le quantita' non ha senso fare una cosa del genere, ma per completezza
// e' stata implementata.
// PRI_DECIMALS corrisponde al gruppo 29
// QTA_DECIMALS corrisponde al gruppo 30
// IMP_DECIMALS corrisponde al gruppo 31
// pertanto tutti i campi che apparterranno al gruppo 29,30 o 31 avranno gli importi stampati al numero di decimali impostati a
// seconda se il documento e' in lire o valuta. Se il numero di decimali e' 0 la picture rimarra' invariata.
// Altri gruppi definiti dall'utente saranno cosi' sintatticamente impostati:
// NEW_GROUP <n> <lit_dec> <val_dec>
// Dove <n> e' il numero del gruppo
// <lit_dec> e' il numero di decimali per i documenti in lire
// <val_dec> e' il numero di decimali per i documenti in valuta
//
// Definizione di liste di esclusione (facoltativo):
// EXCLUDE esclude dalla stampa le righe che soddisfano la condizione specificata.
// Si indicano in questo modo: "<tipo riga>,<cod. art>". Naturalmente si possono indicare tutti gli EXLCUDE che si vogliono.
// Es: EXCLUDE "V01,ART1" escludera' tutte le righe di tipo V01 con codice articolo ART1
// EXCLUDE ",ART1" escludera' tutte le righe che hanno codice articolo ART1
// EXCLUDE "V01," escludera' tutte le righe che hanno tipo riga V01
// EXCLUDE "," non escludera' nulla.
//
// MESSAGGI UTENTE
// ===============
// Note sui messaggi della testata/body/footer:
//
// _ISAMREAD:
// lettura generica di un file del database
// sintassi: _ISAMREAD,<file>,<espressione input>[!<espressione input>!...],{<campo file>|<espressione output>[!<espressione output>!...]}
// dove: <file> è il numero logico del file o il nome della tabella
// <espressione input> è un'espressione del tipo <campo file>=<espressione campi form>
// <espressione campi form> è un'espressione di costanti numeriche, stringhe e valori di campi della form (indicati con il loro numero preceduto da #)
// <espressione output> è un'espressione del tipo <campo form o gruppo>=<campo file> (se è un gruppo deve essere seguito da @) oppure solo <campo file> (il campo della form è quello corrente)
//
// _TABLEREAD:
// lettura generica di un campo di una tabella
// sintassi: _TABLEREAD,<tabella>,<chiave>,<campo file>
// dove: <tabella> nome tabella da leggere
// <chiave> costante stringa o riferimento a campo della form (preceduto da '#') da usare come chiave di ricerca
// <campo file> identificativo del campo da leggere dalla tabella
//
// _DITTA:
// lettura dei dati della ditta
// sintassi: _DITTA,{<campo relazione>|<macro>}
// dove: <campo relazione> è un riferimento alla relazione di gestione dei dati della ditta (es. 113@->DENCOM è la denominazione del comune di residenza della ditta)
// <macro> è uno delle macro seguenti:
// !RAGSOC ragione sociale
// !IND indirizzo (fiscale se c'è, oppure di residenza)
// !NUM numero civico (fiscale se c'è, oppure di residenza)
// !CAP CAP (fiscale se c'è, oppure di residenza)
// !COM comune (fiscale se c'è, oppure di residenza)
// !PROV provincia (fiscale se c'è, oppure di residenza)
// !IVA partita iva
// !CF codice fiscale
// !TEL numero di telefono (con prefisso)
// !FAX numero di fax (con prefisso)
// !REGSOC numero di registrazione presso il Tribunale
// !CCIAA numero di registrazione presso la camera di commercio
// nota: la relazione della ditta è così strutturata:
// %NDITTE (9) Dati ditte
// + %ANAGR (6) Anagrafica generale (indirizzo, ecc.)
// + %COMUNI (113@) Comune di residenza
// + %COMUNI (213@) Comune di residenza fiscale
// viene utilizzato perche' non e' possibile stabilire altrimenti una relazione con il file ditte
// dall'interno del form.
//
// _CLIENTE
// lettura dei dati del cliente
// sintassi: _CLIENTE,{<campo relazione>|<macro>}
// dove: <campo relazione> è un riferimento alla relazione di gestione dei dati del cliente
// <macro> è uno delle macro seguenti:
// !RAGSOC ragione sociale
// !IND indirizzo
// !NUM numero civico
// !INDNUM indirizzo + numero civico
// !LOC località
// !CAP CAP
// !COM comune
// !PROV provincia
// !IVA partita iva
// !CF codice fiscale
// !PERS <F> se persona fisica, <G> se giuridica
// !DATANAS data di nascita
// !COMNAS comune di nascita
// !TEL primo numero di telefono (con prefisso)
// !TEL2 secondo numero di telefono (con prefisso)
// !TEL3 terzo numero di telefono (con prefisso)
// !FAX numero di fax (con prefisso)
// nota: la relazione del cliente è così strutturata:
// CLIFO (20) Clienti/fornitori
// + CFVEN (17) Clienti/fornitori per vendite
// + %COMUNI (113@) Comune di residenza
// + %COMUNI (213@) Comune di nascita
// viene utilizzato al posto del file 17 collegato perche' vi sono particolari
// accorgimenti per quanto riguarda i clienti occasionali.
//
// _DESCRIGA:
// Messaggio per reperire e formattare anche la descrizione estesa sulle righe del documento
//
// _ALIGN:
// allineamento della posizione di un campo rispetto ad un altro
// sintassi: _ALIGN,<campo form>[,<allineamento>][,<allineamento>...]
// dove: <campo form> è il campo della form (preceduto da '#') da cui prendere l'allineamento
// <allineamento> è uno dei seguenti valori:
// TOP allinea sulla riga d'inizio
// MIDDLE allinea al centro (effettivo)
// BOTTOM allinea sulla riga di fine (effettiva, non preimpostata)
// LEFT allinea sulla colonna d'inizio
// RIGHT allinea sulla colonna di fine
//
// _PAGENO:
// Messaggio per stampare il numero di pagina corrente
//
// _RIEPILOGOIVA:
// messaggio per stampare la tabella ripelogativa delle aliquote IVA e relative imposte
// sintassi: _RIEPILOGOIVA,<selettore>,<macro>,<cambio codice>
// dove: <selettore> è uno dei seguenti:
// 1 = codici IVA a regime normale
// 2 = codici IVA da ventilare
// 4 = codici IVA esenti
// 8 = codici IVA non imponibili
// 16 = codici IVA non soggetti
// oppure la combinazione di uno o piu' di essi:
// 12 = 4+8, 19 = 1+2+16, 29 = 1+4+8+16 ecc...
// pertanto per avere i non imponibili in totale il selettore sara' 1,
// per avere gli esenti il selettore sara' 4; per avere i non soggetti + esenti
// il selettore sara' 20 e cosi' via.
// dove: <macro> è uno dei seguenti:
// COD colonna dei codici
// IMP colonna degli imponibili
// IVA colonna delle imposte
// ALI colonna delle aliquote
// DES colonna delle descrizioni (stampata solo se il regime IVA non e' normale)
// dove: <cambio codice> è uno dei seguenti:
// 0 indica di non leggere il successivo codice IVA nella tabella riepilogativa
// 1 indica di leggere il successivo codice IVA nella tabella riepilogativa
//
// _TOTIMPONIBILI:
// messaggio per stampare diverse totalizzazioni di imponibili
// sintassi: _TOTIMPONIBILI,<selettore>
// dove: <selettore> funge da filtro per la somma degli imponibili
// vedi _RIEPILOGOIVA per la spiegazione dei filtri selettivi
//
// _SCADENZE:
// messaggio per stampare le scadenze
// sintassi: _SCADENZE,<macro>,<cambio codice>
// dove <macro> e' uno dei seguenti:
// DATA : stampa la data di scadenza
// IMPORTO : stampa l'importo in scadenza
// dove <cambio codice> vale 0 o 1 se indica di rendere corrente la prossima scadenza
//
// CAMPI VIRTUALI
// ==============
// Oltre a stampare i campi normali del file e' anche possibile stampare i campi virtuali
// definiti nei profili semplicemente indicandoli nella istruzione FIELD:
// per la testata del documento:
// BOLLI, BASESCONTO, IMPOSTE, PROVVD, SCONTOD, SPESEINC, TOTDOC, TOTMER, TOTNS, TOTPRE, TOTSPE
// per le righe:
// IMPLN, IMPLS, IMPNN, IMPNS, IMPOSTA, PREZZOLN, PREZZOLS, PREZZONN, PREZZONS, PROVVR, SCONTOR
// oltre, naturalmente a quelli definiti dall'utente

View File

@ -1,54 +1,7 @@
// - Codici per i totalizzatori:
// Questi vengono letti in G1 sulla testata:
// SPTRAS spese di trasporto
// SPINC spese incasso
// SPIMB spese imballaggio
// SPBOL spese bolli
// Questi vengono ricalcolati in stampa:
// TIMPONIBILI totale imponibile (calcolato in stampa dalla tabella riepilogativa)
// TIMPOSTE totale imposta (calcolato in stampa dalla tabella riepilogativa)
// TESENTI totale esenti (calcolato in stampa dalla tabella riepilogativa)
// TIMPNETTI totale importi netti (stesso codice per il totalizzatore della riga)
// TOTDOC totale documento (fattura in questo caso)
//
// Mappa dei selettori di filtro (parametro 2 di _RIEPILOGOIVA) per la stampa della tabella
// riepilogativa e dei totali esenti/imponibili/non soggetti/non imponibili:
// 1 = regime normale
// 2 = ventilare (non usato)
// 4 = esenti
// 8 = non imponibili
// 16 = non soggetti
// pertanto per avere i non imponibili in totale il selettore sara' 1,
// per avere gli esenti il selettore sara' 4; per avere i non soggetti + esenti
// il selettore sara' 20 e cosi' via.
// Modificatori di pictures:
// i parametri IMP_DECIMALS, QTA_DECIMALS, e PRI_DECIMALS settano i decimali da stampare/arrotondare
// per i seguenti: importi in genere, quantita', e prezzi. Il primo parametro intero e' per gli importi in lire
// il secondo per gli importi in valuta. Naturalmente per le quantita' non ha senso fare una cosa del genere, ma per completezza
// e' stata implementata.
// PRI_DECIMALS corrisponde al gruppo 29
// QTA_DECIMALS corrisponde al gruppo 30
// IMP_DECIMALS corrisponde al gruppo 31
// pertanto tutti i campi che apparterranno al gruppo 29,30 o 31 avranno gli importi stampati al numero di decimali impostati a
// seconda se il documento e' in lire o valuta. Se il numero di decimali e' 0 la picture rimarra' invariata.
// Altri gruppi definiti dall'utente saranno cosi' sintatticamente impostati:
// NEW_GROUP <n> <lit_dec> <val_dec>
// Dove <n> e' il numero del gruppo
// <lit_dec> e' il numero di decimali per i documenti in lire
// <val_dec> e' il numero di decimali per i documenti in valuta
// Istruzione EXCLUDE nella sezione GENERAL (facoltativo):
// EXCLUDE esclude dalla stampa le righe che soddisfano la condizione specificata.
// Si indicano in questo modo: "<tipo riga>,<cod. art>". Naturalmente si possono indicare tutti gli EXLCUDE che si vogliono.
// Es: EXCLUDE "V01,ART1" escludera' tutte le righe di tipo V01 con codice articolo ART1
// EXCLUDE ",ART1" escludera' tutte le righe che hanno codice articolo ART1
// EXCLUDE "V01," escludera' tutte le righe che hanno tipo riga V01
// EXCLUDE "," non escludera' nulla.
USE 34
JOIN 33 INTO CODNUM==CODNUM ANNO==ANNO PROVV==PROVV NDOC==NDOC
USE 33
JOIN 34 INTO CODNUM==CODNUM ANNO==ANNO PROVV==PROVV NDOC==NDOC
JOIN 16 TO 33 INTO TIPOCF==TIPOCF CODCF==CODCF CODIND==CODINDSP
JOIN 47 INTO CODART==CODART
JOIN 47 TO 34 INTO CODART==CODART
JOIN %CPG TO 33 ALIAS 201 INTO CODTAB==CODPAG
JOIN %AGE TO 33 ALIAS 202 INTO CODTAB==CODAG
JOIN %POR TO 33 ALIAS 203 INTO CODTAB==CODPORTO
@ -61,8 +14,8 @@ JOIN 13 TO 205@ ALIAS 208 INTO COM==S9
END
DESCRIPTION
BEGIN
34->* "Righe documenti di vendita"
33->* "Documenti di vendita"
34->* "Righe documenti di vendita"
16->* "Indirizzi di spedizione (destinazione)"
47->* "Anagrafica magazzino"
201@->* "Tabella condizioni di pagamento"
@ -71,6 +24,8 @@ BEGIN
204@->* "Tabella banche"
205@->* "Tabella vettori"
206@->* "Tabella aspetto beni"
207@->* "Tabella causali di trasporto"
208@->* "Comuni"
END
GENERAL
@ -142,42 +97,42 @@ BEGIN
MESSAGE _DITTA,!CF
END
STRING 14 35 2
STRING 9 35 2
BEGIN
KEY "destinatario, ditta"
PROMPT 44 16 ""
MESSAGE _CLIENTE,!RAGSOC
END
STRING 15 35 2
STRING 10 35 2
BEGIN
KEY "destinatario, indirizzo con numero civico"
PROMPT 44 18 ""
MESSAGE _CLIENTE,!INDNUM
END
STRING 16 5 1
STRING 11 5 1
BEGIN
KEY "destinatario, cap"
PROMPT 44 20 ""
MESSAGE _CLIENTE,!CAP
END
STRING 17 30 2
STRING 12 30 2
BEGIN
KEY "destinatario, comune"
PROMPT 50 20 ""
MESSAGE _CLIENTE,!COM
END
STRING 18 2
STRING 13 2
BEGIN
KEY "destinatario, provincia"
PROMPT 72 21 ""
MESSAGE _CLIENTE,!PROV
END
DATE 19 8 1
DATE 14 8 1
BEGIN
KEY "data bolla"
PROMPT 60 25 ""
@ -185,28 +140,28 @@ BEGIN
FORMAT "1442-"
END
NUMBER 20 7
NUMBER 15 7
BEGIN
KEY "numero bolla"
PROMPT 71 25 ""
FIELD 33->NDOC
FIELD NDOC
END
STRING 21 30 2
STRING 16 30 2
BEGIN
KEY "destinazione, indirizzo"
PROMPT 5 16 ""
FIELD 16->INDIR
END
STRING 32 5 1
STRING 17 5 1
BEGIN
KEY "destinazione, cap"
PROMPT 5 18 ""
FIELD 16->CAP
END
STRING 49 5 1
STRING 18 5 1
BEGIN
KEY ""
PROMPT 1 1 ""
@ -214,78 +169,78 @@ BEGIN
FIELD 16->COM
END
STRING 33 21
STRING 19 21
BEGIN
KEY "destinazione, comune"
PROMPT 5 20 ""
MESSAGE _ISAMREAD,13,COM=#49,DENCOM
MESSAGE _ISAMREAD,13,COM=#18,DENCOM
END
STRING 34 2 1
STRING 20 2 1
BEGIN
KEY "destinazione, provincia"
PROMPT 28 20 ""
MESSAGE _ISAMREAD,13,COM=#49,PROVCOM
MESSAGE _ISAMREAD,13,COM=#18,PROVCOM
END
NUMBER 22
NUMBER 21
BEGIN
KEY "ordine"
PROMPT 3 25 ""
FIELD 33->NUMDOCRIF
FIELD NUMDOCRIF
END
DATE 23 10
DATE 22 10
BEGIN
KEY "data conferma"
PROMPT 16 25 ""
FIELD 33->DATADOCRIF
FIELD DATADOCRIF
FORMAT "1444-"
END
STRING 24 48 1
STRING 23 48 1
BEGIN
KEY "condizioni pagamento"
PROMPT 3 27 ""
FIELD 201@->S0
END
STRING 25 29 1
STRING 24 29 1
BEGIN
KEY "banca appoggio"
PROMPT 53 27 ""
FIELD 204@->S0
END
STRING 26 7 1
STRING 25 7 1
BEGIN
KEY "codice cliente"
PROMPT 3 29 ""
FIELD 33->CODCF
FIELD CODCF
END
STRING 27 11 1
STRING 26 11 1
BEGIN
KEY "partita iva cliente"
PROMPT 12 29 ""
MESSAGE _CLIENTE,!IVA
END
STRING 28 18 1
STRING 27 18 1
BEGIN
KEY "porto"
PROMPT 41 25 ""
FIELD 203@->S0
END
NUMBER 29
NUMBER 28
BEGIN
KEY "codice agente"
PROMPT 29 29 ""
FIELD 33->CODAG
FIELD CODAG
END
STRING 30 28 1
STRING 29 28 1
BEGIN
KEY "nome agente"
PROMPT 33 29 ""
@ -296,52 +251,52 @@ END
SECTION BODY ODD 5
STRING 32 13 1
STRING 51 13 1
BEGIN
KEY "codice articolo"
PROMPT 5 1 ""
FIELD 34->CODART
END
STRING 33 25 4
STRING 52 25 4
BEGIN
KEY "descrizione articolo"
PROMPT 25 1 ""
MESSAGE _DESCRIGA
END
STRING 34 2
STRING 53 2
BEGIN
KEY "unità di misura"
PROMPT 56 1 ""
FIELD 34->UMQTA
MESSAGE _ALIGN,#33,BOTTOM
MESSAGE _ALIGN,#52,BOTTOM
END
NUMBER 35 10
NUMBER 54 10
BEGIN
KEY "quantita"
PROMPT 60 1 ""
PICTURE "######"
GROUP 30
FIELD 34->QTA
MESSAGE _ALIGN,#33,BOTTOM
MESSAGE _ALIGN,#52,BOTTOM
END
NUMBER 36 20
NUMBER 55 20
BEGIN
KEY "quantita' lettere"
PROMPT 72 1 ""
FIELD 34->QTA
PICTURE "LETTERE"
MESSAGE _ALIGN,#33,BOTTOM
MESSAGE _ALIGN,#52,BOTTOM
END
END
SECTION FOOTER ODD 9
STRING 47 5 1
STRING 81 5 1
BEGIN
KEY "scritta SEGUE"
PROMPT 72 9 "SEGUE"
@ -351,54 +306,54 @@ END
SECTION FOOTER LAST 9
LIST 37 1 1
LIST 101 1 1
BEGIN
KEY "trasporto a cura del mittente"
PROMPT 4 1 ""
FIELD 33->CODSPMEZZO
FIELD CODSPMEZZO
ITEM "|" MESSAGE DISABLE,6@|ENABLE,5@
ITEM "D| "
ITEM "M|X" MESSAGE DISABLE,6@|ENABLE,5@
ITEM "V| "
END
LIST 38 1 1
LIST 102 1 1
BEGIN
KEY "trasporto a cura del destinatario"
PROMPT 13 1 ""
FIELD 33->CODSPMEZZO
FIELD CODSPMEZZO
ITEM "|" MESSAGE DISABLE,6@|ENABLE,5@
ITEM "D|X" MESSAGE DISABLE,6@|ENABLE,5@
ITEM "M| "
ITEM "V| "
END
LIST 39 1 1
LIST 103 1 1
BEGIN
KEY "trasporto a cura del vettore"
PROMPT 23 1 ""
FIELD 33->CODSPMEZZO
FIELD CODSPMEZZO
ITEM "|"
ITEM "D| "
ITEM "M| "
ITEM "V|X" MESSAGE DISABLE,5@|ENABLE,6@
END
STRING 40 45 1
STRING 104 45 1
BEGIN
KEY "nome vettore"
PROMPT 3 4 ""
FIELD 205@->S0
END
STRING 41 45 1
STRING 105 45 1
BEGIN
KEY "indirizzo vettore"
PROMPT 3 6 ""
FIELD 205@->S1[1,35]
END
STRING 51 10 1
STRING 106 10 1
BEGIN
KEY "n civico vettore"
PROMPT 30 6 ""
@ -406,7 +361,7 @@ BEGIN
FLAGS "D"
END
STRING 52 25 1
STRING 107 25 1
BEGIN
KEY "localita' vettore"
PROMPT 50 6 ""
@ -414,7 +369,7 @@ BEGIN
FLAGS "D"
END
STRING 53 25 1
STRING 108 25 1
BEGIN
KEY "comune vettore"
PROMPT 75 6 ""
@ -422,60 +377,64 @@ BEGIN
FLAGS "D"
END
DATE 42 8 1
DATE 109 8 1
BEGIN
KEY "data inizio trasporto/consegna"
PROMPT 51 3 ""
FIELD 33->DATAPART
FIELD DATAPART
FORMAT "1442-"
GROUP 5
END
STRING 43 5 1
STRING 110 5 1
BEGIN
KEY "ora inizio trasporto/consegna"
PROMPT 60 3 ""
PICTURE "## ##"
FIELD 33->ORAPART
FIELD ORAPART
GROUP 5
END
DATE 44 8 1
DATE 111 8 1
BEGIN
KEY "data ritiro da parte del vettore"
PROMPT 51 3 ""
FIELD 33->DATAPART
FIELD DATAPART
GROUP 6
FORMAT "1442-"
END
STRING 45 5 1
STRING 112 5 1
BEGIN
KEY "ora ritiro da parte del vettore"
PROMPT 60 3 ""
PICTURE "## ##"
FIELD 33->ORAPART
FIELD ORAPART
GROUP 6
END
STRING 46 27 1
STRING 113 27 1
BEGIN
KEY "aspetto beni"
PROMPT 37 1 ""
FIELD 206@->S0
END
STRING 48 7 1
STRING 114 7 1
BEGIN
KEY "peso"
PROMPT 73 1 ""
FIELD 33->PNETTO
FIELD PNETTO
END
STRING 49 5 1
STRING 115 5 1
BEGIN
KEY "colli"
PROMPT 66 1 ""
FIELD 33->NCOLLI
FIELD NCOLLI
END
STRING 50 15
STRING 116 15
BEGIN
KEY "causale di trasporto"
PROMPT 25 4 ""
@ -486,3 +445,186 @@ END
END
END
// NOTE SULLA COMPILAZIONE DEI FORM DI STAMPA
//
// SEZIONE GENERAL
// ===============
// Posizionamento:
// e' possibile effettuari posizionamenti manuali dei form con le seguenti istruzioni:
// CARATTERE <S>
// INIZIALE <N> <N>
// FINALE <N> <N>
// dove:
// CARATTERE indica il carattere da stampare per contrassegnare il posizionamento, racchiuso tra doppi apici (eg "X")
// INIZIALE indica le coordinate X ed Y per il posizionamento iniziale (dove stampare il primo carattere)
// FINALE indica le coordinate X ed Y per il posizionamento finale (dove stampare il secondo carattere)
// FINALE puo' essere omesso; se definito e' comunque buona norma tenere la coordinata verticale (Y) uguale
// a quella indicata in INIZIALE, se diversi il programma tiene conto solo della prima.
// Non e' possibile definire sia posizionamenti manuali che OFFSET, quindi o l'uno o l'altro, preferibilmente
// e' meglio scegliere OFFSET.
//
// Modificatori di pictures:
// i parametri IMP_DECIMALS, QTA_DECIMALS, e PRI_DECIMALS settano i decimali da stampare/arrotondare
// per i seguenti: importi in genere, quantita', e prezzi. Il primo parametro intero e' per gli importi in lire
// il secondo per gli importi in valuta. Naturalmente per le quantita' non ha senso fare una cosa del genere, ma per completezza
// e' stata implementata.
// PRI_DECIMALS corrisponde al gruppo 29
// QTA_DECIMALS corrisponde al gruppo 30
// IMP_DECIMALS corrisponde al gruppo 31
// pertanto tutti i campi che apparterranno al gruppo 29,30 o 31 avranno gli importi stampati al numero di decimali impostati a
// seconda se il documento e' in lire o valuta. Se il numero di decimali e' 0 la picture rimarra' invariata.
// Altri gruppi definiti dall'utente saranno cosi' sintatticamente impostati:
// NEW_GROUP <n> <lit_dec> <val_dec>
// Dove <n> e' il numero del gruppo
// <lit_dec> e' il numero di decimali per i documenti in lire
// <val_dec> e' il numero di decimali per i documenti in valuta
//
// Definizione di liste di esclusione (facoltativo):
// EXCLUDE esclude dalla stampa le righe che soddisfano la condizione specificata.
// Si indicano in questo modo: "<tipo riga>,<cod. art>". Naturalmente si possono indicare tutti gli EXLCUDE che si vogliono.
// Es: EXCLUDE "V01,ART1" escludera' tutte le righe di tipo V01 con codice articolo ART1
// EXCLUDE ",ART1" escludera' tutte le righe che hanno codice articolo ART1
// EXCLUDE "V01," escludera' tutte le righe che hanno tipo riga V01
// EXCLUDE "," non escludera' nulla.
//
// MESSAGGI UTENTE
// ===============
// Note sui messaggi della testata/body/footer:
//
// _ISAMREAD:
// lettura generica di un file del database
// sintassi: _ISAMREAD,<file>,<espressione input>[!<espressione input>!...],{<campo file>|<espressione output>[!<espressione output>!...]}
// dove: <file> è il numero logico del file o il nome della tabella
// <espressione input> è un'espressione del tipo <campo file>=<espressione campi form>
// <espressione campi form> è un'espressione di costanti numeriche, stringhe e valori di campi della form (indicati con il loro numero preceduto da #)
// <espressione output> è un'espressione del tipo <campo form o gruppo>=<campo file> (se è un gruppo deve essere seguito da @) oppure solo <campo file> (il campo della form è quello corrente)
//
// _TABLEREAD:
// lettura generica di un campo di una tabella
// sintassi: _TABLEREAD,<tabella>,<chiave>,<campo file>
// dove: <tabella> nome tabella da leggere
// <chiave> costante stringa o riferimento a campo della form (preceduto da '#') da usare come chiave di ricerca
// <campo file> identificativo del campo da leggere dalla tabella
//
// _DITTA:
// lettura dei dati della ditta
// sintassi: _DITTA,{<campo relazione>|<macro>}
// dove: <campo relazione> è un riferimento alla relazione di gestione dei dati della ditta (es. 113@->DENCOM è la denominazione del comune di residenza della ditta)
// <macro> è uno delle macro seguenti:
// !RAGSOC ragione sociale
// !IND indirizzo (fiscale se c'è, oppure di residenza)
// !NUM numero civico (fiscale se c'è, oppure di residenza)
// !CAP CAP (fiscale se c'è, oppure di residenza)
// !COM comune (fiscale se c'è, oppure di residenza)
// !PROV provincia (fiscale se c'è, oppure di residenza)
// !IVA partita iva
// !CF codice fiscale
// !TEL numero di telefono (con prefisso)
// !FAX numero di fax (con prefisso)
// !REGSOC numero di registrazione presso il Tribunale
// !CCIAA numero di registrazione presso la camera di commercio
// nota: la relazione della ditta è così strutturata:
// %NDITTE (9) Dati ditte
// + %ANAGR (6) Anagrafica generale (indirizzo, ecc.)
// + %COMUNI (113@) Comune di residenza
// + %COMUNI (213@) Comune di residenza fiscale
// viene utilizzato perche' non e' possibile stabilire altrimenti una relazione con il file ditte
// dall'interno del form.
//
// _CLIENTE
// lettura dei dati del cliente
// sintassi: _CLIENTE,{<campo relazione>|<macro>}
// dove: <campo relazione> è un riferimento alla relazione di gestione dei dati del cliente
// <macro> è uno delle macro seguenti:
// !RAGSOC ragione sociale
// !IND indirizzo
// !NUM numero civico
// !INDNUM indirizzo + numero civico
// !LOC località
// !CAP CAP
// !COM comune
// !PROV provincia
// !IVA partita iva
// !CF codice fiscale
// !PERS <F> se persona fisica, <G> se giuridica
// !DATANAS data di nascita
// !COMNAS comune di nascita
// !TEL primo numero di telefono (con prefisso)
// !TEL2 secondo numero di telefono (con prefisso)
// !TEL3 terzo numero di telefono (con prefisso)
// !FAX numero di fax (con prefisso)
// nota: la relazione del cliente è così strutturata:
// CLIFO (20) Clienti/fornitori
// + CFVEN (17) Clienti/fornitori per vendite
// + %COMUNI (113@) Comune di residenza
// + %COMUNI (213@) Comune di nascita
// viene utilizzato al posto del file 17 collegato perche' vi sono particolari
// accorgimenti per quanto riguarda i clienti occasionali.
//
// _DESCRIGA:
// Messaggio per reperire e formattare anche la descrizione estesa sulle righe del documento
//
// _ALIGN:
// allineamento della posizione di un campo rispetto ad un altro
// sintassi: _ALIGN,<campo form>[,<allineamento>][,<allineamento>...]
// dove: <campo form> è il campo della form (preceduto da '#') da cui prendere l'allineamento
// <allineamento> è uno dei seguenti valori:
// TOP allinea sulla riga d'inizio
// MIDDLE allinea al centro (effettivo)
// BOTTOM allinea sulla riga di fine (effettiva, non preimpostata)
// LEFT allinea sulla colonna d'inizio
// RIGHT allinea sulla colonna di fine
//
// _PAGENO:
// Messaggio per stampare il numero di pagina corrente
//
// _RIEPILOGOIVA:
// messaggio per stampare la tabella ripelogativa delle aliquote IVA e relative imposte
// sintassi: _RIEPILOGOIVA,<selettore>,<macro>,<cambio codice>
// dove: <selettore> è uno dei seguenti:
// 1 = codici IVA a regime normale
// 2 = codici IVA da ventilare
// 4 = codici IVA esenti
// 8 = codici IVA non imponibili
// 16 = codici IVA non soggetti
// oppure la combinazione di uno o piu' di essi:
// 12 = 4+8, 19 = 1+2+16, 29 = 1+4+8+16 ecc...
// pertanto per avere i non imponibili in totale il selettore sara' 1,
// per avere gli esenti il selettore sara' 4; per avere i non soggetti + esenti
// il selettore sara' 20 e cosi' via.
// dove: <macro> è uno dei seguenti:
// COD colonna dei codici
// IMP colonna degli imponibili
// IVA colonna delle imposte
// ALI colonna delle aliquote
// DES colonna delle descrizioni (stampata solo se il regime IVA non e' normale)
// dove: <cambio codice> è uno dei seguenti:
// 0 indica di non leggere il successivo codice IVA nella tabella riepilogativa
// 1 indica di leggere il successivo codice IVA nella tabella riepilogativa
//
// _TOTIMPONIBILI:
// messaggio per stampare diverse totalizzazioni di imponibili
// sintassi: _TOTIMPONIBILI,<selettore>
// dove: <selettore> funge da filtro per la somma degli imponibili
// vedi _RIEPILOGOIVA per la spiegazione dei filtri selettivi
//
// _SCADENZE:
// messaggio per stampare le scadenze
// sintassi: _SCADENZE,<macro>,<cambio codice>
// dove <macro> e' uno dei seguenti:
// DATA : stampa la data di scadenza
// IMPORTO : stampa l'importo in scadenza
// dove <cambio codice> vale 0 o 1 se indica di rendere corrente la prossima scadenza
//
// CAMPI VIRTUALI
// ==============
// Oltre a stampare i campi normali del file e' anche possibile stampare i campi virtuali
// definiti nei profili semplicemente indicandoli nella istruzione FIELD:
// per la testata del documento:
// BOLLI, BASESCONTO, IMPOSTE, PROVVD, SCONTOD, SPESEINC, TOTDOC, TOTMER, TOTNS, TOTPRE, TOTSPE
// per le righe:
// IMPLN, IMPLS, IMPNN, IMPNS, IMPOSTA, PREZZOLN, PREZZOLS, PREZZONN, PREZZONS, PROVVR, SCONTOR
// oltre, naturalmente a quelli definiti dall'utente

View File

@ -1,53 +1,5 @@
// - Codici per i totalizzatori:
// Questi vengono letti in G1 sulla testata:
// SPTRAS spese di trasporto
// SPINC spese incasso
// SPIMB spese imballaggio
// SPBOL spese bolli
// Questi vengono ricalcolati in stampa:
// TIMPONIBILI totale imponibile (calcolato in stampa dalla tabella riepilogativa)
// TIMPOSTE totale imposta (calcolato in stampa dalla tabella riepilogativa)
// TESENTI totale esenti (calcolato in stampa dalla tabella riepilogativa)
// TIMPNETTI totale importi netti (stesso codice per il totalizzatore della riga)
// TOTDOC totale documento (fattura in questo caso)
//
// Mappa dei selettori di filtro (parametro 2 di _RIEPILOGOIVA) per la stampa della tabella
// riepilogativa e dei totali esenti/imponibili/non soggetti/non imponibili:
// 1 = regime normale
// 2 = ventilare (non usato)
// 4 = esenti
// 8 = non imponibili
// 16 = non soggetti
// pertanto per avere i non imponibili in totale il selettore sara' 1,
// per avere gli esenti il selettore sara' 4; per avere i non soggetti + esenti
// il selettore sara' 20 e cosi' via.
// Modificatori di pictures:
// i parametri IMP_DECIMALS, QTA_DECIMALS, e PRI_DECIMALS settano i decimali da stampare/arrotondare
// per i seguenti: importi in genere, quantita', e prezzi. Il primo parametro intero e' per gli importi in lire
// il secondo per gli importi in valuta. Naturalmente per le quantita' non ha senso fare una cosa del genere, ma per completezza
// e' stata implementata.
// PRI_DECIMALS corrisponde al gruppo 29
// QTA_DECIMALS corrisponde al gruppo 30
// IMP_DECIMALS corrisponde al gruppo 31
// pertanto tutti i campi che apparterranno al gruppo 29,30 o 31 avranno gli importi stampati al numero di decimali impostati a
// seconda se il documento e' in lire o valuta. Se il numero di decimali e' 0 la picture rimarra' invariata.
// Altri gruppi definiti dall'utente saranno cosi' sintatticamente impostati:
// NEW_GROUP <n> <lit_dec> <val_dec>
// Dove <n> e' il numero del gruppo
// <lit_dec> e' il numero di decimali per i documenti in lire
// <val_dec> e' il numero di decimali per i documenti in valuta
// Istruzione EXCLUDE nella sezione GENERAL (facoltativo):
// EXCLUDE esclude dalla stampa le righe che soddisfano la condizione specificata.
// Si indicano in questo modo: "<tipo riga>,<cod. art>". Naturalmente si possono indicare tutti gli EXLCUDE che si vogliono.
// Es: EXCLUDE "V01,ART1" escludera' tutte le righe di tipo V01 con codice articolo ART1
// EXCLUDE ",ART1" escludera' tutte le righe che hanno codice articolo ART1
// EXCLUDE "V01," escludera' tutte le righe che hanno tipo riga V01
// EXCLUDE "," non escludera' nulla.
USE 34
JOIN 33 INTO CODNUM==CODNUM ANNO==ANNO PROVV==PROVV NDOC==NDOC
USE 33
JOIN 34 INTO CODNUM==CODNUM ANNO==ANNO PROVV==PROVV NDOC==NDOC
JOIN 16 TO 33 INTO TIPOCF==TIPOCF CODCF==CODCF CODIND==CODINDSP
JOIN 47 INTO CODART==CODART
JOIN %CPG TO 33 ALIAS 201 INTO CODTAB==CODPAG
@ -61,8 +13,8 @@ JOIN %CTR TO 33 ALIAS 207 INTO CODTAB==CAUSTRASP
END
DESCRIPTION
BEGIN
34->* "Righe documenti di vendita"
33->* "Documenti di vendita"
34->* "Righe documenti di vendita"
16->* "Indirizzi di spedizione (destinazione)"
47->* "Anagrafica magazzino"
201@->* "Tabella condizioni di pagamento"
@ -71,6 +23,7 @@ BEGIN
204@->* "Tabella banche"
205@->* "Tabella vettori"
206@->* "Tabella aspetto beni"
207@->* "Tabella causali di trasporto"
END
GENERAL
@ -151,42 +104,42 @@ BEGIN
MESSAGE _DITTA,!CF
END
STRING 14 35 2
STRING 9 35 2
BEGIN
KEY "destinatario, ditta"
PROMPT 44 14 ""
MESSAGE _CLIENTE,!RAGSOC
END
STRING 15 35 2
STRING 10 35 2
BEGIN
KEY "destinatario, indirizzo con numero civico"
PROMPT 44 16 ""
MESSAGE _CLIENTE,!INDNUM
END
STRING 16 5 1
STRING 11 5 1
BEGIN
KEY "destinatario, cap"
PROMPT 44 18 ""
MESSAGE _CLIENTE,!CAP
END
STRING 17 30 2
STRING 12 30 2
BEGIN
KEY "destinatario, comune"
PROMPT 50 18 ""
MESSAGE _CLIENTE,!COM
END
STRING 18 2
STRING 13 2
BEGIN
KEY "destinatario, provincia"
PROMPT 72 19 ""
MESSAGE _CLIENTE,!PROV
END
DATE 19 8 1
DATE 14 8 1
BEGIN
KEY "data bolla"
PROMPT 60 21 ""
@ -194,28 +147,28 @@ BEGIN
FORMAT "1442-"
END
NUMBER 20 7
NUMBER 15 7
BEGIN
KEY "numero bolla"
PROMPT 71 21 ""
FIELD 33->NDOC
FIELD NDOC
END
STRING 21 30 2
STRING 16 30 2
BEGIN
KEY "destinazione, indirizzo"
PROMPT 5 14 ""
FIELD 16->INDIR
END
STRING 32 5 1
STRING 17 5 1
BEGIN
KEY "destinazione, cap"
PROMPT 5 16 ""
FIELD 16->CAP
END
STRING 49 5 1
STRING 18 5 1
BEGIN
KEY ""
PROMPT 1 1 ""
@ -223,64 +176,64 @@ BEGIN
FIELD 16->COM
END
STRING 33 21
STRING 19 21
BEGIN
KEY "destinazione, comune"
PROMPT 5 18 ""
MESSAGE _ISAMREAD,13,COM=#49,DENCOM
MESSAGE _ISAMREAD,13,COM=#18,DENCOM
END
STRING 34 2 1
STRING 20 2 1
BEGIN
KEY "destinazione, provincia"
PROMPT 28 18 ""
MESSAGE _ISAMREAD,13,COM=#49,PROVCOM
MESSAGE _ISAMREAD,13,COM=#18,PROVCOM
END
NUMBER 22
NUMBER 21
BEGIN
KEY "ordine"
PROMPT 3 21 ""
FIELD 33->NUMDOCRIF
FIELD NUMDOCRIF
END
DATE 23 8 1
DATE 22 8 1
BEGIN
KEY "data conferma"
PROMPT 43 21 ""
FIELD 33->DATADOCRIF
FIELD DATADOCRIF
FORMAT "1442-"
END
STRING 24 48 1
STRING 23 48 1
BEGIN
KEY "condizioni pagamento"
PROMPT 3 23 ""
FIELD 201@->S0
END
STRING 25 29 1
STRING 24 29 1
BEGIN
KEY "banca appoggio"
PROMPT 53 23 ""
FIELD 204@->S0
END
STRING 26 7 1
STRING 25 7 1
BEGIN
KEY "codice cliente"
PROMPT 8 25 ""
FIELD 33->CODCF
FIELD CODCF
END
STRING 27 11 1
STRING 26 11 1
BEGIN
KEY "partita iva cliente"
PROMPT 18 25 ""
MESSAGE _CLIENTE,!IVA
END
STRING 28 18 1
STRING 27 18 1
BEGIN
KEY "porto"
PROMPT 41 25 ""
@ -288,14 +241,14 @@ BEGIN
FLAGS "D"
END
NUMBER 29
NUMBER 28
BEGIN
KEY "codice agente"
PROMPT 2 25 ""
FIELD 33->CODAG
FIELD CODAG
END
STRING 30 28 1
STRING 29 28 1
BEGIN
KEY "nome agente"
PROMPT 33 29 ""
@ -307,45 +260,45 @@ END
SECTION BODY ODD 5
STRING 32 13 1
STRING 51 13 1
BEGIN
KEY "codice articolo"
PROMPT 5 1 ""
FIELD 34->CODART
END
STRING 33 29 4
STRING 52 29 4
BEGIN
KEY "descrizione articolo"
PROMPT 48 1 ""
MESSAGE _DESCRIGA
END
STRING 34 2
STRING 53 2
BEGIN
KEY "unità di misura"
PROMPT 30 1 ""
FIELD 34->UMQTA
MESSAGE _ALIGN,#33,TOP
MESSAGE _ALIGN,#52,TOP
END
NUMBER 35 10
NUMBER 54 10
BEGIN
KEY "quantita"
PROMPT 17 1 ""
PICTURE "######"
GROUP 30
FIELD 34->QTA
MESSAGE _ALIGN,#33,TOP
MESSAGE _ALIGN,#52,TOP
END
NUMBER 36 20
NUMBER 55 20
BEGIN
KEY "quantita' lettere"
PROMPT 72 1 ""
FIELD 34->QTA
PICTURE "LETTERE"
MESSAGE _ALIGN,#33,BOTTOM
MESSAGE _ALIGN,#52,BOTTOM
FLAGS "D"
END
@ -353,7 +306,7 @@ END
SECTION FOOTER ODD 15
STRING 47 5
STRING 81 5
BEGIN
KEY "scritta SEGUE"
PROMPT 72 13 "SEGUE"
@ -363,113 +316,113 @@ END
SECTION FOOTER LAST 15
LIST 37 1 1
LIST 101 1 1
BEGIN
KEY "trasporto a cura del mittente"
PROMPT 2 4 ""
FIELD 33->CODSPMEZZO
FIELD CODSPMEZZO
ITEM "|" MESSAGE DISABLE,6@|ENABLE,5@
ITEM "D| "
ITEM "M|X" MESSAGE DISABLE,6@|ENABLE,5@
ITEM "V| "
END
LIST 38 1 1
LIST 102 1 1
BEGIN
KEY "trasporto a cura del destinatario"
PROMPT 9 4 ""
FIELD 33->CODSPMEZZO
FIELD CODSPMEZZO
ITEM "|" MESSAGE DISABLE,6@|ENABLE,5@
ITEM "D|X" MESSAGE DISABLE,6@|ENABLE,5@
ITEM "M| "
ITEM "V| "
END
LIST 39 1 1
LIST 103 1 1
BEGIN
KEY "trasporto a cura del vettore"
PROMPT 17 4 ""
FIELD 33->CODSPMEZZO
FIELD CODSPMEZZO
ITEM "|" // default
ITEM "D| "
ITEM "M| "
ITEM "V|X" MESSAGE DISABLE,5@|ENABLE,6@
END
STRING 40 45 1
STRING 104 45 1
BEGIN
KEY "nome vettore"
PROMPT 3 6 ""
FIELD 205@->S0
END
STRING 41 45 1
STRING 105 45 1
BEGIN
KEY "indirizzo vettore"
PROMPT 3 8 ""
FIELD 205@->S1
END
DATE 42 8 1
DATE 106 8 1
BEGIN
KEY "data inizio trasporto/consegna"
PROMPT 48 4 ""
FIELD 33->DATAPART
FIELD DATAPART
FORMAT "1442-"
GROUP 5
END
STRING 43 5 1
STRING 107 5 1
BEGIN
KEY "ora inizio trasporto/consegna"
PROMPT 60 4 ""
PICTURE "## ##"
FIELD 33->ORAPART
FIELD ORAPART
GROUP 5
END
DATE 44 8 1
DATE 108 8 1
BEGIN
KEY "data ritiro"
PROMPT 51 7 ""
FIELD 33->DATAPART
FIELD DATAPART
FORMAT "1442-"
FLAGS "D"
GROUP 6
END
STRING 45 5 1
STRING 109 5 1
BEGIN
KEY "ora ritiro"
PROMPT 60 7 ""
PICTURE "## ##"
FIELD 33->ORAPART
FIELD ORAPART
FLAGS "D"
GROUP 6
END
STRING 46 27 1
STRING 110 27 1
BEGIN
KEY "aspetto beni"
PROMPT 1 8 ""
FIELD 206@->S0
END
STRING 48 7 1
STRING 111 7 1
BEGIN
KEY "peso"
PROMPT 45 10 ""
FIELD 33->PNETTO
FIELD PNETTO
END
STRING 49 5 1
STRING 112 5 1
BEGIN
KEY "colli"
PROMPT 60 10 ""
FIELD 33->NCOLLI
FIELD NCOLLI
END
STRING 50 15
STRING 113 15
BEGIN
KEY "causale"
PROMPT 25 4 ""
@ -479,3 +432,185 @@ END
END
END
// NOTE SULLA COMPILAZIONE DEI FORM DI STAMPA
//
// SEZIONE GENERAL
// ===============
// Posizionamento:
// e' possibile effettuari posizionamenti manuali dei form con le seguenti istruzioni:
// CARATTERE <S>
// INIZIALE <N> <N>
// FINALE <N> <N>
// dove:
// CARATTERE indica il carattere da stampare per contrassegnare il posizionamento, racchiuso tra doppi apici (eg "X")
// INIZIALE indica le coordinate X ed Y per il posizionamento iniziale (dove stampare il primo carattere)
// FINALE indica le coordinate X ed Y per il posizionamento finale (dove stampare il secondo carattere)
// FINALE puo' essere omesso; se definito e' comunque buona norma tenere la coordinata verticale (Y) uguale
// a quella indicata in INIZIALE, se diversi il programma tiene conto solo della prima.
// Non e' possibile definire sia posizionamenti manuali che OFFSET, quindi o l'uno o l'altro, preferibilmente
// e' meglio scegliere OFFSET.
//
// Modificatori di pictures:
// i parametri IMP_DECIMALS, QTA_DECIMALS, e PRI_DECIMALS settano i decimali da stampare/arrotondare
// per i seguenti: importi in genere, quantita', e prezzi. Il primo parametro intero e' per gli importi in lire
// il secondo per gli importi in valuta. Naturalmente per le quantita' non ha senso fare una cosa del genere, ma per completezza
// e' stata implementata.
// PRI_DECIMALS corrisponde al gruppo 29
// QTA_DECIMALS corrisponde al gruppo 30
// IMP_DECIMALS corrisponde al gruppo 31
// pertanto tutti i campi che apparterranno al gruppo 29,30 o 31 avranno gli importi stampati al numero di decimali impostati a
// seconda se il documento e' in lire o valuta. Se il numero di decimali e' 0 la picture rimarra' invariata.
// Altri gruppi definiti dall'utente saranno cosi' sintatticamente impostati:
// NEW_GROUP <n> <lit_dec> <val_dec>
// Dove <n> e' il numero del gruppo
// <lit_dec> e' il numero di decimali per i documenti in lire
// <val_dec> e' il numero di decimali per i documenti in valuta
//
// Definizione di liste di esclusione (facoltativo):
// EXCLUDE esclude dalla stampa le righe che soddisfano la condizione specificata.
// Si indicano in questo modo: "<tipo riga>,<cod. art>". Naturalmente si possono indicare tutti gli EXLCUDE che si vogliono.
// Es: EXCLUDE "V01,ART1" escludera' tutte le righe di tipo V01 con codice articolo ART1
// EXCLUDE ",ART1" escludera' tutte le righe che hanno codice articolo ART1
// EXCLUDE "V01," escludera' tutte le righe che hanno tipo riga V01
// EXCLUDE "," non escludera' nulla.
//
// MESSAGGI UTENTE
// ===============
// Note sui messaggi della testata/body/footer:
//
// _ISAMREAD:
// lettura generica di un file del database
// sintassi: _ISAMREAD,<file>,<espressione input>[!<espressione input>!...],{<campo file>|<espressione output>[!<espressione output>!...]}
// dove: <file> è il numero logico del file o il nome della tabella
// <espressione input> è un'espressione del tipo <campo file>=<espressione campi form>
// <espressione campi form> è un'espressione di costanti numeriche, stringhe e valori di campi della form (indicati con il loro numero preceduto da #)
// <espressione output> è un'espressione del tipo <campo form o gruppo>=<campo file> (se è un gruppo deve essere seguito da @) oppure solo <campo file> (il campo della form è quello corrente)
//
// _TABLEREAD:
// lettura generica di un campo di una tabella
// sintassi: _TABLEREAD,<tabella>,<chiave>,<campo file>
// dove: <tabella> nome tabella da leggere
// <chiave> costante stringa o riferimento a campo della form (preceduto da '#') da usare come chiave di ricerca
// <campo file> identificativo del campo da leggere dalla tabella
//
// _DITTA:
// lettura dei dati della ditta
// sintassi: _DITTA,{<campo relazione>|<macro>}
// dove: <campo relazione> è un riferimento alla relazione di gestione dei dati della ditta (es. 113@->DENCOM è la denominazione del comune di residenza della ditta)
// <macro> è uno delle macro seguenti:
// !RAGSOC ragione sociale
// !IND indirizzo (fiscale se c'è, oppure di residenza)
// !NUM numero civico (fiscale se c'è, oppure di residenza)
// !CAP CAP (fiscale se c'è, oppure di residenza)
// !COM comune (fiscale se c'è, oppure di residenza)
// !PROV provincia (fiscale se c'è, oppure di residenza)
// !IVA partita iva
// !CF codice fiscale
// !TEL numero di telefono (con prefisso)
// !FAX numero di fax (con prefisso)
// !REGSOC numero di registrazione presso il Tribunale
// !CCIAA numero di registrazione presso la camera di commercio
// nota: la relazione della ditta è così strutturata:
// %NDITTE (9) Dati ditte
// + %ANAGR (6) Anagrafica generale (indirizzo, ecc.)
// + %COMUNI (113@) Comune di residenza
// + %COMUNI (213@) Comune di residenza fiscale
// viene utilizzato perche' non e' possibile stabilire altrimenti una relazione con il file ditte
// dall'interno del form.
//
// _CLIENTE
// lettura dei dati del cliente
// sintassi: _CLIENTE,{<campo relazione>|<macro>}
// dove: <campo relazione> è un riferimento alla relazione di gestione dei dati del cliente
// <macro> è uno delle macro seguenti:
// !RAGSOC ragione sociale
// !IND indirizzo
// !NUM numero civico
// !INDNUM indirizzo + numero civico
// !LOC località
// !CAP CAP
// !COM comune
// !PROV provincia
// !IVA partita iva
// !CF codice fiscale
// !PERS <F> se persona fisica, <G> se giuridica
// !DATANAS data di nascita
// !COMNAS comune di nascita
// !TEL primo numero di telefono (con prefisso)
// !TEL2 secondo numero di telefono (con prefisso)
// !TEL3 terzo numero di telefono (con prefisso)
// !FAX numero di fax (con prefisso)
// nota: la relazione del cliente è così strutturata:
// CLIFO (20) Clienti/fornitori
// + CFVEN (17) Clienti/fornitori per vendite
// + %COMUNI (113@) Comune di residenza
// + %COMUNI (213@) Comune di nascita
// viene utilizzato al posto del file 17 collegato perche' vi sono particolari
// accorgimenti per quanto riguarda i clienti occasionali.
//
// _DESCRIGA:
// Messaggio per reperire e formattare anche la descrizione estesa sulle righe del documento
//
// _ALIGN:
// allineamento della posizione di un campo rispetto ad un altro
// sintassi: _ALIGN,<campo form>[,<allineamento>][,<allineamento>...]
// dove: <campo form> è il campo della form (preceduto da '#') da cui prendere l'allineamento
// <allineamento> è uno dei seguenti valori:
// TOP allinea sulla riga d'inizio
// MIDDLE allinea al centro (effettivo)
// BOTTOM allinea sulla riga di fine (effettiva, non preimpostata)
// LEFT allinea sulla colonna d'inizio
// RIGHT allinea sulla colonna di fine
//
// _PAGENO:
// Messaggio per stampare il numero di pagina corrente
//
// _RIEPILOGOIVA:
// messaggio per stampare la tabella ripelogativa delle aliquote IVA e relative imposte
// sintassi: _RIEPILOGOIVA,<selettore>,<macro>,<cambio codice>
// dove: <selettore> è uno dei seguenti:
// 1 = codici IVA a regime normale
// 2 = codici IVA da ventilare
// 4 = codici IVA esenti
// 8 = codici IVA non imponibili
// 16 = codici IVA non soggetti
// oppure la combinazione di uno o piu' di essi:
// 12 = 4+8, 19 = 1+2+16, 29 = 1+4+8+16 ecc...
// pertanto per avere i non imponibili in totale il selettore sara' 1,
// per avere gli esenti il selettore sara' 4; per avere i non soggetti + esenti
// il selettore sara' 20 e cosi' via.
// dove: <macro> è uno dei seguenti:
// COD colonna dei codici
// IMP colonna degli imponibili
// IVA colonna delle imposte
// ALI colonna delle aliquote
// DES colonna delle descrizioni (stampata solo se il regime IVA non e' normale)
// dove: <cambio codice> è uno dei seguenti:
// 0 indica di non leggere il successivo codice IVA nella tabella riepilogativa
// 1 indica di leggere il successivo codice IVA nella tabella riepilogativa
//
// _TOTIMPONIBILI:
// messaggio per stampare diverse totalizzazioni di imponibili
// sintassi: _TOTIMPONIBILI,<selettore>
// dove: <selettore> funge da filtro per la somma degli imponibili
// vedi _RIEPILOGOIVA per la spiegazione dei filtri selettivi
//
// _SCADENZE:
// messaggio per stampare le scadenze
// sintassi: _SCADENZE,<macro>,<cambio codice>
// dove <macro> e' uno dei seguenti:
// DATA : stampa la data di scadenza
// IMPORTO : stampa l'importo in scadenza
// dove <cambio codice> vale 0 o 1 se indica di rendere corrente la prossima scadenza
//
// CAMPI VIRTUALI
// ==============
// Oltre a stampare i campi normali del file e' anche possibile stampare i campi virtuali
// definiti nei profili semplicemente indicandoli nella istruzione FIELD:
// per la testata del documento:
// BOLLI, BASESCONTO, IMPOSTE, PROVVD, SCONTOD, SPESEINC, TOTDOC, TOTMER, TOTNS, TOTPRE, TOTSPE
// per le righe:
// IMPLN, IMPLS, IMPNN, IMPNS, IMPOSTA, PREZZOLN, PREZZOLS, PREZZONN, PREZZONS, PROVVR, SCONTOR
// oltre, naturalmente a quelli definiti dall'utente

View File

@ -1,56 +1,10 @@
// - Codici per i totalizzatori:
// Questi vengono letti in G1 sulla testata:
// SPTRAS spese di trasporto
// SPINC spese incasso
// SPIMB spese imballaggio
// SPBOL spese bolli
// Questi vengono ricalcolati in stampa:
// TIMPONIBILI totale imponibile (calcolato in stampa dalla tabella riepilogativa)
// TIMPOSTE totale imposta (calcolato in stampa dalla tabella riepilogativa)
// TESENTI totale esenti (calcolato in stampa dalla tabella riepilogativa)
// TIMPNETTI totale importi netti (stesso codice per il totalizzatore della riga)
// TOTDOC totale documento (fattura in questo caso)
//
// Mappa dei selettori di filtro (parametro 2 di _RIEPILOGOIVA) per la stampa della tabella
// riepilogativa e dei totali esenti/imponibili/non soggetti/non imponibili:
// 1 = regime normale
// 2 = ventilare (non usato)
// 4 = esenti
// 8 = non imponibili
// 16 = non soggetti
// pertanto per avere i non imponibili in totale il selettore sara' 1,
// per avere gli esenti il selettore sara' 4; per avere i non soggetti + esenti
// il selettore sara' 20 e cosi' via.
// Modificatori di pictures:
// i parametri IMP_DECIMALS, QTA_DECIMALS, e PRI_DECIMALS settano i decimali da stampare/arrotondare
// per i seguenti: importi in genere, quantita', e prezzi. Il primo parametro intero e' per gli importi in lire
// il secondo per gli importi in valuta. Naturalmente per le quantita' non ha senso fare una cosa del genere, ma per completezza
// e' stata implementata.
// PRI_DECIMALS corrisponde al gruppo 29
// QTA_DECIMALS corrisponde al gruppo 30
// IMP_DECIMALS corrisponde al gruppo 31
// pertanto tutti i campi che apparterranno al gruppo 29,30 o 31 avranno gli importi stampati al numero di decimali impostati a
// seconda se il documento e' in lire o valuta. Se il numero di decimali e' 0 la picture rimarra' invariata.
// Altri gruppi definiti dall'utente saranno cosi' sintatticamente impostati:
// NEW_GROUP <n> <lit_dec> <val_dec>
// Dove <n> e' il numero del gruppo
// <lit_dec> e' il numero di decimali per i documenti in lire
// <val_dec> e' il numero di decimali per i documenti in valuta
// Istruzione EXCLUDE nella sezione GENERAL (facoltativo):
// EXCLUDE esclude dalla stampa le righe che soddisfano la condizione specificata.
// Si indicano in questo modo: "<tipo riga>,<cod. art>". Naturalmente si possono indicare tutti gli EXLCUDE che si vogliono.
// Es: EXCLUDE "V01,ART1" escludera' tutte le righe di tipo V01 con codice articolo ART1
// EXCLUDE ",ART1" escludera' tutte le righe che hanno codice articolo ART1
// EXCLUDE "V01," escludera' tutte le righe che hanno tipo riga V01
// EXCLUDE "," non escludera' nulla.
USE 34
JOIN 33 INTO CODNUM==CODNUM ANNO==ANNO PROVV==PROVV NDOC==NDOC
USE 33
JOIN 34 INTO CODNUM==CODNUM ANNO==ANNO PROVV==PROVV NDOC==NDOC
JOIN 17 TO 33 INTO TIPOCF==TIPOCF CODCF==CODCF
JOIN 20 TO 33 INTO TIPOCF==TIPOCF CODCF==CODCF
JOIN 16 TO 33 INTO TIPOCF==TIPOCF CODCF==CODCF CODIND==CODINDSP
JOIN 16 TO 17 ALIAS 116 INTO TIPOCF==TIPOCF CODCF==CODCF CODIND==CODINDSP
JOIN 47 INTO CODART==CODART
JOIN 47 TO 34 INTO CODART==CODART
JOIN %CPG TO 33 ALIAS 201 INTO CODTAB==CODPAG
JOIN %AGE TO 33 ALIAS 202 INTO CODTAB==CODAG
JOIN %POR TO 33 ALIAS 203 INTO CODTAB==CODPORTO
@ -59,6 +13,7 @@ JOIN %VET TO 33 ALIAS 205 INTO CODTAB==CODVETT1
JOIN %ASP TO 33 ALIAS 206 INTO CODTAB==ASPBENI1
END
DESCRIPTION
BEGIN
34->* "Righe documenti di vendita"
@ -152,56 +107,56 @@ BEGIN
MESSAGE _DITTA, !REGSOC
END
NUMERO 12 30 1
NUMERO 10 30 1
BEGIN
KEY "c.c.i.a.a. ....."
PROMPT 3 10 "C.C.I.A.A. "
MESSAGE _DITTA, !CCIAA
END
STRINGA 14 10 1
STRINGA 11 10 1
BEGIN
KEY "data fattura"
PROMPT 61 21 ""
FILED 33->DATADOC
END
STRINGA 15 7
STRINGA 12 7
BEGIN
KEY "numero fattura"
PROMPT 74 21 ""
FIELD 33->NDOC
END
STRINGA 16 4 1
STRINGA 13 4 1
BEGIN
KEY "codice cliente"
PROMPT 3 23 ""
FIELD 33->CODCF
END
STRINGA 17 2 1
STRINGA 14 2 1
BEGIN
KEY "codice agente"
PROMPT 9 23 ""
FIELD 33->CODAG
END
STRINGA 18 14 1
STRINGA 15 14 1
BEGIN
KEY "porto"
PROMPT 52 23 ""
FIELD 203@->S0
END
NUMERO 19 7 1
NUMERO 16 7 1
BEGIN
KEY "ordine"
PROMPT 12 23 ""
FIELD 33->NUMDOCRIF
END
DATA 20 10 1
DATA 17 10 1
BEGIN
KEY "data conferma"
PROMPT 20 23 ""
@ -209,56 +164,56 @@ BEGIN
FORMAT "1444-"
END
STRINGA 21 49 1
STRINGA 18 49 1
BEGIN
KEY "condizioni di pagamento"
PROMPT 3 25 ""
FIELD 201@->S0
END
STRINGA 22 29 1
STRINGA 19 29 1
BEGIN
KEY "banca d'appoggio"
PROMPT 54 25 ""
FIELD 204@->S0
END
STRINGA 23 38 2
STRINGA 20 38 2
BEGIN
KEY "cliente ragione sociale "
PROMPT 44 11 ""
MESSAGE _CLIENTE,!RAGSOC
END
STRINGA 24 35 2
STRINGA 21 35 2
BEGIN
KEY "cliente indirizzo con numero civico"
PROMPT 44 13 ""
MESSAGE _CLIENTE,!INDNUM
END
STRINGA 25 3
STRINGA 22 3
BEGIN
KEY "Numero di pagina"
PROMPT 74 10 ""
MESSAGE _PAGENO
END
STRINGA 27 5 1
STRINGA 23 5 1
BEGIN
KEY "cliente cap"
PROMPT 44 15 ""
MESSAGE _CLIENTE,!CAP
END
STRINGA 28 30 1
STRINGA 24 30 1
BEGIN
KEY "cliente comune"
PROMPT 50 15 ""
MESSAGE _CLIENTE,!COM
END
STRINGA 30 2 1
STRINGA 25 2 1
BEGIN
KEY "cliente provincia"
PROMPT 73 16 ""
@ -269,100 +224,104 @@ END
SECTION BODY ODD 5
STRINGA 32 13 1
STRINGA 51 13 1
BEGIN
KEY "codice articolo"
PROMPT 2 1 ""
FIELD 34->CODART
PROMPT 2 1 ""
END
STRINGA 33 25 4
STRINGA 52 25 4
BEGIN
KEY "descrizione articolo"
PROMPT 17 1 ""
MESSAGE _DESCRIGA
PROMPT 17 1 ""
END
STRINGA 34 2
STRINGA 53 2
BEGIN
KEY "unita' di misura"
PROMPT 42 1 ""
FIELD 34->UMQTA
MESSAGE _ALIGN,#33,BOTTOM
MESSAGE _ALIGN,#52,BOTTOM
END
NUMBER 35 10
NUMBER 54 10
BEGIN
KEY "quantita'"
PROMPT 45 1 ""
FIELD 34->QTA
PICTURE "######"
GROUP 30
FIELD 34->QTA
MESSAGE _ALIGN,#33,BOTTOM
MESSAGE _ALIGN,#52,BOTTOM
END
NUMBER 36 15
NUMBER 55 15
BEGIN
KEY "prezzo unitario"
PROMPT 56 1 ""
PICTURE "###.###.###.###"
GROUP 29
FIELD 34->PREZZO
MESSAGE _ALIGN,#33,BOTTOM
GROUP 29
MESSAGE _ALIGN,#52,BOTTOM
END
STRINGA 37 25
STRINGA 56 25
BEGIN
KEY "sconto"
PROMPT 72 1 ""
FIELD 34->SCONTO
MESSAGE _ALIGN,#33,BOTTOM
MESSAGE _ALIGN,#52,BOTTOM
END
NUMBER 38 15
NUMBER 57 15
BEGIN
KEY "importo netto"
PROMPT 68 1 ""
FLAGS "H"
GROUP 29
FIELD 34->IMPNN
PICTURE "###.###.###.###"
MESSAGE _TOTAL_RIGA,IMPNETTO|_ALIGN,#33,BOTTOM
MESSAGE _ALIGN,#52,BOTTOM
END
STRINGA 39 4
STRINGA 58 4
BEGIN
KEY "iva"
PROMPT 81 1 ""
FIELD 34->CODIVA
MESSAGE _ALIGN,#33,BOTTOM
MESSAGE _ALIGN,#52,BOTTOM
END
NUMBER 40 15
NUMBER 59 15
BEGIN
KEY "prezzo unitario scontato"
PROMPT 68 1 ""
PICTURE "###.###.###.###"
FIELD 34->PREZZONS
GROUP 29
MESSAGE _TOTAL_RIGA,IMPUNITARIO|_ALIGN,#33,BOTTOM
MESSAGE _ALIGN,#52,BOTTOM
FLAGS "H"
END
NUMBER 41 15
NUMBER 60 15
BEGIN
KEY "provvigione"
PROMPT 68 1 ""
PICTURE "###.###.###.###"
MESSAGE _TOTAL_RIGA,PROVVIGIONE|_ALIGN,#33,BOTTOM
FIELD 34->PROVVR
MESSAGE _ALIGN,#52,BOTTOM
GROUP 31
FLAGS "H"
END
NUMBER 42 15
NUMBER 61 15
BEGIN
KEY "Imposta"
PROMPT 68 1 ""
PICTURE "###.###.###.###"
MESSAGE _TOTAL_RIGA,IMPOSTA|_ALIGN,#33,BOTTOM
FIELD 34->IMPOSTA
MESSAGE _ALIGN,#52,BOTTOM
GROUP 31
FLAGS "H"
END
@ -371,7 +330,7 @@ END
SECTION FOOTER ODD 13
STRINGA 76 5 1
STRINGA 81 5 1
BEGIN
KEY "stampa 'segue' in coda"
PROMPT 73 13 "SEGUE"
@ -381,50 +340,61 @@ END
SECTION FOOTER LAST 13
NUMBER 40 15
NUMBER 101 15
BEGIN
KEY "spese"
PROMPT 56 3 ""
PICTURE "###.###.###.###"
FIELD TOTSPE
FLAGS "H"
GROUP 31
END
NUMBER 102 15
BEGIN
KEY "spese di trasporto"
PROMPT 56 3 ""
MESSAGE _TOTAL_CODA,SPTRAS
PICTURE "###.###.###.###"
// Aggiungere il campo per le spese di trasporto
FLAGS "H"
GROUP 31
END
NUMBER 41 15
BEGIN
KEY "spese di incasso"
PROMPT 56 5 ""
MESSAGE _TOTAL_CODA,SPINC
PICTURE "###.###.###.###"
GROUP 31
END
NUMBER 42 15
NUMBER 103 15
BEGIN
KEY "spese di imballo"
PROMPT 56 4 ""
MESSAGE _TOTAL_CODA,SPIMB
PICTURE "###.###.###.###"
// Aggiungere il campo per le spese di imballo
FLAGS "H"
GROUP 31
END
NUMBER 43 11
NUMBER 104 15
BEGIN
KEY "spese di incasso"
PROMPT 56 5 ""
PICTURE "###.###.###.###"
FIELD SPESEINC
GROUP 31
END
NUMBER 105 11
BEGIN
KEY "spese bolli"
PROMPT 60 6 ""
MESSAGE _TOTAL_CODA,SPBOL
PICTURE "###.###.###"
FIELD BOLLI
GROUP 31
END
STRING 76 4
STRING 106 4
BEGIN
KEY "codice iva 1"
PROMPT 2 2 ""
MESSAGE _RIEPILOGOIVA,1,COD,0
END
NUMBER 44 15
NUMBER 107 15
BEGIN
KEY "imponibile 1"
PROMPT 7 2 ""
@ -433,7 +403,7 @@ BEGIN
GROUP 31
END
NUMBER 45 5
NUMBER 108 5
BEGIN
KEY "iva 1"
PROMPT 23 2 ""
@ -441,7 +411,7 @@ BEGIN
PICTURE "##,@@"
END
NUMBER 46 15
NUMBER 109 15
BEGIN
KEY "imposta 1"
PROMPT 28 2 ""
@ -450,14 +420,14 @@ BEGIN
GROUP 31
END
STRING 77 4
STRING 110 4
BEGIN
KEY "codice iva 2"
PROMPT 2 3 ""
MESSAGE _RIEPILOGOIVA,1,COD,0
END
NUMBER 47 15
NUMBER 111 15
BEGIN
KEY "imponibile 2"
PROMPT 7 3 ""
@ -466,7 +436,7 @@ BEGIN
GROUP 31
END
NUMBER 48 5
NUMBER 112 5
BEGIN
KEY "iva 2"
PROMPT 23 3 ""
@ -474,7 +444,7 @@ BEGIN
PICTURE "##,@@"
END
NUMBER 49 15
NUMBER 113 15
BEGIN
KEY "imposta 2"
PROMPT 28 3 ""
@ -483,14 +453,14 @@ BEGIN
GROUP 31
END
STRING 78 4
STRING 114 4
BEGIN
KEY "codice iva 3"
PROMPT 2 4 ""
MESSAGE _RIEPILOGOIVA,1,COD,0
END
NUMBER 50 15
NUMBER 115 15
BEGIN
KEY "imponibile 3"
PROMPT 7 4 ""
@ -499,7 +469,7 @@ BEGIN
GROUP 31
END
NUMBER 51 5
NUMBER 116 5
BEGIN
KEY "iva 3"
PROMPT 23 4 ""
@ -507,7 +477,7 @@ BEGIN
PICTURE "##,@@"
END
NUMBER 52 15
NUMBER 117 15
BEGIN
KEY "imposta 3"
PROMPT 28 4 ""
@ -516,7 +486,7 @@ BEGIN
GROUP 31
END
NUMBER 53 15
NUMBER 118 15
BEGIN
KEY "imponibile 4"
PROMPT 7 5 ""
@ -525,21 +495,21 @@ BEGIN
GROUP 31
END
STRINGA 54 4
STRINGA 119 4
BEGIN
KEY "codice iva 4"
PROMPT 2 5 ""
MESSAGE _RIEPILOGOIVA,30,COD,0
END
STRINGA 55 45
STRINGA 120 45
BEGIN
KEY "descrizione altri 4"
PROMPT 23 5 ""
MESSAGE _RIEPILOGOIVA,30,DES,1
END
NUMBER 56 15
NUMBER 121 15
BEGIN
KEY "imponibile 5"
PROMPT 7 6 ""
@ -548,73 +518,73 @@ BEGIN
GROUP 31
END
STRINGA 57 4
STRINGA 122 4
BEGIN
KEY "codice iva 5"
PROMPT 2 6 ""
MESSAGE _RIEPILOGOIVA,30,COD,0
END
STRINGA 58 45
STRINGA 123 45
BEGIN
KEY "descrizione altri 5"
PROMPT 23 6 ""
MESSAGE _RIEPILOGOIVA,30,DES,1
END
NUMBER 59 15
NUMBER 124 15
BEGIN
KEY "totale imponibile"
PROMPT 71 6 ""
MESSAGE _TOTAL_CODA,TIMPONIBILI,1
MESSAGE _TOTIMPONIBILI,1
PICTURE "###.###.###.###"
GROUP 31
END
NUMBER 60 15
NUMBER 125 15
BEGIN
KEY "totale imposta"
PROMPT 71 7 ""
MESSAGE _TOTAL_CODA,TIMPOSTE
FIELD IMPOSTE
PICTURE "###.###.###.###"
GROUP 31
END
NUMBER 61 15
NUMBER 126 15
BEGIN
KEY "totale esenti"
PROMPT 71 8 ""
MESSAGE _TOTAL_CODA,TIMPONIBILI,4
MESSAGE _TOTIMPONIBILI,4
PICTURE "###.###.###.###"
GROUP 31
END
NUMBER 62 15
NUMBER 127 15
BEGIN
KEY "totale importi netti"
KEY "totale importi netti (non scontati)"
PROMPT 71 1 ""
MESSAGE _TOTAL_CODA,TIMPNETTI
FIELD TOTMERC
PICTURE "###.###.###.###"
GROUP 31
END
NUMBER 63 15
NUMBER 128 15
BEGIN
KEY "totale fattura"
PROMPT 71 9 ""
MESSAGE _TOTAL_CODA,TOTDOC
FIELD TOTDOC
PICTURE "###.###.###.###"
GROUP 31
END
DATA 64 10 1
DATA 129 10 1
BEGIN
KEY "scadenza pagamento 1"
PROMPT 3 10 ""
MESSAGE _SCADENZE,DATA,0
END
NUMBER 65 15
NUMBER 130 15
BEGIN
KEY "importo scadenza 1"
PROMPT 16 10 ""
@ -623,14 +593,14 @@ BEGIN
GROUP 31
END
DATA 66 10 1
DATA 131 10 1
BEGIN
KEY "scadenza pagamento 2"
PROMPT 32 10 ""
MESSAGE _SCADENZE,DATA,0
END
NUMBER 67 15
NUMBER 132 15
BEGIN
KEY "importo scadenza 2"
PROMPT 45 10 ""
@ -638,15 +608,15 @@ BEGIN
PICTURE "###.###.###.###"
GROUP 31
END
DATA 68 10 1
DATA 133 10 1
BEGIN
KEY "scadenza pagamento 3"
PROMPT 3 11 ""
MESSAGE _SCADENZE,DATA,0
END
NUMBER 69 15
NUMBER 134 15
BEGIN
KEY "importo scadenza 3"
PROMPT 16 11 ""
@ -655,14 +625,14 @@ BEGIN
GROUP 31
END
DATA 70 10 1
DATA 135 10 1
BEGIN
KEY "scadenza pagamento 4"
PROMPT 32 11 ""
MESSAGE _SCADENZE,DATA,0
END
NUMBER 71 15
NUMBER 136 15
BEGIN
KEY "importo scadenza 4"
PROMPT 45 11 ""
@ -671,14 +641,14 @@ BEGIN
GROUP 31
END
DATA 72 10 1
DATA 137 10 1
BEGIN
KEY "scadenza pagamento 5"
PROMPT 3 12 ""
MESSAGE _SCADENZE,DATA,0
END
NUMBER 73 15
NUMBER 138 15
BEGIN
KEY "importo scadenza 5"
PROMPT 16 12 ""
@ -689,4 +659,184 @@ END
END
// NOTE SULLA COMPILAZIONE DEI FORM DI STAMPA
//
// SEZIONE GENERAL
// ===============
// Posizionamento:
// e' possibile effettuari posizionamenti manuali dei form con le seguenti istruzioni:
// CARATTERE <S>
// INIZIALE <N> <N>
// FINALE <N> <N>
// dove:
// CARATTERE indica il carattere da stampare per contrassegnare il posizionamento, racchiuso tra doppi apici (eg "X")
// INIZIALE indica le coordinate X ed Y per il posizionamento iniziale (dove stampare il primo carattere)
// FINALE indica le coordinate X ed Y per il posizionamento finale (dove stampare il secondo carattere)
// FINALE puo' essere omesso; se definito e' comunque buona norma tenere la coordinata verticale (Y) uguale
// a quella indicata in INIZIALE, se diversi il programma tiene conto solo della prima.
// Non e' possibile definire sia posizionamenti manuali che OFFSET, quindi o l'uno o l'altro, preferibilmente
// e' meglio scegliere OFFSET.
//
// Modificatori di pictures:
// i parametri IMP_DECIMALS, QTA_DECIMALS, e PRI_DECIMALS settano i decimali da stampare/arrotondare
// per i seguenti: importi in genere, quantita', e prezzi. Il primo parametro intero e' per gli importi in lire
// il secondo per gli importi in valuta. Naturalmente per le quantita' non ha senso fare una cosa del genere, ma per completezza
// e' stata implementata.
// PRI_DECIMALS corrisponde al gruppo 29
// QTA_DECIMALS corrisponde al gruppo 30
// IMP_DECIMALS corrisponde al gruppo 31
// pertanto tutti i campi che apparterranno al gruppo 29,30 o 31 avranno gli importi stampati al numero di decimali impostati a
// seconda se il documento e' in lire o valuta. Se il numero di decimali e' 0 la picture rimarra' invariata.
// Altri gruppi definiti dall'utente saranno cosi' sintatticamente impostati:
// NEW_GROUP <n> <lit_dec> <val_dec>
// Dove <n> e' il numero del gruppo
// <lit_dec> e' il numero di decimali per i documenti in lire
// <val_dec> e' il numero di decimali per i documenti in valuta
//
// Definizione di liste di esclusione (facoltativo):
// EXCLUDE esclude dalla stampa le righe che soddisfano la condizione specificata.
// Si indicano in questo modo: "<tipo riga>,<cod. art>". Naturalmente si possono indicare tutti gli EXLCUDE che si vogliono.
// Es: EXCLUDE "V01,ART1" escludera' tutte le righe di tipo V01 con codice articolo ART1
// EXCLUDE ",ART1" escludera' tutte le righe che hanno codice articolo ART1
// EXCLUDE "V01," escludera' tutte le righe che hanno tipo riga V01
// EXCLUDE "," non escludera' nulla.
//
// MESSAGGI UTENTE
// ===============
// Note sui messaggi della testata/body/footer:
//
// _ISAMREAD:
// lettura generica di un file del database
// sintassi: _ISAMREAD,<file>,<espressione input>[!<espressione input>!...],{<campo file>|<espressione output>[!<espressione output>!...]}
// dove: <file> è il numero logico del file o il nome della tabella
// <espressione input> è un'espressione del tipo <campo file>=<espressione campi form>
// <espressione campi form> è un'espressione di costanti numeriche, stringhe e valori di campi della form (indicati con il loro numero preceduto da #)
// <espressione output> è un'espressione del tipo <campo form o gruppo>=<campo file> (se è un gruppo deve essere seguito da @) oppure solo <campo file> (il campo della form è quello corrente)
//
// _TABLEREAD:
// lettura generica di un campo di una tabella
// sintassi: _TABLEREAD,<tabella>,<chiave>,<campo file>
// dove: <tabella> nome tabella da leggere
// <chiave> costante stringa o riferimento a campo della form (preceduto da '#') da usare come chiave di ricerca
// <campo file> identificativo del campo da leggere dalla tabella
//
// _DITTA:
// lettura dei dati della ditta
// sintassi: _DITTA,{<campo relazione>|<macro>}
// dove: <campo relazione> è un riferimento alla relazione di gestione dei dati della ditta (es. 113@->DENCOM è la denominazione del comune di residenza della ditta)
// <macro> è uno delle macro seguenti:
// !RAGSOC ragione sociale
// !IND indirizzo (fiscale se c'è, oppure di residenza)
// !NUM numero civico (fiscale se c'è, oppure di residenza)
// !CAP CAP (fiscale se c'è, oppure di residenza)
// !COM comune (fiscale se c'è, oppure di residenza)
// !PROV provincia (fiscale se c'è, oppure di residenza)
// !IVA partita iva
// !CF codice fiscale
// !TEL numero di telefono (con prefisso)
// !FAX numero di fax (con prefisso)
// !REGSOC numero di registrazione presso il Tribunale
// !CCIAA numero di registrazione presso la camera di commercio
// nota: la relazione della ditta è così strutturata:
// %NDITTE (9) Dati ditte
// + %ANAGR (6) Anagrafica generale (indirizzo, ecc.)
// + %COMUNI (113@) Comune di residenza
// + %COMUNI (213@) Comune di residenza fiscale
// viene utilizzato perche' non e' possibile stabilire altrimenti una relazione con il file ditte
// dall'interno del form.
//
// _CLIENTE
// lettura dei dati del cliente
// sintassi: _CLIENTE,{<campo relazione>|<macro>}
// dove: <campo relazione> è un riferimento alla relazione di gestione dei dati del cliente
// <macro> è uno delle macro seguenti:
// !RAGSOC ragione sociale
// !IND indirizzo
// !NUM numero civico
// !INDNUM indirizzo + numero civico
// !LOC località
// !CAP CAP
// !COM comune
// !PROV provincia
// !IVA partita iva
// !CF codice fiscale
// !PERS <F> se persona fisica, <G> se giuridica
// !DATANAS data di nascita
// !COMNAS comune di nascita
// !TEL primo numero di telefono (con prefisso)
// !TEL2 secondo numero di telefono (con prefisso)
// !TEL3 terzo numero di telefono (con prefisso)
// !FAX numero di fax (con prefisso)
// nota: la relazione del cliente è così strutturata:
// CLIFO (20) Clienti/fornitori
// + CFVEN (17) Clienti/fornitori per vendite
// + %COMUNI (113@) Comune di residenza
// + %COMUNI (213@) Comune di nascita
// viene utilizzato al posto del file 17 collegato perche' vi sono particolari
// accorgimenti per quanto riguarda i clienti occasionali.
//
// _DESCRIGA:
// Messaggio per reperire e formattare anche la descrizione estesa sulle righe del documento
//
// _ALIGN:
// allineamento della posizione di un campo rispetto ad un altro
// sintassi: _ALIGN,<campo form>[,<allineamento>][,<allineamento>...]
// dove: <campo form> è il campo della form (preceduto da '#') da cui prendere l'allineamento
// <allineamento> è uno dei seguenti valori:
// TOP allinea sulla riga d'inizio
// MIDDLE allinea al centro (effettivo)
// BOTTOM allinea sulla riga di fine (effettiva, non preimpostata)
// LEFT allinea sulla colonna d'inizio
// RIGHT allinea sulla colonna di fine
//
// _PAGENO:
// Messaggio per stampare il numero di pagina corrente
//
// _RIEPILOGOIVA:
// messaggio per stampare la tabella ripelogativa delle aliquote IVA e relative imposte
// sintassi: _RIEPILOGOIVA,<selettore>,<macro>,<cambio codice>
// dove: <selettore> è uno dei seguenti:
// 1 = codici IVA a regime normale
// 2 = codici IVA da ventilare
// 4 = codici IVA esenti
// 8 = codici IVA non imponibili
// 16 = codici IVA non soggetti
// oppure la combinazione di uno o piu' di essi:
// 12 = 4+8, 19 = 1+2+16, 29 = 1+4+8+16 ecc...
// pertanto per avere i non imponibili in totale il selettore sara' 1,
// per avere gli esenti il selettore sara' 4; per avere i non soggetti + esenti
// il selettore sara' 20 e cosi' via.
// dove: <macro> è uno dei seguenti:
// COD colonna dei codici
// IMP colonna degli imponibili
// IVA colonna delle imposte
// ALI colonna delle aliquote
// DES colonna delle descrizioni (stampata solo se il regime IVA non e' normale)
// dove: <cambio codice> è uno dei seguenti:
// 0 indica di non leggere il successivo codice IVA nella tabella riepilogativa
// 1 indica di leggere il successivo codice IVA nella tabella riepilogativa
//
// _TOTIMPONIBILI:
// messaggio per stampare diverse totalizzazioni di imponibili
// sintassi: _TOTIMPONIBILI,<selettore>
// dove: <selettore> funge da filtro per la somma degli imponibili
// vedi _RIEPILOGOIVA per la spiegazione dei filtri selettivi
//
// _SCADENZE:
// messaggio per stampare le scadenze
// sintassi: _SCADENZE,<macro>,<cambio codice>
// dove <macro> e' uno dei seguenti:
// DATA : stampa la data di scadenza
// IMPORTO : stampa l'importo in scadenza
// dove <cambio codice> vale 0 o 1 se indica di rendere corrente la prossima scadenza
//
// CAMPI VIRTUALI
// ==============
// Oltre a stampare i campi normali del file e' anche possibile stampare i campi virtuali
// definiti nei profili semplicemente indicandoli nella istruzione FIELD:
// per la testata del documento:
// BOLLI, BASESCONTO, IMPOSTE, PROVVD, SCONTOD, SPESEINC, TOTDOC, TOTMER, TOTNS, TOTPRE, TOTSPE
// per le righe:
// IMPLN, IMPLS, IMPNN, IMPNS, IMPOSTA, PREZZOLN, PREZZOLS, PREZZONN, PREZZONS, PROVVR, SCONTOR
// oltre, naturalmente a quelli definiti dall'utente