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 USE 33
// Manca il campo "causale" nella section footer JOIN 34 INTO CODNUM==CODNUM ANNO==ANNO PROVV==PROVV NDOC==NDOC
// 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
JOIN 17 TO 33 INTO TIPOCF==TIPOCF CODCF==CODCF JOIN 17 TO 33 INTO TIPOCF==TIPOCF CODCF==CODCF
JOIN 20 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 33 INTO TIPOCF==TIPOCF CODCF==CODCF CODIND==CODINDSP
@ -157,141 +106,141 @@ BEGIN
MESSAGE _DITTA, !REGSOC MESSAGE _DITTA, !REGSOC
END END
NUMERO 12 30 1 NUMERO 10 30 1
BEGIN BEGIN
KEY "c.c.i.a.a. 143011" KEY "c.c.i.a.a. 143011"
PROMPT 5 7 "C.C.I.A.A. " PROMPT 5 7 "C.C.I.A.A. "
MESSAGE _DITTA, !CCIAA MESSAGE _DITTA, !CCIAA
END END
STRINGA 14 36 2 STRINGA 11 36 2
BEGIN BEGIN
KEY "destinatario, ditta" KEY "destinatario, ditta"
PROMPT 44 10 "" PROMPT 44 10 ""
MESSAGE _CLIENTE,!RAGSOC MESSAGE _CLIENTE,!RAGSOC
END END
STRINGA 15 36 2 STRINGA 12 36 2
BEGIN BEGIN
KEY "destinatario, indirizzo" KEY "destinatario, indirizzo"
PROMPT 44 12 "" PROMPT 44 12 ""
MESSAGE _CLIENTE,!INDNUM MESSAGE _CLIENTE,!INDNUM
END END
STRINGA 16 5 1 STRINGA 13 5 1
BEGIN BEGIN
KEY "destinatario, cap" KEY "destinatario, cap"
PROMPT 44 14 "" PROMPT 44 14 ""
MESSAGE _CLIENTE,!CAP MESSAGE _CLIENTE,!CAP
END END
STRINGA 17 30 2 STRINGA 14 30 2
BEGIN BEGIN
KEY "destinatario, comune" KEY "destinatario, comune"
PROMPT 50 14 "" PROMPT 50 14 ""
MESSAGE _CLIENTE,!COM MESSAGE _CLIENTE,!COM
END END
STRINGA 18 2 1 STRINGA 15 2 1
BEGIN BEGIN
KEY "destinatario, provincia" KEY "destinatario, provincia"
PROMPT 77 15 "" PROMPT 77 15 ""
MESSAGE _CLIENTE,!PROV MESSAGE _CLIENTE,!PROV
END END
STRINGA 19 10 1 STRINGA 16 10 1
BEGIN BEGIN
KEY "data bolla" KEY "data bolla"
PROMPT 58 19 "" PROMPT 58 19 ""
FIELD 33->DATADOC FIELD DATADOC
END END
STRINGA 20 7 STRINGA 17 7
BEGIN BEGIN
KEY "numero bolla" KEY "numero bolla"
PROMPT 67 19 "" PROMPT 67 19 ""
FIELD 33->NDOC FIELD 33->NDOC
END END
STRINGA 21 30 1 STRINGA 18 30 1
BEGIN BEGIN
KEY "destinazione, indirizzo" KEY "destinazione, indirizzo"
PROMPT 1 10 "" PROMPT 1 10 ""
FIELD 16->INDIR FIELD 16->INDIR
END END
STRINGA 84 30 1 STRINGA 19 30 1
BEGIN BEGIN
KEY "destinazione, cap" KEY "destinazione, cap"
PROMPT 1 12 "" PROMPT 1 12 ""
FIELD 16->CAP FIELD 16->CAP
END END
STRINGA 85 50 1 STRINGA 20 50 1
BEGIN BEGIN
FLAGS "H" FLAGS "H"
PROMPT 1 1 "" PROMPT 1 1 ""
FIELD 16->COM FIELD 16->COM
END END
STRINGA 86 30 1 STRINGA 21 30 1
BEGIN BEGIN
KEY "destinazione, comune" KEY "destinazione, comune"
PROMPT 1 14 "" PROMPT 1 14 ""
MESSAGE _ISAMREAD,13,COM=#49,DENCOM MESSAGE _ISAMREAD,13,COM=#20,DENCOM
END END
STRINGA 87 2 1 STRINGA 22 2 1
BEGIN BEGIN
KEY "destinazione, provincia" KEY "destinazione, provincia"
PROMPT 31 14 "" PROMPT 31 14 ""
MESSAGE _ISAMREAD,13,COM=#49,PROVCOM MESSAGE _ISAMREAD,13,COM=#20,PROVCOM
END END
STRINGA 22 26 1 STRINGA 23 26 1
BEGIN BEGIN
KEY "ordine" KEY "ordine"
PROMPT 1 19 "" PROMPT 1 19 ""
FIELD 33->NUMDOCRIF FIELD NUMDOCRIF
END END
DATA 23 10 DATA 24 10
BEGIN BEGIN
KEY "data conferma" KEY "data conferma"
PROMPT 28 19 "" PROMPT 28 19 ""
FIELD 33->DATADOCRIF FIELD DATADOCRIF
FORMAT "1444-" FORMAT "1444-"
END END
STRINGA 24 48 1 STRINGA 25 48 1
BEGIN BEGIN
KEY "condizioni di pagamento" KEY "condizioni di pagamento"
PROMPT 1 21 "" PROMPT 1 21 ""
FIELD 201@->S0 FIELD 201@->S0
END END
STRINGA 25 29 1 STRINGA 26 29 1
BEGIN BEGIN
KEY "banca d'appoggio" KEY "banca d'appoggio"
PROMPT 50 21 "" PROMPT 50 21 ""
FIELD 204@->S0 FIELD 204@->S0
END END
STRINGA 26 8 1 STRINGA 27 8 1
BEGIN BEGIN
KEY "codice cliente" KEY "codice cliente"
PROMPT 5 23 "" PROMPT 5 23 ""
FIELD 33->CODCF FIELD CODCF
END END
STRINGA 27 16 1 STRINGA 28 16 1
BEGIN BEGIN
KEY "partita iva cliente" KEY "partita iva cliente"
PROMPT 16 23 "" PROMPT 16 23 ""
MESSAGE _CLIENTE,!IVA MESSAGE _CLIENTE,!IVA
END END
STRINGA 28 25 1 STRINGA 29 25 1
BEGIN BEGIN
KEY "porto" KEY "porto"
PROMPT 35 23 "" PROMPT 35 23 ""
@ -302,17 +251,17 @@ STRINGA 29 3 1
BEGIN BEGIN
KEY "codice agente" KEY "codice agente"
PROMPT 1 23 "" PROMPT 1 23 ""
FIELD 33->CODAG FIELD CODAG
END END
STRING 88 28 STRING 30 28
BEGIN BEGIN
KEY "nome agente" KEY "nome agente"
PROMPT 5 23 "" PROMPT 5 23 ""
FIELD 202@->S0 FIELD 202@->S0
END END
STRINGA 30 21 1 STRINGA 31 21 1
BEGIN BEGIN
KEY "vettore" KEY "vettore"
PROMPT 59 23 "" PROMPT 59 23 ""
@ -322,100 +271,104 @@ END
SECTION BODY ODD 5 SECTION BODY ODD 5
STRINGA 31 13 1 STRINGA 51 13 1
BEGIN BEGIN
KEY "codice articolo" KEY "codice articolo"
PROMPT 1 1 "" PROMPT 1 1 ""
FIELD 34->CODART FIELD 34->CODART
END END
STRINGA 32 30 4 STRINGA 52 30 4
BEGIN BEGIN
KEY "descrizione articolo" KEY "descrizione articolo"
PROMPT 17 1 "" PROMPT 17 1 ""
MESSAGE _DESCRIGA MESSAGE _DESCRIGA
END END
STRINGA 33 2 STRINGA 53 2
BEGIN BEGIN
KEY "unita' di misura" KEY "unita' di misura"
PROMPT 46 1 "" PROMPT 46 1 ""
FIELD 34->UMQTA FIELD 34->UMQTA
MESSAGE _ALIGN,#32,BOTTOM MESSAGE _ALIGN,#52,BOTTOM
END END
NUMBER 34 10 NUMBER 54 10
BEGIN BEGIN
KEY "quantita'" KEY "quantita'"
PROMPT 49 1 "" PROMPT 49 1 ""
PICTURE "######" PICTURE "######"
GROUP 30 GROUP 30
FIELD 34->QTA FIELD 34->QTA
MESSAGE _ALIGN,#32,BOTTOM MESSAGE _ALIGN,#52,BOTTOM
END END
NUMBER 35 15 NUMBER 55 15
BEGIN BEGIN
KEY "prezzo unitario" KEY "prezzo unitario"
PROMPT 59 1 "" PROMPT 59 1 ""
PICTURE "###.###.###.###" PICTURE "###.###.###.###"
GROUP 29 GROUP 29
FIELD 34->PREZZO FIELD 34->PREZZO
MESSAGE _ALIGN,#32,BOTTOM MESSAGE _ALIGN,#52,BOTTOM
END END
STRINGA 36 20 STRINGA 56 20
BEGIN BEGIN
KEY "sconto" KEY "sconto"
PROMPT 75 1 "" PROMPT 75 1 ""
FIELD 34->SCONTO FIELD 34->SCONTO
MESSAGE _ALIGN,#32,BOTTOM MESSAGE _ALIGN,#52,BOTTOM
END END
NUMBER 37 15 NUMBER 57 15
BEGIN BEGIN
KEY "importo netto" KEY "importo netto"
PROMPT 68 1 "" PROMPT 68 1 ""
FLAGS "H" FLAGS "H"
GROUP 29 GROUP 29
FIELD 34->IMPNN
PICTURE "###.###.###.###" PICTURE "###.###.###.###"
MESSAGE _TOTAL_RIGA,IMPNETTO|_ALIGN,#32,BOTTOM MESSAGE _ALIGN,#52,BOTTOM
END END
STRINGA 38 3 1 STRINGA 58 3 1
BEGIN BEGIN
KEY "iva" KEY "iva"
PROMPT 81 1 "" PROMPT 81 1 ""
FIELD 34->CODIVA FIELD 34->CODIVA
MESSAGE _ALIGN,#32,BOTTOM MESSAGE _ALIGN,#52,BOTTOM
END END
NUMBER 40 15 NUMBER 59 15
BEGIN BEGIN
KEY "prezzo unitario scontato" KEY "prezzo unitario scontato"
PROMPT 68 1 "" PROMPT 68 1 ""
PICTURE "###.###.###.###" PICTURE "###.###.###.###"
GROUP 29 GROUP 29
MESSAGE _TOTAL_RIGA,IMPUNITARIO|_ALIGN,#33,BOTTOM FIELD 34->PREZZONS
MESSAGE _ALIGN,#52,BOTTOM
FLAGS "H" FLAGS "H"
END END
NUMBER 41 15 NUMBER 60 15
BEGIN BEGIN
KEY "provvigione" KEY "provvigione"
PROMPT 68 1 "" PROMPT 68 1 ""
PICTURE "###.###.###.###" PICTURE "###.###.###.###"
MESSAGE _TOTAL_RIGA,PROVVIGIONE|_ALIGN,#33,BOTTOM MESSAGE _ALIGN,#52,BOTTOM
FIELD 34->PROVVR
GROUP 31 GROUP 31
FLAGS "H" FLAGS "H"
END END
NUMBER 42 15 NUMBER 61 15
BEGIN BEGIN
KEY "Imposta" KEY "Imposta"
PROMPT 68 1 "" PROMPT 68 1 ""
PICTURE "###.###.###.###" PICTURE "###.###.###.###"
MESSAGE _TOTAL_RIGA,IMPOSTA|_ALIGN,#33,BOTTOM MESSAGE _ALIGN,#52,BOTTOM
FIELD 34->IMPOSTA
GROUP 31 GROUP 31
FLAGS "H" FLAGS "H"
END END
@ -424,7 +377,7 @@ END
SECTION FOOTER LAST 19 SECTION FOOTER LAST 19
STRINGA 71 5 1 STRINGA 81 5 1
BEGIN BEGIN
KEY "messaggio 'segue' in coda" KEY "messaggio 'segue' in coda"
PROMPT 68 19 "SEGUE" PROMPT 68 19 "SEGUE"
@ -434,7 +387,7 @@ END
SECTION FOOTER ODD 19 SECTION FOOTER ODD 19
NUMBER 39 15 NUMBER 101 15
BEGIN BEGIN
KEY "spese di trasporto" KEY "spese di trasporto"
PROMPT 43 52 "" PROMPT 43 52 ""
@ -443,7 +396,7 @@ BEGIN
GROUP 31 GROUP 31
END END
NUMBER 40 115 NUMBER 102 115
BEGIN BEGIN
KEY "spese di incasso" KEY "spese di incasso"
PROMPT 55 50 "" PROMPT 55 50 ""
@ -452,7 +405,7 @@ BEGIN
GROUP 31 GROUP 31
END END
NUMBER 41 15 NUMBER 103 15
BEGIN BEGIN
KEY "spese bolli" KEY "spese bolli"
PROMPT 55 52 "" PROMPT 55 52 ""
@ -461,257 +414,440 @@ BEGIN
GROUP 31 GROUP 31
END END
STRINGA 42 21 1 STRINGA 104 21 1
BEGIN BEGIN
KEY "descrizione altri 1" KEY "descrizione altri 1"
PROMPT 22 48 "" PROMPT 22 48 ""
END END
STRINGA 43 12 1 STRINGA 105 12 1
BEGIN BEGIN
KEY "imponibile 1" KEY "imponibile 1"
PROMPT 4 48 "" PROMPT 4 48 ""
END END
STRINGA 44 3 1 STRINGA 106 3 1
BEGIN BEGIN
KEY "iva 1" KEY "iva 1"
PROMPT 17 48 "" PROMPT 17 48 ""
END END
STRINGA 45 11 1 STRINGA 107 11 1
BEGIN BEGIN
KEY "imposta 1" KEY "imposta 1"
PROMPT 22 48 "" PROMPT 22 48 ""
END END
STRINGA 46 21 1 STRINGA 108 21 1
BEGIN BEGIN
KEY "descrizione altri 2" KEY "descrizione altri 2"
PROMPT 22 49 "" PROMPT 22 49 ""
END END
STRINGA 47 12 1 STRINGA 109 12 1
BEGIN BEGIN
KEY "imponibile 2" KEY "imponibile 2"
PROMPT 4 49 "" PROMPT 4 49 ""
END END
STRINGA 48 3 1 STRINGA 110 3 1
BEGIN BEGIN
KEY "iva 2" KEY "iva 2"
PROMPT 17 49 "" PROMPT 17 49 ""
END END
STRINGA 49 11 1 STRINGA 111 11 1
BEGIN BEGIN
KEY "imposta 2" KEY "imposta 2"
PROMPT 22 49 "" PROMPT 22 49 ""
END END
STRINGA 50 21 1 STRINGA 112 21 1
BEGIN BEGIN
KEY "descrizione altri 3" KEY "descrizione altri 3"
PROMPT 22 50 "" PROMPT 22 50 ""
END END
STRINGA 51 12 1 STRINGA 113 12 1
BEGIN BEGIN
KEY "imponibile 3" KEY "imponibile 3"
PROMPT 4 50 "" PROMPT 4 50 ""
END END
STRINGA 52 3 1 STRINGA 114 3 1
BEGIN BEGIN
KEY "iva 3" KEY "iva 3"
PROMPT 17 50 "" PROMPT 17 50 ""
END END
STRINGA 53 11 1 STRINGA 115 11 1
BEGIN BEGIN
KEY "imposta 3" KEY "imposta 3"
PROMPT 22 50 "" PROMPT 22 50 ""
END END
STRINGA 54 21 1 STRINGA 116 21 1
BEGIN BEGIN
KEY "descrizione altri 4" KEY "descrizione altri 4"
PROMPT 22 51 "" PROMPT 22 51 ""
END END
STRINGA 55 12 1 STRINGA 117 12 1
BEGIN BEGIN
KEY "imponibile 4" KEY "imponibile 4"
PROMPT 4 51 "" PROMPT 4 51 ""
END END
STRINGA 56 3 1 STRINGA 118 3 1
BEGIN BEGIN
KEY "iva 4" KEY "iva 4"
PROMPT 17 51 "" PROMPT 17 51 ""
END END
STRINGA 57 11 1 STRINGA 119 11 1
BEGIN BEGIN
KEY "imposta 4" KEY "imposta 4"
PROMPT 22 51 "" PROMPT 22 51 ""
END END
STRINGA 58 21 1 STRINGA 120 21 1
BEGIN BEGIN
KEY "descrizione altri 5" KEY "descrizione altri 5"
PROMPT 22 52 "" PROMPT 22 52 ""
END END
STRINGA 59 12 1 STRINGA 121 12 1
BEGIN BEGIN
KEY "imponibile 5" KEY "imponibile 5"
PROMPT 4 52 "" PROMPT 4 52 ""
END END
STRINGA 60 3 1 STRINGA 122 3 1
BEGIN BEGIN
KEY "iva 5" KEY "iva 5"
PROMPT 17 52 "" PROMPT 17 52 ""
END END
STRINGA 61 11 1 STRINGA 123 11 1
BEGIN BEGIN
KEY "imposta 5" KEY "imposta 5"
PROMPT 22 52 "" PROMPT 22 52 ""
END END
STRINGA 62 6 1 STRINGA 124 6 1
BEGIN BEGIN
KEY "stampa totali" KEY "stampa totali"
PROMPT 1 54 "" PROMPT 1 54 ""
END END
STRINGA 63 12 1 STRINGA 125 12 1
BEGIN BEGIN
KEY "totale imponibile" KEY "totale imponibile"
PROMPT 4 54 "" PROMPT 4 54 ""
END END
STRINGA 64 11 1 STRINGA 126 11 1
BEGIN BEGIN
KEY "totale imposta" KEY "totale imposta"
PROMPT 22 54 "" PROMPT 22 54 ""
END END
STRINGA 65 11 1 STRINGA 127 11 1
BEGIN BEGIN
KEY "totale importi netti" KEY "totale importi netti"
PROMPT 68 48 "" PROMPT 68 48 ""
END END
STRINGA 66 11 1 STRINGA 128 11 1
BEGIN BEGIN
KEY "spese di imballo" KEY "spese di imballo"
PROMPT 43 50 "" PROMPT 43 50 ""
END END
STRINGA 67 2 1 STRINGA 129 2 1
BEGIN BEGIN
KEY "cancella 'iva' per sp. tras" KEY "cancella 'iva' per sp. tras"
PROMPT 43 51 "" PROMPT 43 51 ""
END END
STRINGA 68 8 1 STRINGA 130 8 1
BEGIN BEGIN
KEY "scritta spese di trasporto" KEY "scritta spese di trasporto"
PROMPT 45 51 "" PROMPT 45 51 ""
END END
STRINGA 69 11 1 STRINGA 131 11 1
BEGIN BEGIN
KEY "totale imposta" KEY "totale imposta"
PROMPT 68 52 "" PROMPT 68 52 ""
END END
STRINGA 70 11 1 STRINGA 132 11 1
BEGIN BEGIN
KEY "totale fattura" KEY "totale fattura"
PROMPT 68 54 "" PROMPT 68 54 ""
END END
LISTA 72 1 1 LISTA 133 1 1
BEGIN BEGIN
KEY "trasporto a cura del mitt." KEY "trasporto a cura del mitt."
PROMPT 1 57 "" PROMPT 1 57 ""
ITEM "|" // default ITEM "|"
ITEM "M|x" ITEM "M|x"
FIELD 33->CODSPMEZZO FIELD CODSPMEZZO
END END
LISTA 73 1 1 LISTA 134 1 1
BEGIN BEGIN
KEY "trasporto a cura del dest." KEY "trasporto a cura del dest."
PROMPT 7 57 "" PROMPT 7 57 ""
ITEM "|" // default ITEM "|"
ITEM "D|x" ITEM "D|x"
FIELD 33->CODSPMEZZO FIELD CODSPMEZZO
END END
STRINGA 74 1 1 STRINGA 135 1 1
BEGIN BEGIN
KEY "trasporto a cura del vett." KEY "trasporto a cura del vett."
PROMPT 15 57 "" PROMPT 15 57 ""
ITEM "|" // default ITEM "|"
ITEM "V|x" ITEM "V|x"
FIELD 33->CODSPMEZZO FIELD CODSPMEZZO
END END
DATA 75 8 1 DATA 136 8 1
BEGIN BEGIN
KEY "data inizio trasporto" KEY "data inizio trasporto"
PROMPT 45 57 "" PROMPT 45 57 ""
FIELD 33->DATAPART FIELD DATAPART
FORMAT "1444-" FORMAT "1444-"
END END
STRINGA 76 5 1 STRINGA 137 5 1
BEGIN BEGIN
KEY "ora inizio trasporto" KEY "ora inizio trasporto"
PROMPT 57 57 "" PROMPT 57 57 ""
FIELD 33->ORAPART FIELD ORAPART
END END
STRINGA 77 40 1 STRINGA 138 40 1
BEGIN BEGIN
KEY "nominativo vettore" // nell'originale (.gen) c'era: "nominativo vettore 1" KEY "nominativo vettore"
PROMPT 1 59 "" PROMPT 1 59 ""
FIELD 205@->S0 FIELD 205@->S0
END END
STRINGA 78 40 1 STRINGA 139 40 1
BEGIN BEGIN
KEY "indirizzo vettore" // nell'originale (.gen) c'era: "nominativo vettore 2" KEY "indirizzo vettore"
PROMPT 1 60 "" PROMPT 1 60 ""
FIELD 205@->S1 // il campo S1 e' usato per l'indirizzo vettore FIELD 205@->S1
END END
STRINGA 79 41 1 STRINGA 140 41 1
BEGIN BEGIN
KEY "aspetto esteriore dei beni" KEY "aspetto esteriore dei beni"
PROMPT 1 63 "" PROMPT 1 63 ""
FIELD 206@->S0 FIELD 206@->S0
END END
STRINGA 81 12 1 STRINGA 141 12 1
BEGIN BEGIN
KEY "peso" KEY "peso"
PROMPT 44 63 "" PROMPT 44 63 ""
FIELD 33->PNETTO FIELD PNETTO
END END
STRINGA 82 8 1 STRINGA 142 8 1
BEGIN BEGIN
KEY "colli" KEY "colli"
PROMPT 57 63 "" PROMPT 57 63 ""
FIELD 33->NCOLLI FIELD NCOLLI
END END
END 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: USE 33
// Questi vengono letti in G1 sulla testata: JOIN 34 INTO CODNUM==CODNUM ANNO==ANNO PROVV==PROVV NDOC==NDOC
// 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
JOIN 16 TO 33 INTO TIPOCF==TIPOCF CODCF==CODCF CODIND==CODINDSP 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 %CPG TO 33 ALIAS 201 INTO CODTAB==CODPAG
JOIN %AGE TO 33 ALIAS 202 INTO CODTAB==CODAG JOIN %AGE TO 33 ALIAS 202 INTO CODTAB==CODAG
JOIN %POR TO 33 ALIAS 203 INTO CODTAB==CODPORTO JOIN %POR TO 33 ALIAS 203 INTO CODTAB==CODPORTO
@ -61,8 +14,8 @@ JOIN 13 TO 205@ ALIAS 208 INTO COM==S9
END END
DESCRIPTION DESCRIPTION
BEGIN BEGIN
34->* "Righe documenti di vendita"
33->* "Documenti di vendita" 33->* "Documenti di vendita"
34->* "Righe documenti di vendita"
16->* "Indirizzi di spedizione (destinazione)" 16->* "Indirizzi di spedizione (destinazione)"
47->* "Anagrafica magazzino" 47->* "Anagrafica magazzino"
201@->* "Tabella condizioni di pagamento" 201@->* "Tabella condizioni di pagamento"
@ -71,6 +24,8 @@ BEGIN
204@->* "Tabella banche" 204@->* "Tabella banche"
205@->* "Tabella vettori" 205@->* "Tabella vettori"
206@->* "Tabella aspetto beni" 206@->* "Tabella aspetto beni"
207@->* "Tabella causali di trasporto"
208@->* "Comuni"
END END
GENERAL GENERAL
@ -142,42 +97,42 @@ BEGIN
MESSAGE _DITTA,!CF MESSAGE _DITTA,!CF
END END
STRING 14 35 2 STRING 9 35 2
BEGIN BEGIN
KEY "destinatario, ditta" KEY "destinatario, ditta"
PROMPT 44 16 "" PROMPT 44 16 ""
MESSAGE _CLIENTE,!RAGSOC MESSAGE _CLIENTE,!RAGSOC
END END
STRING 15 35 2 STRING 10 35 2
BEGIN BEGIN
KEY "destinatario, indirizzo con numero civico" KEY "destinatario, indirizzo con numero civico"
PROMPT 44 18 "" PROMPT 44 18 ""
MESSAGE _CLIENTE,!INDNUM MESSAGE _CLIENTE,!INDNUM
END END
STRING 16 5 1 STRING 11 5 1
BEGIN BEGIN
KEY "destinatario, cap" KEY "destinatario, cap"
PROMPT 44 20 "" PROMPT 44 20 ""
MESSAGE _CLIENTE,!CAP MESSAGE _CLIENTE,!CAP
END END
STRING 17 30 2 STRING 12 30 2
BEGIN BEGIN
KEY "destinatario, comune" KEY "destinatario, comune"
PROMPT 50 20 "" PROMPT 50 20 ""
MESSAGE _CLIENTE,!COM MESSAGE _CLIENTE,!COM
END END
STRING 18 2 STRING 13 2
BEGIN BEGIN
KEY "destinatario, provincia" KEY "destinatario, provincia"
PROMPT 72 21 "" PROMPT 72 21 ""
MESSAGE _CLIENTE,!PROV MESSAGE _CLIENTE,!PROV
END END
DATE 19 8 1 DATE 14 8 1
BEGIN BEGIN
KEY "data bolla" KEY "data bolla"
PROMPT 60 25 "" PROMPT 60 25 ""
@ -185,28 +140,28 @@ BEGIN
FORMAT "1442-" FORMAT "1442-"
END END
NUMBER 20 7 NUMBER 15 7
BEGIN BEGIN
KEY "numero bolla" KEY "numero bolla"
PROMPT 71 25 "" PROMPT 71 25 ""
FIELD 33->NDOC FIELD NDOC
END END
STRING 21 30 2 STRING 16 30 2
BEGIN BEGIN
KEY "destinazione, indirizzo" KEY "destinazione, indirizzo"
PROMPT 5 16 "" PROMPT 5 16 ""
FIELD 16->INDIR FIELD 16->INDIR
END END
STRING 32 5 1 STRING 17 5 1
BEGIN BEGIN
KEY "destinazione, cap" KEY "destinazione, cap"
PROMPT 5 18 "" PROMPT 5 18 ""
FIELD 16->CAP FIELD 16->CAP
END END
STRING 49 5 1 STRING 18 5 1
BEGIN BEGIN
KEY "" KEY ""
PROMPT 1 1 "" PROMPT 1 1 ""
@ -214,78 +169,78 @@ BEGIN
FIELD 16->COM FIELD 16->COM
END END
STRING 33 21 STRING 19 21
BEGIN BEGIN
KEY "destinazione, comune" KEY "destinazione, comune"
PROMPT 5 20 "" PROMPT 5 20 ""
MESSAGE _ISAMREAD,13,COM=#49,DENCOM MESSAGE _ISAMREAD,13,COM=#18,DENCOM
END END
STRING 34 2 1 STRING 20 2 1
BEGIN BEGIN
KEY "destinazione, provincia" KEY "destinazione, provincia"
PROMPT 28 20 "" PROMPT 28 20 ""
MESSAGE _ISAMREAD,13,COM=#49,PROVCOM MESSAGE _ISAMREAD,13,COM=#18,PROVCOM
END END
NUMBER 22 NUMBER 21
BEGIN BEGIN
KEY "ordine" KEY "ordine"
PROMPT 3 25 "" PROMPT 3 25 ""
FIELD 33->NUMDOCRIF FIELD NUMDOCRIF
END END
DATE 23 10 DATE 22 10
BEGIN BEGIN
KEY "data conferma" KEY "data conferma"
PROMPT 16 25 "" PROMPT 16 25 ""
FIELD 33->DATADOCRIF FIELD DATADOCRIF
FORMAT "1444-" FORMAT "1444-"
END END
STRING 24 48 1 STRING 23 48 1
BEGIN BEGIN
KEY "condizioni pagamento" KEY "condizioni pagamento"
PROMPT 3 27 "" PROMPT 3 27 ""
FIELD 201@->S0 FIELD 201@->S0
END END
STRING 25 29 1 STRING 24 29 1
BEGIN BEGIN
KEY "banca appoggio" KEY "banca appoggio"
PROMPT 53 27 "" PROMPT 53 27 ""
FIELD 204@->S0 FIELD 204@->S0
END END
STRING 26 7 1 STRING 25 7 1
BEGIN BEGIN
KEY "codice cliente" KEY "codice cliente"
PROMPT 3 29 "" PROMPT 3 29 ""
FIELD 33->CODCF FIELD CODCF
END END
STRING 27 11 1 STRING 26 11 1
BEGIN BEGIN
KEY "partita iva cliente" KEY "partita iva cliente"
PROMPT 12 29 "" PROMPT 12 29 ""
MESSAGE _CLIENTE,!IVA MESSAGE _CLIENTE,!IVA
END END
STRING 28 18 1 STRING 27 18 1
BEGIN BEGIN
KEY "porto" KEY "porto"
PROMPT 41 25 "" PROMPT 41 25 ""
FIELD 203@->S0 FIELD 203@->S0
END END
NUMBER 29 NUMBER 28
BEGIN BEGIN
KEY "codice agente" KEY "codice agente"
PROMPT 29 29 "" PROMPT 29 29 ""
FIELD 33->CODAG FIELD CODAG
END END
STRING 30 28 1 STRING 29 28 1
BEGIN BEGIN
KEY "nome agente" KEY "nome agente"
PROMPT 33 29 "" PROMPT 33 29 ""
@ -296,52 +251,52 @@ END
SECTION BODY ODD 5 SECTION BODY ODD 5
STRING 32 13 1 STRING 51 13 1
BEGIN BEGIN
KEY "codice articolo" KEY "codice articolo"
PROMPT 5 1 "" PROMPT 5 1 ""
FIELD 34->CODART FIELD 34->CODART
END END
STRING 33 25 4 STRING 52 25 4
BEGIN BEGIN
KEY "descrizione articolo" KEY "descrizione articolo"
PROMPT 25 1 "" PROMPT 25 1 ""
MESSAGE _DESCRIGA MESSAGE _DESCRIGA
END END
STRING 34 2 STRING 53 2
BEGIN BEGIN
KEY "unità di misura" KEY "unità di misura"
PROMPT 56 1 "" PROMPT 56 1 ""
FIELD 34->UMQTA FIELD 34->UMQTA
MESSAGE _ALIGN,#33,BOTTOM MESSAGE _ALIGN,#52,BOTTOM
END END
NUMBER 35 10 NUMBER 54 10
BEGIN BEGIN
KEY "quantita" KEY "quantita"
PROMPT 60 1 "" PROMPT 60 1 ""
PICTURE "######" PICTURE "######"
GROUP 30 GROUP 30
FIELD 34->QTA FIELD 34->QTA
MESSAGE _ALIGN,#33,BOTTOM MESSAGE _ALIGN,#52,BOTTOM
END END
NUMBER 36 20 NUMBER 55 20
BEGIN BEGIN
KEY "quantita' lettere" KEY "quantita' lettere"
PROMPT 72 1 "" PROMPT 72 1 ""
FIELD 34->QTA FIELD 34->QTA
PICTURE "LETTERE" PICTURE "LETTERE"
MESSAGE _ALIGN,#33,BOTTOM MESSAGE _ALIGN,#52,BOTTOM
END END
END END
SECTION FOOTER ODD 9 SECTION FOOTER ODD 9
STRING 47 5 1 STRING 81 5 1
BEGIN BEGIN
KEY "scritta SEGUE" KEY "scritta SEGUE"
PROMPT 72 9 "SEGUE" PROMPT 72 9 "SEGUE"
@ -351,54 +306,54 @@ END
SECTION FOOTER LAST 9 SECTION FOOTER LAST 9
LIST 37 1 1 LIST 101 1 1
BEGIN BEGIN
KEY "trasporto a cura del mittente" KEY "trasporto a cura del mittente"
PROMPT 4 1 "" PROMPT 4 1 ""
FIELD 33->CODSPMEZZO FIELD CODSPMEZZO
ITEM "|" MESSAGE DISABLE,6@|ENABLE,5@ ITEM "|" MESSAGE DISABLE,6@|ENABLE,5@
ITEM "D| " ITEM "D| "
ITEM "M|X" MESSAGE DISABLE,6@|ENABLE,5@ ITEM "M|X" MESSAGE DISABLE,6@|ENABLE,5@
ITEM "V| " ITEM "V| "
END END
LIST 38 1 1 LIST 102 1 1
BEGIN BEGIN
KEY "trasporto a cura del destinatario" KEY "trasporto a cura del destinatario"
PROMPT 13 1 "" PROMPT 13 1 ""
FIELD 33->CODSPMEZZO FIELD CODSPMEZZO
ITEM "|" MESSAGE DISABLE,6@|ENABLE,5@ ITEM "|" MESSAGE DISABLE,6@|ENABLE,5@
ITEM "D|X" MESSAGE DISABLE,6@|ENABLE,5@ ITEM "D|X" MESSAGE DISABLE,6@|ENABLE,5@
ITEM "M| " ITEM "M| "
ITEM "V| " ITEM "V| "
END END
LIST 39 1 1 LIST 103 1 1
BEGIN BEGIN
KEY "trasporto a cura del vettore" KEY "trasporto a cura del vettore"
PROMPT 23 1 "" PROMPT 23 1 ""
FIELD 33->CODSPMEZZO FIELD CODSPMEZZO
ITEM "|" ITEM "|"
ITEM "D| " ITEM "D| "
ITEM "M| " ITEM "M| "
ITEM "V|X" MESSAGE DISABLE,5@|ENABLE,6@ ITEM "V|X" MESSAGE DISABLE,5@|ENABLE,6@
END END
STRING 40 45 1 STRING 104 45 1
BEGIN BEGIN
KEY "nome vettore" KEY "nome vettore"
PROMPT 3 4 "" PROMPT 3 4 ""
FIELD 205@->S0 FIELD 205@->S0
END END
STRING 41 45 1 STRING 105 45 1
BEGIN BEGIN
KEY "indirizzo vettore" KEY "indirizzo vettore"
PROMPT 3 6 "" PROMPT 3 6 ""
FIELD 205@->S1[1,35] FIELD 205@->S1[1,35]
END END
STRING 51 10 1 STRING 106 10 1
BEGIN BEGIN
KEY "n civico vettore" KEY "n civico vettore"
PROMPT 30 6 "" PROMPT 30 6 ""
@ -406,7 +361,7 @@ BEGIN
FLAGS "D" FLAGS "D"
END END
STRING 52 25 1 STRING 107 25 1
BEGIN BEGIN
KEY "localita' vettore" KEY "localita' vettore"
PROMPT 50 6 "" PROMPT 50 6 ""
@ -414,7 +369,7 @@ BEGIN
FLAGS "D" FLAGS "D"
END END
STRING 53 25 1 STRING 108 25 1
BEGIN BEGIN
KEY "comune vettore" KEY "comune vettore"
PROMPT 75 6 "" PROMPT 75 6 ""
@ -422,60 +377,64 @@ BEGIN
FLAGS "D" FLAGS "D"
END END
DATE 42 8 1 DATE 109 8 1
BEGIN BEGIN
KEY "data inizio trasporto/consegna" KEY "data inizio trasporto/consegna"
PROMPT 51 3 "" PROMPT 51 3 ""
FIELD 33->DATAPART FIELD DATAPART
FORMAT "1442-" FORMAT "1442-"
GROUP 5
END END
STRING 43 5 1 STRING 110 5 1
BEGIN BEGIN
KEY "ora inizio trasporto/consegna" KEY "ora inizio trasporto/consegna"
PROMPT 60 3 "" PROMPT 60 3 ""
PICTURE "## ##" PICTURE "## ##"
FIELD 33->ORAPART FIELD ORAPART
GROUP 5
END END
DATE 44 8 1 DATE 111 8 1
BEGIN BEGIN
KEY "data ritiro da parte del vettore" KEY "data ritiro da parte del vettore"
PROMPT 51 3 "" PROMPT 51 3 ""
FIELD 33->DATAPART FIELD DATAPART
GROUP 6
FORMAT "1442-" FORMAT "1442-"
END END
STRING 45 5 1 STRING 112 5 1
BEGIN BEGIN
KEY "ora ritiro da parte del vettore" KEY "ora ritiro da parte del vettore"
PROMPT 60 3 "" PROMPT 60 3 ""
PICTURE "## ##" PICTURE "## ##"
FIELD 33->ORAPART FIELD ORAPART
GROUP 6
END END
STRING 46 27 1 STRING 113 27 1
BEGIN BEGIN
KEY "aspetto beni" KEY "aspetto beni"
PROMPT 37 1 "" PROMPT 37 1 ""
FIELD 206@->S0 FIELD 206@->S0
END END
STRING 48 7 1 STRING 114 7 1
BEGIN BEGIN
KEY "peso" KEY "peso"
PROMPT 73 1 "" PROMPT 73 1 ""
FIELD 33->PNETTO FIELD PNETTO
END END
STRING 49 5 1 STRING 115 5 1
BEGIN BEGIN
KEY "colli" KEY "colli"
PROMPT 66 1 "" PROMPT 66 1 ""
FIELD 33->NCOLLI FIELD NCOLLI
END END
STRING 50 15 STRING 116 15
BEGIN BEGIN
KEY "causale di trasporto" KEY "causale di trasporto"
PROMPT 25 4 "" PROMPT 25 4 ""
@ -486,3 +445,186 @@ END
END 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: USE 33
// Questi vengono letti in G1 sulla testata: JOIN 34 INTO CODNUM==CODNUM ANNO==ANNO PROVV==PROVV NDOC==NDOC
// 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
JOIN 16 TO 33 INTO TIPOCF==TIPOCF CODCF==CODCF CODIND==CODINDSP JOIN 16 TO 33 INTO TIPOCF==TIPOCF CODCF==CODCF CODIND==CODINDSP
JOIN 47 INTO CODART==CODART JOIN 47 INTO CODART==CODART
JOIN %CPG TO 33 ALIAS 201 INTO CODTAB==CODPAG JOIN %CPG TO 33 ALIAS 201 INTO CODTAB==CODPAG
@ -61,8 +13,8 @@ JOIN %CTR TO 33 ALIAS 207 INTO CODTAB==CAUSTRASP
END END
DESCRIPTION DESCRIPTION
BEGIN BEGIN
34->* "Righe documenti di vendita"
33->* "Documenti di vendita" 33->* "Documenti di vendita"
34->* "Righe documenti di vendita"
16->* "Indirizzi di spedizione (destinazione)" 16->* "Indirizzi di spedizione (destinazione)"
47->* "Anagrafica magazzino" 47->* "Anagrafica magazzino"
201@->* "Tabella condizioni di pagamento" 201@->* "Tabella condizioni di pagamento"
@ -71,6 +23,7 @@ BEGIN
204@->* "Tabella banche" 204@->* "Tabella banche"
205@->* "Tabella vettori" 205@->* "Tabella vettori"
206@->* "Tabella aspetto beni" 206@->* "Tabella aspetto beni"
207@->* "Tabella causali di trasporto"
END END
GENERAL GENERAL
@ -151,42 +104,42 @@ BEGIN
MESSAGE _DITTA,!CF MESSAGE _DITTA,!CF
END END
STRING 14 35 2 STRING 9 35 2
BEGIN BEGIN
KEY "destinatario, ditta" KEY "destinatario, ditta"
PROMPT 44 14 "" PROMPT 44 14 ""
MESSAGE _CLIENTE,!RAGSOC MESSAGE _CLIENTE,!RAGSOC
END END
STRING 15 35 2 STRING 10 35 2
BEGIN BEGIN
KEY "destinatario, indirizzo con numero civico" KEY "destinatario, indirizzo con numero civico"
PROMPT 44 16 "" PROMPT 44 16 ""
MESSAGE _CLIENTE,!INDNUM MESSAGE _CLIENTE,!INDNUM
END END
STRING 16 5 1 STRING 11 5 1
BEGIN BEGIN
KEY "destinatario, cap" KEY "destinatario, cap"
PROMPT 44 18 "" PROMPT 44 18 ""
MESSAGE _CLIENTE,!CAP MESSAGE _CLIENTE,!CAP
END END
STRING 17 30 2 STRING 12 30 2
BEGIN BEGIN
KEY "destinatario, comune" KEY "destinatario, comune"
PROMPT 50 18 "" PROMPT 50 18 ""
MESSAGE _CLIENTE,!COM MESSAGE _CLIENTE,!COM
END END
STRING 18 2 STRING 13 2
BEGIN BEGIN
KEY "destinatario, provincia" KEY "destinatario, provincia"
PROMPT 72 19 "" PROMPT 72 19 ""
MESSAGE _CLIENTE,!PROV MESSAGE _CLIENTE,!PROV
END END
DATE 19 8 1 DATE 14 8 1
BEGIN BEGIN
KEY "data bolla" KEY "data bolla"
PROMPT 60 21 "" PROMPT 60 21 ""
@ -194,28 +147,28 @@ BEGIN
FORMAT "1442-" FORMAT "1442-"
END END
NUMBER 20 7 NUMBER 15 7
BEGIN BEGIN
KEY "numero bolla" KEY "numero bolla"
PROMPT 71 21 "" PROMPT 71 21 ""
FIELD 33->NDOC FIELD NDOC
END END
STRING 21 30 2 STRING 16 30 2
BEGIN BEGIN
KEY "destinazione, indirizzo" KEY "destinazione, indirizzo"
PROMPT 5 14 "" PROMPT 5 14 ""
FIELD 16->INDIR FIELD 16->INDIR
END END
STRING 32 5 1 STRING 17 5 1
BEGIN BEGIN
KEY "destinazione, cap" KEY "destinazione, cap"
PROMPT 5 16 "" PROMPT 5 16 ""
FIELD 16->CAP FIELD 16->CAP
END END
STRING 49 5 1 STRING 18 5 1
BEGIN BEGIN
KEY "" KEY ""
PROMPT 1 1 "" PROMPT 1 1 ""
@ -223,64 +176,64 @@ BEGIN
FIELD 16->COM FIELD 16->COM
END END
STRING 33 21 STRING 19 21
BEGIN BEGIN
KEY "destinazione, comune" KEY "destinazione, comune"
PROMPT 5 18 "" PROMPT 5 18 ""
MESSAGE _ISAMREAD,13,COM=#49,DENCOM MESSAGE _ISAMREAD,13,COM=#18,DENCOM
END END
STRING 34 2 1 STRING 20 2 1
BEGIN BEGIN
KEY "destinazione, provincia" KEY "destinazione, provincia"
PROMPT 28 18 "" PROMPT 28 18 ""
MESSAGE _ISAMREAD,13,COM=#49,PROVCOM MESSAGE _ISAMREAD,13,COM=#18,PROVCOM
END END
NUMBER 22 NUMBER 21
BEGIN BEGIN
KEY "ordine" KEY "ordine"
PROMPT 3 21 "" PROMPT 3 21 ""
FIELD 33->NUMDOCRIF FIELD NUMDOCRIF
END END
DATE 23 8 1 DATE 22 8 1
BEGIN BEGIN
KEY "data conferma" KEY "data conferma"
PROMPT 43 21 "" PROMPT 43 21 ""
FIELD 33->DATADOCRIF FIELD DATADOCRIF
FORMAT "1442-" FORMAT "1442-"
END END
STRING 24 48 1 STRING 23 48 1
BEGIN BEGIN
KEY "condizioni pagamento" KEY "condizioni pagamento"
PROMPT 3 23 "" PROMPT 3 23 ""
FIELD 201@->S0 FIELD 201@->S0
END END
STRING 25 29 1 STRING 24 29 1
BEGIN BEGIN
KEY "banca appoggio" KEY "banca appoggio"
PROMPT 53 23 "" PROMPT 53 23 ""
FIELD 204@->S0 FIELD 204@->S0
END END
STRING 26 7 1 STRING 25 7 1
BEGIN BEGIN
KEY "codice cliente" KEY "codice cliente"
PROMPT 8 25 "" PROMPT 8 25 ""
FIELD 33->CODCF FIELD CODCF
END END
STRING 27 11 1 STRING 26 11 1
BEGIN BEGIN
KEY "partita iva cliente" KEY "partita iva cliente"
PROMPT 18 25 "" PROMPT 18 25 ""
MESSAGE _CLIENTE,!IVA MESSAGE _CLIENTE,!IVA
END END
STRING 28 18 1 STRING 27 18 1
BEGIN BEGIN
KEY "porto" KEY "porto"
PROMPT 41 25 "" PROMPT 41 25 ""
@ -288,14 +241,14 @@ BEGIN
FLAGS "D" FLAGS "D"
END END
NUMBER 29 NUMBER 28
BEGIN BEGIN
KEY "codice agente" KEY "codice agente"
PROMPT 2 25 "" PROMPT 2 25 ""
FIELD 33->CODAG FIELD CODAG
END END
STRING 30 28 1 STRING 29 28 1
BEGIN BEGIN
KEY "nome agente" KEY "nome agente"
PROMPT 33 29 "" PROMPT 33 29 ""
@ -307,45 +260,45 @@ END
SECTION BODY ODD 5 SECTION BODY ODD 5
STRING 32 13 1 STRING 51 13 1
BEGIN BEGIN
KEY "codice articolo" KEY "codice articolo"
PROMPT 5 1 "" PROMPT 5 1 ""
FIELD 34->CODART FIELD 34->CODART
END END
STRING 33 29 4 STRING 52 29 4
BEGIN BEGIN
KEY "descrizione articolo" KEY "descrizione articolo"
PROMPT 48 1 "" PROMPT 48 1 ""
MESSAGE _DESCRIGA MESSAGE _DESCRIGA
END END
STRING 34 2 STRING 53 2
BEGIN BEGIN
KEY "unità di misura" KEY "unità di misura"
PROMPT 30 1 "" PROMPT 30 1 ""
FIELD 34->UMQTA FIELD 34->UMQTA
MESSAGE _ALIGN,#33,TOP MESSAGE _ALIGN,#52,TOP
END END
NUMBER 35 10 NUMBER 54 10
BEGIN BEGIN
KEY "quantita" KEY "quantita"
PROMPT 17 1 "" PROMPT 17 1 ""
PICTURE "######" PICTURE "######"
GROUP 30 GROUP 30
FIELD 34->QTA FIELD 34->QTA
MESSAGE _ALIGN,#33,TOP MESSAGE _ALIGN,#52,TOP
END END
NUMBER 36 20 NUMBER 55 20
BEGIN BEGIN
KEY "quantita' lettere" KEY "quantita' lettere"
PROMPT 72 1 "" PROMPT 72 1 ""
FIELD 34->QTA FIELD 34->QTA
PICTURE "LETTERE" PICTURE "LETTERE"
MESSAGE _ALIGN,#33,BOTTOM MESSAGE _ALIGN,#52,BOTTOM
FLAGS "D" FLAGS "D"
END END
@ -353,7 +306,7 @@ END
SECTION FOOTER ODD 15 SECTION FOOTER ODD 15
STRING 47 5 STRING 81 5
BEGIN BEGIN
KEY "scritta SEGUE" KEY "scritta SEGUE"
PROMPT 72 13 "SEGUE" PROMPT 72 13 "SEGUE"
@ -363,113 +316,113 @@ END
SECTION FOOTER LAST 15 SECTION FOOTER LAST 15
LIST 37 1 1 LIST 101 1 1
BEGIN BEGIN
KEY "trasporto a cura del mittente" KEY "trasporto a cura del mittente"
PROMPT 2 4 "" PROMPT 2 4 ""
FIELD 33->CODSPMEZZO FIELD CODSPMEZZO
ITEM "|" MESSAGE DISABLE,6@|ENABLE,5@ ITEM "|" MESSAGE DISABLE,6@|ENABLE,5@
ITEM "D| " ITEM "D| "
ITEM "M|X" MESSAGE DISABLE,6@|ENABLE,5@ ITEM "M|X" MESSAGE DISABLE,6@|ENABLE,5@
ITEM "V| " ITEM "V| "
END END
LIST 38 1 1 LIST 102 1 1
BEGIN BEGIN
KEY "trasporto a cura del destinatario" KEY "trasporto a cura del destinatario"
PROMPT 9 4 "" PROMPT 9 4 ""
FIELD 33->CODSPMEZZO FIELD CODSPMEZZO
ITEM "|" MESSAGE DISABLE,6@|ENABLE,5@ ITEM "|" MESSAGE DISABLE,6@|ENABLE,5@
ITEM "D|X" MESSAGE DISABLE,6@|ENABLE,5@ ITEM "D|X" MESSAGE DISABLE,6@|ENABLE,5@
ITEM "M| " ITEM "M| "
ITEM "V| " ITEM "V| "
END END
LIST 39 1 1 LIST 103 1 1
BEGIN BEGIN
KEY "trasporto a cura del vettore" KEY "trasporto a cura del vettore"
PROMPT 17 4 "" PROMPT 17 4 ""
FIELD 33->CODSPMEZZO FIELD CODSPMEZZO
ITEM "|" // default ITEM "|" // default
ITEM "D| " ITEM "D| "
ITEM "M| " ITEM "M| "
ITEM "V|X" MESSAGE DISABLE,5@|ENABLE,6@ ITEM "V|X" MESSAGE DISABLE,5@|ENABLE,6@
END END
STRING 40 45 1 STRING 104 45 1
BEGIN BEGIN
KEY "nome vettore" KEY "nome vettore"
PROMPT 3 6 "" PROMPT 3 6 ""
FIELD 205@->S0 FIELD 205@->S0
END END
STRING 41 45 1 STRING 105 45 1
BEGIN BEGIN
KEY "indirizzo vettore" KEY "indirizzo vettore"
PROMPT 3 8 "" PROMPT 3 8 ""
FIELD 205@->S1 FIELD 205@->S1
END END
DATE 42 8 1 DATE 106 8 1
BEGIN BEGIN
KEY "data inizio trasporto/consegna" KEY "data inizio trasporto/consegna"
PROMPT 48 4 "" PROMPT 48 4 ""
FIELD 33->DATAPART FIELD DATAPART
FORMAT "1442-" FORMAT "1442-"
GROUP 5 GROUP 5
END END
STRING 43 5 1 STRING 107 5 1
BEGIN BEGIN
KEY "ora inizio trasporto/consegna" KEY "ora inizio trasporto/consegna"
PROMPT 60 4 "" PROMPT 60 4 ""
PICTURE "## ##" PICTURE "## ##"
FIELD 33->ORAPART FIELD ORAPART
GROUP 5 GROUP 5
END END
DATE 44 8 1 DATE 108 8 1
BEGIN BEGIN
KEY "data ritiro" KEY "data ritiro"
PROMPT 51 7 "" PROMPT 51 7 ""
FIELD 33->DATAPART FIELD DATAPART
FORMAT "1442-" FORMAT "1442-"
FLAGS "D" FLAGS "D"
GROUP 6 GROUP 6
END END
STRING 45 5 1 STRING 109 5 1
BEGIN BEGIN
KEY "ora ritiro" KEY "ora ritiro"
PROMPT 60 7 "" PROMPT 60 7 ""
PICTURE "## ##" PICTURE "## ##"
FIELD 33->ORAPART FIELD ORAPART
FLAGS "D" FLAGS "D"
GROUP 6 GROUP 6
END END
STRING 46 27 1 STRING 110 27 1
BEGIN BEGIN
KEY "aspetto beni" KEY "aspetto beni"
PROMPT 1 8 "" PROMPT 1 8 ""
FIELD 206@->S0 FIELD 206@->S0
END END
STRING 48 7 1 STRING 111 7 1
BEGIN BEGIN
KEY "peso" KEY "peso"
PROMPT 45 10 "" PROMPT 45 10 ""
FIELD 33->PNETTO FIELD PNETTO
END END
STRING 49 5 1 STRING 112 5 1
BEGIN BEGIN
KEY "colli" KEY "colli"
PROMPT 60 10 "" PROMPT 60 10 ""
FIELD 33->NCOLLI FIELD NCOLLI
END END
STRING 50 15 STRING 113 15
BEGIN BEGIN
KEY "causale" KEY "causale"
PROMPT 25 4 "" PROMPT 25 4 ""
@ -479,3 +432,185 @@ END
END 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: USE 33
// Questi vengono letti in G1 sulla testata: JOIN 34 INTO CODNUM==CODNUM ANNO==ANNO PROVV==PROVV NDOC==NDOC
// 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
JOIN 17 TO 33 INTO TIPOCF==TIPOCF CODCF==CODCF JOIN 17 TO 33 INTO TIPOCF==TIPOCF CODCF==CODCF
JOIN 20 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 33 INTO TIPOCF==TIPOCF CODCF==CODCF CODIND==CODINDSP
JOIN 16 TO 17 ALIAS 116 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 %CPG TO 33 ALIAS 201 INTO CODTAB==CODPAG
JOIN %AGE TO 33 ALIAS 202 INTO CODTAB==CODAG JOIN %AGE TO 33 ALIAS 202 INTO CODTAB==CODAG
JOIN %POR TO 33 ALIAS 203 INTO CODTAB==CODPORTO 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 JOIN %ASP TO 33 ALIAS 206 INTO CODTAB==ASPBENI1
END END
DESCRIPTION DESCRIPTION
BEGIN BEGIN
34->* "Righe documenti di vendita" 34->* "Righe documenti di vendita"
@ -152,56 +107,56 @@ BEGIN
MESSAGE _DITTA, !REGSOC MESSAGE _DITTA, !REGSOC
END END
NUMERO 12 30 1 NUMERO 10 30 1
BEGIN BEGIN
KEY "c.c.i.a.a. ....." KEY "c.c.i.a.a. ....."
PROMPT 3 10 "C.C.I.A.A. " PROMPT 3 10 "C.C.I.A.A. "
MESSAGE _DITTA, !CCIAA MESSAGE _DITTA, !CCIAA
END END
STRINGA 14 10 1 STRINGA 11 10 1
BEGIN BEGIN
KEY "data fattura" KEY "data fattura"
PROMPT 61 21 "" PROMPT 61 21 ""
FILED 33->DATADOC FILED 33->DATADOC
END END
STRINGA 15 7 STRINGA 12 7
BEGIN BEGIN
KEY "numero fattura" KEY "numero fattura"
PROMPT 74 21 "" PROMPT 74 21 ""
FIELD 33->NDOC FIELD 33->NDOC
END END
STRINGA 16 4 1 STRINGA 13 4 1
BEGIN BEGIN
KEY "codice cliente" KEY "codice cliente"
PROMPT 3 23 "" PROMPT 3 23 ""
FIELD 33->CODCF FIELD 33->CODCF
END END
STRINGA 17 2 1 STRINGA 14 2 1
BEGIN BEGIN
KEY "codice agente" KEY "codice agente"
PROMPT 9 23 "" PROMPT 9 23 ""
FIELD 33->CODAG FIELD 33->CODAG
END END
STRINGA 18 14 1 STRINGA 15 14 1
BEGIN BEGIN
KEY "porto" KEY "porto"
PROMPT 52 23 "" PROMPT 52 23 ""
FIELD 203@->S0 FIELD 203@->S0
END END
NUMERO 19 7 1 NUMERO 16 7 1
BEGIN BEGIN
KEY "ordine" KEY "ordine"
PROMPT 12 23 "" PROMPT 12 23 ""
FIELD 33->NUMDOCRIF FIELD 33->NUMDOCRIF
END END
DATA 20 10 1 DATA 17 10 1
BEGIN BEGIN
KEY "data conferma" KEY "data conferma"
PROMPT 20 23 "" PROMPT 20 23 ""
@ -209,56 +164,56 @@ BEGIN
FORMAT "1444-" FORMAT "1444-"
END END
STRINGA 21 49 1 STRINGA 18 49 1
BEGIN BEGIN
KEY "condizioni di pagamento" KEY "condizioni di pagamento"
PROMPT 3 25 "" PROMPT 3 25 ""
FIELD 201@->S0 FIELD 201@->S0
END END
STRINGA 22 29 1 STRINGA 19 29 1
BEGIN BEGIN
KEY "banca d'appoggio" KEY "banca d'appoggio"
PROMPT 54 25 "" PROMPT 54 25 ""
FIELD 204@->S0 FIELD 204@->S0
END END
STRINGA 23 38 2 STRINGA 20 38 2
BEGIN BEGIN
KEY "cliente ragione sociale " KEY "cliente ragione sociale "
PROMPT 44 11 "" PROMPT 44 11 ""
MESSAGE _CLIENTE,!RAGSOC MESSAGE _CLIENTE,!RAGSOC
END END
STRINGA 24 35 2 STRINGA 21 35 2
BEGIN BEGIN
KEY "cliente indirizzo con numero civico" KEY "cliente indirizzo con numero civico"
PROMPT 44 13 "" PROMPT 44 13 ""
MESSAGE _CLIENTE,!INDNUM MESSAGE _CLIENTE,!INDNUM
END END
STRINGA 25 3 STRINGA 22 3
BEGIN BEGIN
KEY "Numero di pagina" KEY "Numero di pagina"
PROMPT 74 10 "" PROMPT 74 10 ""
MESSAGE _PAGENO MESSAGE _PAGENO
END END
STRINGA 27 5 1 STRINGA 23 5 1
BEGIN BEGIN
KEY "cliente cap" KEY "cliente cap"
PROMPT 44 15 "" PROMPT 44 15 ""
MESSAGE _CLIENTE,!CAP MESSAGE _CLIENTE,!CAP
END END
STRINGA 28 30 1 STRINGA 24 30 1
BEGIN BEGIN
KEY "cliente comune" KEY "cliente comune"
PROMPT 50 15 "" PROMPT 50 15 ""
MESSAGE _CLIENTE,!COM MESSAGE _CLIENTE,!COM
END END
STRINGA 30 2 1 STRINGA 25 2 1
BEGIN BEGIN
KEY "cliente provincia" KEY "cliente provincia"
PROMPT 73 16 "" PROMPT 73 16 ""
@ -269,100 +224,104 @@ END
SECTION BODY ODD 5 SECTION BODY ODD 5
STRINGA 32 13 1 STRINGA 51 13 1
BEGIN BEGIN
KEY "codice articolo" KEY "codice articolo"
PROMPT 2 1 ""
FIELD 34->CODART FIELD 34->CODART
PROMPT 2 1 ""
END END
STRINGA 33 25 4 STRINGA 52 25 4
BEGIN BEGIN
KEY "descrizione articolo" KEY "descrizione articolo"
PROMPT 17 1 ""
MESSAGE _DESCRIGA MESSAGE _DESCRIGA
PROMPT 17 1 ""
END END
STRINGA 34 2 STRINGA 53 2
BEGIN BEGIN
KEY "unita' di misura" KEY "unita' di misura"
PROMPT 42 1 "" PROMPT 42 1 ""
FIELD 34->UMQTA FIELD 34->UMQTA
MESSAGE _ALIGN,#33,BOTTOM MESSAGE _ALIGN,#52,BOTTOM
END END
NUMBER 35 10 NUMBER 54 10
BEGIN BEGIN
KEY "quantita'" KEY "quantita'"
PROMPT 45 1 "" PROMPT 45 1 ""
FIELD 34->QTA
PICTURE "######" PICTURE "######"
GROUP 30 GROUP 30
FIELD 34->QTA MESSAGE _ALIGN,#52,BOTTOM
MESSAGE _ALIGN,#33,BOTTOM
END END
NUMBER 36 15 NUMBER 55 15
BEGIN BEGIN
KEY "prezzo unitario" KEY "prezzo unitario"
PROMPT 56 1 "" PROMPT 56 1 ""
PICTURE "###.###.###.###" PICTURE "###.###.###.###"
GROUP 29
FIELD 34->PREZZO FIELD 34->PREZZO
MESSAGE _ALIGN,#33,BOTTOM GROUP 29
MESSAGE _ALIGN,#52,BOTTOM
END END
STRINGA 37 25 STRINGA 56 25
BEGIN BEGIN
KEY "sconto" KEY "sconto"
PROMPT 72 1 "" PROMPT 72 1 ""
FIELD 34->SCONTO FIELD 34->SCONTO
MESSAGE _ALIGN,#33,BOTTOM MESSAGE _ALIGN,#52,BOTTOM
END END
NUMBER 38 15 NUMBER 57 15
BEGIN BEGIN
KEY "importo netto" KEY "importo netto"
PROMPT 68 1 "" PROMPT 68 1 ""
FLAGS "H" FLAGS "H"
GROUP 29 GROUP 29
FIELD 34->IMPNN
PICTURE "###.###.###.###" PICTURE "###.###.###.###"
MESSAGE _TOTAL_RIGA,IMPNETTO|_ALIGN,#33,BOTTOM MESSAGE _ALIGN,#52,BOTTOM
END END
STRINGA 39 4 STRINGA 58 4
BEGIN BEGIN
KEY "iva" KEY "iva"
PROMPT 81 1 "" PROMPT 81 1 ""
FIELD 34->CODIVA FIELD 34->CODIVA
MESSAGE _ALIGN,#33,BOTTOM MESSAGE _ALIGN,#52,BOTTOM
END END
NUMBER 40 15 NUMBER 59 15
BEGIN BEGIN
KEY "prezzo unitario scontato" KEY "prezzo unitario scontato"
PROMPT 68 1 "" PROMPT 68 1 ""
PICTURE "###.###.###.###" PICTURE "###.###.###.###"
FIELD 34->PREZZONS
GROUP 29 GROUP 29
MESSAGE _TOTAL_RIGA,IMPUNITARIO|_ALIGN,#33,BOTTOM MESSAGE _ALIGN,#52,BOTTOM
FLAGS "H" FLAGS "H"
END END
NUMBER 41 15 NUMBER 60 15
BEGIN BEGIN
KEY "provvigione" KEY "provvigione"
PROMPT 68 1 "" PROMPT 68 1 ""
PICTURE "###.###.###.###" PICTURE "###.###.###.###"
MESSAGE _TOTAL_RIGA,PROVVIGIONE|_ALIGN,#33,BOTTOM FIELD 34->PROVVR
MESSAGE _ALIGN,#52,BOTTOM
GROUP 31 GROUP 31
FLAGS "H" FLAGS "H"
END END
NUMBER 42 15 NUMBER 61 15
BEGIN BEGIN
KEY "Imposta" KEY "Imposta"
PROMPT 68 1 "" PROMPT 68 1 ""
PICTURE "###.###.###.###" PICTURE "###.###.###.###"
MESSAGE _TOTAL_RIGA,IMPOSTA|_ALIGN,#33,BOTTOM FIELD 34->IMPOSTA
MESSAGE _ALIGN,#52,BOTTOM
GROUP 31 GROUP 31
FLAGS "H" FLAGS "H"
END END
@ -371,7 +330,7 @@ END
SECTION FOOTER ODD 13 SECTION FOOTER ODD 13
STRINGA 76 5 1 STRINGA 81 5 1
BEGIN BEGIN
KEY "stampa 'segue' in coda" KEY "stampa 'segue' in coda"
PROMPT 73 13 "SEGUE" PROMPT 73 13 "SEGUE"
@ -381,50 +340,61 @@ END
SECTION FOOTER LAST 13 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 BEGIN
KEY "spese di trasporto" KEY "spese di trasporto"
PROMPT 56 3 "" PROMPT 56 3 ""
MESSAGE _TOTAL_CODA,SPTRAS
PICTURE "###.###.###.###" PICTURE "###.###.###.###"
// Aggiungere il campo per le spese di trasporto
FLAGS "H"
GROUP 31 GROUP 31
END END
NUMBER 41 15 NUMBER 103 15
BEGIN
KEY "spese di incasso"
PROMPT 56 5 ""
MESSAGE _TOTAL_CODA,SPINC
PICTURE "###.###.###.###"
GROUP 31
END
NUMBER 42 15
BEGIN BEGIN
KEY "spese di imballo" KEY "spese di imballo"
PROMPT 56 4 "" PROMPT 56 4 ""
MESSAGE _TOTAL_CODA,SPIMB
PICTURE "###.###.###.###" PICTURE "###.###.###.###"
// Aggiungere il campo per le spese di imballo
FLAGS "H"
GROUP 31 GROUP 31
END 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 BEGIN
KEY "spese bolli" KEY "spese bolli"
PROMPT 60 6 "" PROMPT 60 6 ""
MESSAGE _TOTAL_CODA,SPBOL FIELD BOLLI
PICTURE "###.###.###"
GROUP 31 GROUP 31
END END
STRING 76 4 STRING 106 4
BEGIN BEGIN
KEY "codice iva 1" KEY "codice iva 1"
PROMPT 2 2 "" PROMPT 2 2 ""
MESSAGE _RIEPILOGOIVA,1,COD,0 MESSAGE _RIEPILOGOIVA,1,COD,0
END END
NUMBER 44 15 NUMBER 107 15
BEGIN BEGIN
KEY "imponibile 1" KEY "imponibile 1"
PROMPT 7 2 "" PROMPT 7 2 ""
@ -433,7 +403,7 @@ BEGIN
GROUP 31 GROUP 31
END END
NUMBER 45 5 NUMBER 108 5
BEGIN BEGIN
KEY "iva 1" KEY "iva 1"
PROMPT 23 2 "" PROMPT 23 2 ""
@ -441,7 +411,7 @@ BEGIN
PICTURE "##,@@" PICTURE "##,@@"
END END
NUMBER 46 15 NUMBER 109 15
BEGIN BEGIN
KEY "imposta 1" KEY "imposta 1"
PROMPT 28 2 "" PROMPT 28 2 ""
@ -450,14 +420,14 @@ BEGIN
GROUP 31 GROUP 31
END END
STRING 77 4 STRING 110 4
BEGIN BEGIN
KEY "codice iva 2" KEY "codice iva 2"
PROMPT 2 3 "" PROMPT 2 3 ""
MESSAGE _RIEPILOGOIVA,1,COD,0 MESSAGE _RIEPILOGOIVA,1,COD,0
END END
NUMBER 47 15 NUMBER 111 15
BEGIN BEGIN
KEY "imponibile 2" KEY "imponibile 2"
PROMPT 7 3 "" PROMPT 7 3 ""
@ -466,7 +436,7 @@ BEGIN
GROUP 31 GROUP 31
END END
NUMBER 48 5 NUMBER 112 5
BEGIN BEGIN
KEY "iva 2" KEY "iva 2"
PROMPT 23 3 "" PROMPT 23 3 ""
@ -474,7 +444,7 @@ BEGIN
PICTURE "##,@@" PICTURE "##,@@"
END END
NUMBER 49 15 NUMBER 113 15
BEGIN BEGIN
KEY "imposta 2" KEY "imposta 2"
PROMPT 28 3 "" PROMPT 28 3 ""
@ -483,14 +453,14 @@ BEGIN
GROUP 31 GROUP 31
END END
STRING 78 4 STRING 114 4
BEGIN BEGIN
KEY "codice iva 3" KEY "codice iva 3"
PROMPT 2 4 "" PROMPT 2 4 ""
MESSAGE _RIEPILOGOIVA,1,COD,0 MESSAGE _RIEPILOGOIVA,1,COD,0
END END
NUMBER 50 15 NUMBER 115 15
BEGIN BEGIN
KEY "imponibile 3" KEY "imponibile 3"
PROMPT 7 4 "" PROMPT 7 4 ""
@ -499,7 +469,7 @@ BEGIN
GROUP 31 GROUP 31
END END
NUMBER 51 5 NUMBER 116 5
BEGIN BEGIN
KEY "iva 3" KEY "iva 3"
PROMPT 23 4 "" PROMPT 23 4 ""
@ -507,7 +477,7 @@ BEGIN
PICTURE "##,@@" PICTURE "##,@@"
END END
NUMBER 52 15 NUMBER 117 15
BEGIN BEGIN
KEY "imposta 3" KEY "imposta 3"
PROMPT 28 4 "" PROMPT 28 4 ""
@ -516,7 +486,7 @@ BEGIN
GROUP 31 GROUP 31
END END
NUMBER 53 15 NUMBER 118 15
BEGIN BEGIN
KEY "imponibile 4" KEY "imponibile 4"
PROMPT 7 5 "" PROMPT 7 5 ""
@ -525,21 +495,21 @@ BEGIN
GROUP 31 GROUP 31
END END
STRINGA 54 4 STRINGA 119 4
BEGIN BEGIN
KEY "codice iva 4" KEY "codice iva 4"
PROMPT 2 5 "" PROMPT 2 5 ""
MESSAGE _RIEPILOGOIVA,30,COD,0 MESSAGE _RIEPILOGOIVA,30,COD,0
END END
STRINGA 55 45 STRINGA 120 45
BEGIN BEGIN
KEY "descrizione altri 4" KEY "descrizione altri 4"
PROMPT 23 5 "" PROMPT 23 5 ""
MESSAGE _RIEPILOGOIVA,30,DES,1 MESSAGE _RIEPILOGOIVA,30,DES,1
END END
NUMBER 56 15 NUMBER 121 15
BEGIN BEGIN
KEY "imponibile 5" KEY "imponibile 5"
PROMPT 7 6 "" PROMPT 7 6 ""
@ -548,73 +518,73 @@ BEGIN
GROUP 31 GROUP 31
END END
STRINGA 57 4 STRINGA 122 4
BEGIN BEGIN
KEY "codice iva 5" KEY "codice iva 5"
PROMPT 2 6 "" PROMPT 2 6 ""
MESSAGE _RIEPILOGOIVA,30,COD,0 MESSAGE _RIEPILOGOIVA,30,COD,0
END END
STRINGA 58 45 STRINGA 123 45
BEGIN BEGIN
KEY "descrizione altri 5" KEY "descrizione altri 5"
PROMPT 23 6 "" PROMPT 23 6 ""
MESSAGE _RIEPILOGOIVA,30,DES,1 MESSAGE _RIEPILOGOIVA,30,DES,1
END END
NUMBER 59 15 NUMBER 124 15
BEGIN BEGIN
KEY "totale imponibile" KEY "totale imponibile"
PROMPT 71 6 "" PROMPT 71 6 ""
MESSAGE _TOTAL_CODA,TIMPONIBILI,1 MESSAGE _TOTIMPONIBILI,1
PICTURE "###.###.###.###" PICTURE "###.###.###.###"
GROUP 31 GROUP 31
END END
NUMBER 60 15 NUMBER 125 15
BEGIN BEGIN
KEY "totale imposta" KEY "totale imposta"
PROMPT 71 7 "" PROMPT 71 7 ""
MESSAGE _TOTAL_CODA,TIMPOSTE FIELD IMPOSTE
PICTURE "###.###.###.###" PICTURE "###.###.###.###"
GROUP 31 GROUP 31
END END
NUMBER 61 15 NUMBER 126 15
BEGIN BEGIN
KEY "totale esenti" KEY "totale esenti"
PROMPT 71 8 "" PROMPT 71 8 ""
MESSAGE _TOTAL_CODA,TIMPONIBILI,4 MESSAGE _TOTIMPONIBILI,4
PICTURE "###.###.###.###" PICTURE "###.###.###.###"
GROUP 31 GROUP 31
END END
NUMBER 62 15 NUMBER 127 15
BEGIN BEGIN
KEY "totale importi netti" KEY "totale importi netti (non scontati)"
PROMPT 71 1 "" PROMPT 71 1 ""
MESSAGE _TOTAL_CODA,TIMPNETTI FIELD TOTMERC
PICTURE "###.###.###.###" PICTURE "###.###.###.###"
GROUP 31 GROUP 31
END END
NUMBER 63 15 NUMBER 128 15
BEGIN BEGIN
KEY "totale fattura" KEY "totale fattura"
PROMPT 71 9 "" PROMPT 71 9 ""
MESSAGE _TOTAL_CODA,TOTDOC FIELD TOTDOC
PICTURE "###.###.###.###" PICTURE "###.###.###.###"
GROUP 31 GROUP 31
END END
DATA 64 10 1 DATA 129 10 1
BEGIN BEGIN
KEY "scadenza pagamento 1" KEY "scadenza pagamento 1"
PROMPT 3 10 "" PROMPT 3 10 ""
MESSAGE _SCADENZE,DATA,0 MESSAGE _SCADENZE,DATA,0
END END
NUMBER 65 15 NUMBER 130 15
BEGIN BEGIN
KEY "importo scadenza 1" KEY "importo scadenza 1"
PROMPT 16 10 "" PROMPT 16 10 ""
@ -623,14 +593,14 @@ BEGIN
GROUP 31 GROUP 31
END END
DATA 66 10 1 DATA 131 10 1
BEGIN BEGIN
KEY "scadenza pagamento 2" KEY "scadenza pagamento 2"
PROMPT 32 10 "" PROMPT 32 10 ""
MESSAGE _SCADENZE,DATA,0 MESSAGE _SCADENZE,DATA,0
END END
NUMBER 67 15 NUMBER 132 15
BEGIN BEGIN
KEY "importo scadenza 2" KEY "importo scadenza 2"
PROMPT 45 10 "" PROMPT 45 10 ""
@ -639,14 +609,14 @@ BEGIN
GROUP 31 GROUP 31
END END
DATA 68 10 1 DATA 133 10 1
BEGIN BEGIN
KEY "scadenza pagamento 3" KEY "scadenza pagamento 3"
PROMPT 3 11 "" PROMPT 3 11 ""
MESSAGE _SCADENZE,DATA,0 MESSAGE _SCADENZE,DATA,0
END END
NUMBER 69 15 NUMBER 134 15
BEGIN BEGIN
KEY "importo scadenza 3" KEY "importo scadenza 3"
PROMPT 16 11 "" PROMPT 16 11 ""
@ -655,14 +625,14 @@ BEGIN
GROUP 31 GROUP 31
END END
DATA 70 10 1 DATA 135 10 1
BEGIN BEGIN
KEY "scadenza pagamento 4" KEY "scadenza pagamento 4"
PROMPT 32 11 "" PROMPT 32 11 ""
MESSAGE _SCADENZE,DATA,0 MESSAGE _SCADENZE,DATA,0
END END
NUMBER 71 15 NUMBER 136 15
BEGIN BEGIN
KEY "importo scadenza 4" KEY "importo scadenza 4"
PROMPT 45 11 "" PROMPT 45 11 ""
@ -671,14 +641,14 @@ BEGIN
GROUP 31 GROUP 31
END END
DATA 72 10 1 DATA 137 10 1
BEGIN BEGIN
KEY "scadenza pagamento 5" KEY "scadenza pagamento 5"
PROMPT 3 12 "" PROMPT 3 12 ""
MESSAGE _SCADENZE,DATA,0 MESSAGE _SCADENZE,DATA,0
END END
NUMBER 73 15 NUMBER 138 15
BEGIN BEGIN
KEY "importo scadenza 5" KEY "importo scadenza 5"
PROMPT 16 12 "" PROMPT 16 12 ""
@ -689,4 +659,184 @@ 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