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 TO 34 INTO CODART==CODART
JOIN %CPG TO 33 ALIAS 201 INTO CODTAB==CODPAG
JOIN 122 TO 33  INTO CODAGE==CODAG
JOIN %POR TO 33 ALIAS 203 INTO CODTAB==CODPORTO
JOIN %BAN TO 33 ALIAS 204 INTO CODTAB==CODABIA+CODCABA
JOIN %VET TO 33 ALIAS 205 INTO CODTAB==CODVETT1
JOIN %ASP TO 33 ALIAS 206 INTO CODTAB==ASPBENI1
JOIN %CTR TO 33 ALIAS 207 INTO CODTAB==CAUSTRASP
JOIN %BAN TO 33 ALIAS 208 INTO CODTAB==CODABIA
JOIN %VAL TO 33 ALIAS 209 INTO CODTAB==CODVAL
JOIN %TIP TO 33 ALIAS 210 INTO CODTAB==TIPODOC

END

DESCRIPTION
BEGIN
  34->* "Righe documenti di vendita"
  33->* "Documenti di vendita"
  17->* "Clienti/Fornitori per vendite"
  20->* "Clienti/Fornitori"
  16->* "Indirizzi di spedizione (destinazione)"
  116@->* "Indirizzi di spedizione (destinatario)"
  47->* "Anagrafica magazzino"
  201@->* "Tabella condizioni di pagamento"
  122->* "Archivio agenti"
  203@->* "Tabella porto"
  204@->* "Tabella banche istituto"
  205@->* "Tabella vettori"
  206@->* "Tabella aspetto beni"
  207@->* "Tabella causale del trasporto"
  208@->* "Tabella banche agenzia"
END

GENERAL
BEGIN
  OFFSET 0 0
  FONT "Courier New"
  SIZE 10
  MODULE "FATTURA STANDARD AGA"
  PRI_DECIMALS 0 2
  QTA_DECIMALS 3 3
  IMP_DECIMALS 0 2
  EXCLUDE "08,"
  EXCLUDE "02,"
  EXCLUDE "03,"
END

SECTION GRAPHICS ODD 

FIGURA 99 93 68
BEGIN
  PROMPT 1 1 "fattura.bmp"
END

END

SECTION HEADER ODD 27

STRINGA 200 1 
BEGIN
 KEY "abilita/disabilita stampa intestazione ditta "
 PROMPT  1 1 ""
 MESSAGE ENABLE,15@
 FLAGS "H"
END

STRINGA 1 35 1
BEGIN
 KEY "nome ditta"
 PROMPT  3 4 ""
 MESSAGE _DITTA,!RAGSOC
 GROUP 15
 FLAGS "D"
END

STRINGA 2 35 1
BEGIN
 KEY "indirizzo ditta"
 PROMPT  3 5 ""
 MESSAGE _DITTA,!IND
 GROUP 15
 FLAGS "D"
END

STRINGA 3 5 1
BEGIN
 KEY "cap ditta"
 PROMPT  3 6 ""
 MESSAGE _DITTA,!CAP
 GROUP 15
 FLAGS "D"
END

STRINGA 4 30 1
BEGIN
 KEY "comune ditta"
 PROMPT  10 6 ""
 MESSAGE _DITTA,!COM
 GROUP 15
 FLAGS "D"
END

STRINGA 5 8 1
BEGIN
 KEY "scritta P.IVA"
 PROMPT  3 7 "P.IVA IT"
 GROUP 15
 FLAGS "D"
END

STRINGA 6 16 1
BEGIN
 KEY "partita iva ditta"
 PROMPT  12 7 ""
 MESSAGE _DITTA,!IVA
 GROUP 15
 FLAGS "D"
END

STRINGA 7 12 1
BEGIN
 KEY "scritta COD.FISC."
 PROMPT  3 8 "COD.FISC. IT"
 GROUP 15
 FLAGS "D"
END

STRINGA 8 16 1
BEGIN
 KEY "codice fiscale ditta"
 PROMPT  16 8 ""
 MESSAGE _DITTA,!CF
 GROUP 15
 FLAGS "D"
END

STRINGA 9 2
BEGIN
 KEY "Numero di pagina"
 PROMPT  88 20 ""
 MESSAGE _PAGENO
END

DATA 10 8 
BEGIN
 KEY "data fattura"
 PROMPT  64 20 ""
 FIELD 33->DATADOC
 FORMAT "1442-"
END

STRINGA 11 7
BEGIN
 KEY "numero fattura"
 PROMPT  77 20 ""
 FIELD 33->NDOC
END

STRINGA 12 5 
BEGIN
 KEY "codice cliente"
 PROMPT  2 22 ""
 FIELD 33->CODCF
END

STRINGA 13 3 
BEGIN
 KEY "codice agente"
 PROMPT  10 22 ""
 FIELD 33->CODAG
END

STRINGA 14 14 
BEGIN
 KEY "porto"
 PROMPT  57 22 ""
 FIELD 203@->S0
END

STRING 15 6 
BEGIN
 KEY "ordine"
 PROMPT  26 22 ""
 FIELD 33->NUMDOCRIF
END

DATA 16 8 
BEGIN
 KEY "data conferma"
 PROMPT  15 22 ""
 FIELD 33->DATADOCRIF
 FORMAT "1442-"
END

STRINGA 17 32 
BEGIN
 KEY "condizioni di pagamento"
 PROMPT  2 24 ""
 FIELD 201@->S0
END

STRINGA 18 27 
BEGIN
 KEY "banca d'appoggio istituto"
 PROMPT  37 24 ""
 FIELD 208@->S0
END

STRINGA 19 27 
BEGIN
 KEY "banca d'appoggio agenzia"
 PROMPT  65 24 ""
 FIELD 204@->S0
END

STRINGA 20 40 2
BEGIN
 KEY "cliente ragione sociale "
 PROMPT  48 11 ""
 MESSAGE _CLIENTE,!RAGSOC
END

STRINGA 21 40 2
BEGIN
 KEY "cliente indirizzo con numero civico"
 PROMPT  48 13 ""
 MESSAGE _CLIENTE,!INDNUM
END

STRING 22 40 1
BEGIN
 KEY "destinatario, localita"
 PROMPT 48 15 ""
 MESSAGE _CLIENTE,LOCALITACF
END

STRINGA 23 5 1
BEGIN
 KEY "cliente cap"
 PROMPT  48 16 ""
 MESSAGE _CLIENTE,!CAP
END

STRINGA 24 35 2
BEGIN
 KEY "cliente comune"
 PROMPT  54 16 ""
 MESSAGE _CLIENTE,!COM->DENCOM
 MESSAGE COPY,26
 FLAGS "H"
END

STRINGA 25 2 1
BEGIN
 KEY "cliente provincia"
 PROMPT  77 17 ""
 MESSAGE _CLIENTE,!COM->PROVCOM
 MESSAGE APPEND,26
 FLAGS "H"
END

STRINGA 26 30 2
BEGIN
 KEY "cliente comune+prov."
 PROMPT  54 16 ""
END

STRINGA 27 3 
BEGIN
 KEY "cliente codice stato"
 PROMPT  44 17 ""
 MESSAGE _CLIENTE,STATOCF
 FLAGS "H"
END

STRINGA 28 25 
BEGIN
 KEY "cliente nome stato"
 PROMPT  44 17 ""
 MESSAGE _TABLEREAD,%STA,#27,S0
 FLAGS "D"
END

STRING 29 11 
BEGIN
 KEY "copy partita iva"
 PROMPT 1 1 ""
 MESSAGE _CLIENTE,PAIV
 MESSAGE COPY,30
 FLAGS "H"
END

STRING 30 11 
BEGIN
 KEY "test PIVA/CF"
 PROMPT 1 1 ""
 MESSAGE EMPTY ENABLE,32
 MESSAGE ENABLE,31
 FLAGS "H"
END

STRING 31 11 
BEGIN
 KEY "partita iva cliente"
 PROMPT 36 22 ""
 MESSAGE _CLIENTE,PAIV
 FLAGS "D"
END

STRING 32 16 
BEGIN
 KEY "codice fiscale cliente"
 PROMPT 36 22 ""
 MESSAGE _CLIENTE,COFI
 FLAGS "D"
END

STRING 33 2 
BEGIN
 KEY "codice iso iva cliente"
 PROMPT 35 23 ""
 MESSAGE _CLIENTE,STATOPAIV
 FLAGS "D"
END

STRING 34 15 
BEGIN
 KEY "causale di trasporto"
 PROMPT 75 22 ""
 FIELD 207@->S0
END

STRING 35 27 
BEGIN
 KEY "valuta"
 PROMPT 57 20 ""
 FIELD CODVAL
END

STRING 36 27 
BEGIN
 KEY "tipo documento"
 PROMPT 2 20 ""
 FIELD 210@->S0
END

END

SECTION BODY ODD 5

STRINGA 51 12 1
BEGIN
 KEY "codice articolo"
 FIELD 34->CODART
 PROMPT  2 1 ""
END

STRINGA 52 20 22
BEGIN
 KEY "descrizione articolo"
 MESSAGE _DESCRIGA
 PROMPT  16 1 ""
END

STRINGA 53 2
BEGIN
 KEY "unita' di misura"
 PROMPT  40 1 ""
 FIELD 34->UMQTA
 MESSAGE _ALIGN,#52,BOTTOM
END

NUMBER 54 10
BEGIN
 KEY "quantita'"
 PROMPT  45 1 ""
 FIELD 34->QTA
 PICTURE "##.###.###"
 GROUP 30
 MESSAGE _ALIGN,#52,BOTTOM
END

NUMBER 55 12
BEGIN
 KEY "prezzo unitario"
 PROMPT  57 1 ""
 FIELD 34->PREZZO
 PICTURE "###.###.###"
 GROUP 29
 MESSAGE _ALIGN,#52,BOTTOM
END

STRINGA 56 3
BEGIN
 KEY "sconto"
 PROMPT  70 1 ""
 FIELD 34->SCONTO
 MESSAGE _ALIGN,#52,BOTTOM
END

NUMBER 57 12
BEGIN
 KEY "importo netto"
 PROMPT  75 1 ""
 FIELD 34->IMPNS
 PICTURE "###.###.###"
 GROUP 29
 MESSAGE _ALIGN,#52,BOTTOM
END

STRINGA 58 3 
BEGIN
 KEY "iva"
 PROMPT  90 1 ""
 FIELD 34->CODIVA
 MESSAGE _ALIGN,#52,BOTTOM
END

NUMBER 59 15
BEGIN
 KEY "prezzo unitario scontato"
 PROMPT  68 1 ""
 PICTURE "###.###.###.###"
 FIELD 34->PREZZONS
 GROUP 29
 MESSAGE _ALIGN,#52,BOTTOM
 FLAGS "H"
END

NUMBER 60 15
BEGIN
 KEY "provvigione"
 PROMPT  68 1 ""
 PICTURE "###.###.###.###"
 FIELD 34->PROVVR
 MESSAGE _ALIGN,#52,BOTTOM
 GROUP 31
 FLAGS "H"
END

NUMBER 61 15
BEGIN
 KEY "Imposta"
 PROMPT  68 1 ""
 PICTURE "###.###.###.###"
 FIELD 34->IMPOSTA
 MESSAGE _ALIGN,#52,BOTTOM
 GROUP 31
 FLAGS "H"
END

END

SECTION FOOTER ODD -49

STRINGA 100 5 1
BEGIN
 KEY "stampa 'segue' in coda"
 PROMPT  73 13 "SEGUE"
END

END

SECTION FOOTER LAST -49

NUMBER 101 12 
BEGIN
 KEY "totale importi netti (non scontati)"
 PROMPT  2 3 ""
 FIELD TOTMER
 PICTURE "###.###.###"
 GROUP 31
END

STRINGA 102 7 
BEGIN
 KEY "% sconto"
 PROMPT  23 3 ""
 FIELD 33->SCONTOPERC
END

NUMBER 103 11 
BEGIN
 KEY "totale sconti"
 PROMPT  32 3 ""
 FIELD SCONTOT
 PICTURE "###.###.###"
 GROUP 31
END

NUMBER 104 11 
BEGIN
 KEY "spese di trasporto"
 PROMPT  46 3 ""
 PICTURE "###.###.###"
 FIELD SPESTRA
 GROUP 31
END

NUMBER 105 11 
BEGIN
 KEY "spese di imballo"
 PROMPT  59 3 ""
 PICTURE "###.###.###"
 FIELD SPESIMB
 GROUP 31
END

NUMBER 106 11 
BEGIN
 KEY "acconto"
 PROMPT  79 5 ""
 FIELD 33->IMPPAGATO
 PICTURE "###.###.###"
 GROUP 31
END

STRING 107 3 
BEGIN
 KEY "codice iva 1"
 PROMPT  2 5 ""
 MESSAGE _RIEPILOGOIVA,1,COD,0
END

NUMBER 108 12 
BEGIN
 KEY "imponibile 1"
 PROMPT  8 5 ""
 MESSAGE _RIEPILOGOIVA,1,IMP,0
 PICTURE "###.###.###"
 GROUP 31
END

NUMBER 109 2 
BEGIN
 KEY "iva 1"
 PROMPT  23 5 ""
 MESSAGE _RIEPILOGOIVA,1,ALI,0
 PICTURE "##"
END

NUMBER 110 10 
BEGIN
 KEY "imposta 1"
 PROMPT  28 5 ""
 MESSAGE _RIEPILOGOIVA,1,IVA,1
 PICTURE "##.###.###"
 GROUP 31
END

STRING 111 3 
BEGIN
 KEY "codice iva 2"
 PROMPT  2 6 ""
 MESSAGE _RIEPILOGOIVA,1,COD,0
END

NUMBER 112 12 
BEGIN
 KEY "imponibile 2"
 PROMPT  8 6 ""
 MESSAGE _RIEPILOGOIVA,1,IMP,0
 PICTURE "###.###.###"
 GROUP 31
END

NUMBER 113 2 
BEGIN
 KEY "iva 2"
 PROMPT  23 6 ""
 MESSAGE _RIEPILOGOIVA,1,ALI,0
 PICTURE "##"
END

NUMBER 114 10 
BEGIN
 KEY "imposta 2"
 PROMPT  28 6 ""
 MESSAGE _RIEPILOGOIVA,1,IVA,1
 PICTURE "##.###.###"
 GROUP 31
END

STRING 115 3 
BEGIN
 KEY "codice iva 3"
 PROMPT  2 7 ""
 MESSAGE _RIEPILOGOIVA,1,COD,0
END

NUMBER 116 12 
BEGIN
 KEY "imponibile 3"
 PROMPT  8 7 ""
 MESSAGE _RIEPILOGOIVA,1,IMP,0
 PICTURE "###.###.###"
 GROUP 31
END

NUMBER 117 2 
BEGIN
 KEY "iva 3"
 PROMPT  23 7 ""
 MESSAGE _RIEPILOGOIVA,1,ALI,0
 PICTURE "##"
END

NUMBER 118 10 
BEGIN
 KEY "imposta 3"
 PROMPT  28 7 ""
 MESSAGE _RIEPILOGOIVA,1,IVA,1
 PICTURE "##.###.###"
 GROUP 31
END

NUMBER 119 12
BEGIN
 KEY "imponibile 4"
 PROMPT  8 9 ""
 MESSAGE _RIEPILOGOIVA,30,IMP,0
 PICTURE "###.###.###"
 GROUP 31
END

STRINGA 120 3 
BEGIN
 KEY "codice iva 4"
 PROMPT  2 9 ""
 MESSAGE _RIEPILOGOIVA,30,COD,0
END

STRINGA 121 45 
BEGIN
 KEY "descrizione altri 4"
 PROMPT  44 9 ""
 MESSAGE _RIEPILOGOIVA,30,DES,1
END

NUMBER 122 12 
BEGIN
 KEY "imponibile 5"
 PROMPT  8 10 ""
 MESSAGE _RIEPILOGOIVA,30,IMP,0
 PICTURE "###.###.###"
 GROUP 31
END

STRINGA 123 3 
BEGIN
 KEY "codice iva 5"
 PROMPT  2 10 ""
 MESSAGE _RIEPILOGOIVA,30,COD,0
END

STRINGA 124 45 
BEGIN
 KEY "descrizione altri 5"
 PROMPT  44 10 ""
 MESSAGE _RIEPILOGOIVA,30,DES,1
END

NUMBER 125 12 
BEGIN
 KEY "totale imponibile"
 PROMPT  8 13 ""
 MESSAGE _TOTIMPONIBILI,29
 PICTURE "###.###.###"
 GROUP 31
END

NUMBER 126 11 
BEGIN
 KEY "totale imposta"
 PROMPT  28 13 ""
 FIELD IMPOSTE
 PICTURE "###.###.###"
 GROUP 31
END

NUMBER 127 11 
BEGIN
 KEY "totale esenti"
 PROMPT  44 13 ""
 MESSAGE _TOTIMPONIBILI,28
 PICTURE "###.###.###"
 GROUP 31
END

NUMBER 128 7 
BEGIN
 KEY "spese di incasso"
 PROMPT  72 3 ""
 PICTURE "###.###"
 FIELD SPESINC
 GROUP 31
END

NUMBER 129 7 
BEGIN
 KEY "spese bolli"
 PROMPT  83 3 ""
 FIELD BOLLI
 PICTURE "###.###"
 GROUP 31
END

NUMBER 130 11 
BEGIN
 KEY "totale fattura"
 PROMPT  79 13 ""
 FIELD TOTDOC
 PICTURE "###.###.###"
 GROUP 31
 MESSAGE COPY,138
END

NUMBER 137 11 
BEGIN
 KEY "acconto"
 PROMPT  79 5 ""
 FIELD 33->IMPPAGATO
 PICTURE "###.###.###"
 GROUP 31
 MESSAGE SUB,138
END

NUMBER 138 11 
BEGIN
 KEY "netto a pagare"
 PROMPT  79 15 ""
 PICTURE "###.###.###"
 GROUP 31
END

DATA 143 8 
BEGIN
 KEY "scadenza pagamento 1"
 PROMPT  2 15 ""
 MESSAGE _SCADENZE,DATA,0
 FORMAT "1442-"
END

NUMBER 144 12 
BEGIN
 KEY "importo scadenza 1"
 PROMPT  12 15 ""
 MESSAGE _SCADENZE,IMPORTO,1
 PICTURE "###.###.###"
 GROUP 31
END

DATA 145 8 
BEGIN
 KEY "scadenza pagamento 2"
 PROMPT  26 15 ""
 MESSAGE _SCADENZE,DATA,0
 FORMAT "1442-"
END

NUMBER 146 12
BEGIN
 KEY "importo scadenza 2"
 PROMPT  36 15 ""
 MESSAGE _SCADENZE,IMPORTO,1
 PICTURE "###.###.###"
 GROUP 31
END
        
DATA 147 8 1
BEGIN
 KEY "scadenza pagamento 3"
 PROMPT  2 16 ""
 MESSAGE _SCADENZE,DATA,0
 FORMAT "1442-"
END

NUMBER 148 12 
BEGIN
 KEY "importo scadenza 3"
 PROMPT  12 16 ""
 MESSAGE _SCADENZE,IMPORTO,1
 PICTURE "###.###.###"
 GROUP 31
END

DATA 149 8 1
BEGIN
 KEY "scadenza pagamento 4"
 PROMPT  26 16 ""
 MESSAGE _SCADENZE,DATA,0
 FORMAT "1442-"
END

NUMBER 150 12 
BEGIN
 KEY "importo scadenza 4"
 PROMPT  36 16 ""
 MESSAGE _SCADENZE,IMPORTO,1
 PICTURE "###.###.###"
 GROUP 31
END

DATA 151 8 1
BEGIN
 KEY "scadenza pagamento 5"
 PROMPT  2 17 ""
 MESSAGE _SCADENZE,DATA,0
 FORMAT "1442-"
END

NUMBER 152 12 
BEGIN
 KEY "importo scadenza 5"
 PROMPT  12 17 ""
 MESSAGE _SCADENZE,IMPORTO,1
 PICTURE "###.###.###"
 GROUP 31
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
//         !CAP     Codice Avviamento Postale (viene implementato un messaggio perche' sugli occasionali ha un nome campo diverso!!)
//         !IND     indirizzo
//         !NUM     numero civico
//         !INDNUM  indirizzo + numero civico
//         !INDSPED indirizzo spedizione + numero civico
//         !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)
//         !COM-><FIELD>  accede ai campi del comune di residenza cliente
//         !COMN-><FIELD> accede ai campi del comune di nascita del cliente
//    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