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 %AGE TO 33 ALIAS 202 INTO CODTAB==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 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" 202@->* "Tabella agenti" 203@->* "Tabella porto" 204@->* "Tabella banche" 205@->* "Tabella vettori" 206@->* "Tabella aspetto beni" END GENERAL BEGIN OFFSET 0 0 FONT "Courier New" SIZE 12 MODULE "BUFFETTI_FATTURA_01" PRI_DECIMALS 0 3 QTA_DECIMALS 3 3 IMP_DECIMALS 0 3 EXCLUDE "," END SECTION HEADER ODD 28 STRINGA 1 35 1 BEGIN KEY "nome ditta" PROMPT 3 4 "" MESSAGE _DITTA, !RAGSOC END STRINGA 2 35 1 BEGIN KEY "indirizzo ditta" PROMPT 3 5 "" MESSAGE _DITTA, !IND END STRINGA 3 5 1 BEGIN KEY "cap ditta" PROMPT 3 6 "" MESSAGE _DITTA, !CAP END STRINGA 4 30 1 BEGIN KEY "comune ditta" PROMPT 10 6 "" MESSAGE _DITTA, !COM END STRINGA 5 5 1 BEGIN KEY "scritta P.IVA" PROMPT 3 7 "P.IVA" END STRINGA 6 16 1 BEGIN KEY "partita iva ditta" PROMPT 9 7 "" MESSAGE _DITTA, !PIVA END STRINGA 7 9 1 BEGIN KEY "scritta COD.FISC." PROMPT 3 8 "COD.FISC." END STRINGA 8 16 1 BEGIN KEY "codice fiscale ditta" PROMPT 13 8 "" MESSAGE _DITTA, !CF END NUMERO 9 30 1 BEGIN KEY "reg.soc.trib...." PROMPT 3 9 "REG.SOC.TRIB.R.E. " MESSAGE _DITTA, !REGSOC END NUMERO 10 30 1 BEGIN KEY "c.c.i.a.a. ....." PROMPT 3 10 "C.C.I.A.A. " MESSAGE _DITTA, !CCIAA END STRINGA 11 10 1 BEGIN KEY "data fattura" PROMPT 61 21 "" FILED 33->DATADOC END STRINGA 12 7 BEGIN KEY "numero fattura" PROMPT 74 21 "" FIELD 33->NDOC END STRINGA 13 4 1 BEGIN KEY "codice cliente" PROMPT 3 23 "" FIELD 33->CODCF END STRINGA 14 2 1 BEGIN KEY "codice agente" PROMPT 9 23 "" FIELD 33->CODAG END STRINGA 15 14 1 BEGIN KEY "porto" PROMPT 52 23 "" FIELD 203@->S0 END NUMERO 16 7 1 BEGIN KEY "ordine" PROMPT 12 23 "" FIELD 33->NUMDOCRIF END DATA 17 10 1 BEGIN KEY "data conferma" PROMPT 20 23 "" FIELD 33->DATADOCRIF FORMAT "1444-" END STRINGA 18 49 1 BEGIN KEY "condizioni di pagamento" PROMPT 3 25 "" FIELD 201@->S0 END STRINGA 19 29 1 BEGIN KEY "banca d'appoggio" PROMPT 54 25 "" FIELD 204@->S0 END STRINGA 20 38 2 BEGIN KEY "cliente ragione sociale " PROMPT 44 11 "" MESSAGE _CLIENTE,!RAGSOC END STRINGA 21 35 2 BEGIN KEY "cliente indirizzo con numero civico" PROMPT 44 13 "" MESSAGE _CLIENTE,!INDNUM END STRINGA 22 3 BEGIN KEY "Numero di pagina" PROMPT 74 10 "" MESSAGE _PAGENO END STRINGA 23 5 1 BEGIN KEY "cliente cap" PROMPT 44 15 "" MESSAGE _CLIENTE,!CAP END STRINGA 24 30 1 BEGIN KEY "cliente comune" PROMPT 50 15 "" MESSAGE _CLIENTE,!COM END STRINGA 25 2 1 BEGIN KEY "cliente provincia" PROMPT 73 16 "" MESSAGE _CLIENTE,!PROV END END SECTION BODY ODD 5 STRINGA 51 13 1 BEGIN KEY "codice articolo" FIELD 34->CODART PROMPT 2 1 "" END STRINGA 52 25 4 BEGIN KEY "descrizione articolo" MESSAGE _DESCRIGA PROMPT 17 1 "" END STRINGA 53 2 BEGIN KEY "unita' di misura" PROMPT 42 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 15 BEGIN KEY "prezzo unitario" PROMPT 56 1 "" PICTURE "###.###.###.###" FIELD 34->PREZZO GROUP 29 MESSAGE _ALIGN,#52,BOTTOM END STRINGA 56 25 BEGIN KEY "sconto" PROMPT 72 1 "" FIELD 34->SCONTO MESSAGE _ALIGN,#52,BOTTOM END NUMBER 57 15 BEGIN KEY "importo netto" PROMPT 68 1 "" FLAGS "H" GROUP 29 FIELD 34->IMPNN PICTURE "###.###.###.###" MESSAGE _ALIGN,#52,BOTTOM END STRINGA 58 4 BEGIN KEY "iva" PROMPT 81 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 13 STRINGA 81 5 1 BEGIN KEY "stampa 'segue' in coda" PROMPT 73 13 "SEGUE" END END SECTION FOOTER LAST 13 NUMBER 101 15 BEGIN KEY "spese" PROMPT 56 3 "" PICTURE "###.###.###.###" FIELD TOTSPE FLAGS "H" GROUP 31 END NUMBER 102 15 BEGIN KEY "spese di trasporto" PROMPT 56 3 "" PICTURE "###.###.###.###" // Aggiungere il campo per le spese di trasporto FLAGS "H" GROUP 31 END NUMBER 103 15 BEGIN KEY "spese di imballo" PROMPT 56 4 "" PICTURE "###.###.###.###" // Aggiungere il campo per le spese di imballo FLAGS "H" GROUP 31 END NUMBER 104 15 BEGIN KEY "spese di incasso" PROMPT 56 5 "" PICTURE "###.###.###.###" FIELD SPESEINC GROUP 31 END NUMBER 105 11 BEGIN KEY "spese bolli" PROMPT 60 6 "" FIELD BOLLI GROUP 31 END STRING 106 4 BEGIN KEY "codice iva 1" PROMPT 2 2 "" MESSAGE _RIEPILOGOIVA,1,COD,0 END NUMBER 107 15 BEGIN KEY "imponibile 1" PROMPT 7 2 "" MESSAGE _RIEPILOGOIVA,1,IMP,0 PICTURE "###.###.###.###" GROUP 31 END NUMBER 108 5 BEGIN KEY "iva 1" PROMPT 23 2 "" MESSAGE _RIEPILOGOIVA,1,ALI,0 PICTURE "##,@@" END NUMBER 109 15 BEGIN KEY "imposta 1" PROMPT 28 2 "" MESSAGE _RIEPILOGOIVA,1,IVA,1 PICTURE "###.###.###.###" GROUP 31 END STRING 110 4 BEGIN KEY "codice iva 2" PROMPT 2 3 "" MESSAGE _RIEPILOGOIVA,1,COD,0 END NUMBER 111 15 BEGIN KEY "imponibile 2" PROMPT 7 3 "" MESSAGE _RIEPILOGOIVA,1,IMP,0 PICTURE "###.###.###.###" GROUP 31 END NUMBER 112 5 BEGIN KEY "iva 2" PROMPT 23 3 "" MESSAGE _RIEPILOGOIVA,1,ALI,0 PICTURE "##,@@" END NUMBER 113 15 BEGIN KEY "imposta 2" PROMPT 28 3 "" MESSAGE _RIEPILOGOIVA,1,IVA,1 PICTURE "###.###.###.###" GROUP 31 END STRING 114 4 BEGIN KEY "codice iva 3" PROMPT 2 4 "" MESSAGE _RIEPILOGOIVA,1,COD,0 END NUMBER 115 15 BEGIN KEY "imponibile 3" PROMPT 7 4 "" MESSAGE _RIEPILOGOIVA,1,IMP,0 PICTURE "###.###.###.###" GROUP 31 END NUMBER 116 5 BEGIN KEY "iva 3" PROMPT 23 4 "" MESSAGE _RIEPILOGOIVA,1,ALI,0 PICTURE "##,@@" END NUMBER 117 15 BEGIN KEY "imposta 3" PROMPT 28 4 "" MESSAGE _RIEPILOGOIVA,1,IVA,1 PICTURE "###.###.###.###" GROUP 31 END NUMBER 118 15 BEGIN KEY "imponibile 4" PROMPT 7 5 "" MESSAGE _RIEPILOGOIVA,30,IMP,0 PICTURE "###.###.###.###" GROUP 31 END STRINGA 119 4 BEGIN KEY "codice iva 4" PROMPT 2 5 "" MESSAGE _RIEPILOGOIVA,30,COD,0 END STRINGA 120 45 BEGIN KEY "descrizione altri 4" PROMPT 23 5 "" MESSAGE _RIEPILOGOIVA,30,DES,1 END NUMBER 121 15 BEGIN KEY "imponibile 5" PROMPT 7 6 "" MESSAGE _RIEPILOGOIVA,30,IMP,0 PICTURE "###.###.###.###" GROUP 31 END STRINGA 122 4 BEGIN KEY "codice iva 5" PROMPT 2 6 "" MESSAGE _RIEPILOGOIVA,30,COD,0 END STRINGA 123 45 BEGIN KEY "descrizione altri 5" PROMPT 23 6 "" MESSAGE _RIEPILOGOIVA,30,DES,1 END NUMBER 124 15 BEGIN KEY "totale imponibile" PROMPT 71 6 "" MESSAGE _TOTIMPONIBILI,1 PICTURE "###.###.###.###" GROUP 31 END NUMBER 125 15 BEGIN KEY "totale imposta" PROMPT 71 7 "" FIELD IMPOSTE PICTURE "###.###.###.###" GROUP 31 END NUMBER 126 15 BEGIN KEY "totale esenti" PROMPT 71 8 "" MESSAGE _TOTIMPONIBILI,4 PICTURE "###.###.###.###" GROUP 31 END NUMBER 127 15 BEGIN KEY "totale importi netti (non scontati)" PROMPT 71 1 "" FIELD TOTMERC PICTURE "###.###.###.###" GROUP 31 END NUMBER 128 15 BEGIN KEY "totale fattura" PROMPT 71 9 "" FIELD TOTDOC PICTURE "###.###.###.###" GROUP 31 END DATA 129 10 1 BEGIN KEY "scadenza pagamento 1" PROMPT 3 10 "" MESSAGE _SCADENZE,DATA,0 END NUMBER 130 15 BEGIN KEY "importo scadenza 1" PROMPT 16 10 "" MESSAGE _SCADENZE,IMPORTO,1 PICTURE "###.###.###.###" GROUP 31 END DATA 131 10 1 BEGIN KEY "scadenza pagamento 2" PROMPT 32 10 "" MESSAGE _SCADENZE,DATA,0 END NUMBER 132 15 BEGIN KEY "importo scadenza 2" PROMPT 45 10 "" MESSAGE _SCADENZE,IMPORTO,1 PICTURE "###.###.###.###" GROUP 31 END DATA 133 10 1 BEGIN KEY "scadenza pagamento 3" PROMPT 3 11 "" MESSAGE _SCADENZE,DATA,0 END NUMBER 134 15 BEGIN KEY "importo scadenza 3" PROMPT 16 11 "" MESSAGE _SCADENZE,IMPORTO,1 PICTURE "###.###.###.###" GROUP 31 END DATA 135 10 1 BEGIN KEY "scadenza pagamento 4" PROMPT 32 11 "" MESSAGE _SCADENZE,DATA,0 END NUMBER 136 15 BEGIN KEY "importo scadenza 4" PROMPT 45 11 "" MESSAGE _SCADENZE,IMPORTO,1 PICTURE "###.###.###.###" GROUP 31 END DATA 137 10 1 BEGIN KEY "scadenza pagamento 5" PROMPT 3 12 "" MESSAGE _SCADENZE,DATA,0 END NUMBER 138 15 BEGIN KEY "importo scadenza 5" PROMPT 16 12 "" 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 // INIZIALE // FINALE // 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 // Dove e' il numero del gruppo // e' il numero di decimali per i documenti in lire // 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: ",". 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,,[!!...],{|[!!...]} // dove: è il numero logico del file o il nome della tabella // è un'espressione del tipo = // è un'espressione di costanti numeriche, stringhe e valori di campi della form (indicati con il loro numero preceduto da #) // è un'espressione del tipo = (se è un gruppo deve essere seguito da @) oppure solo (il campo della form è quello corrente) // // _TABLEREAD: // lettura generica di un campo di una tabella // sintassi: _TABLEREAD,,, // dove: nome tabella da leggere // costante stringa o riferimento a campo della form (preceduto da '#') da usare come chiave di ricerca // identificativo del campo da leggere dalla tabella // // _DITTA: // lettura dei dati della ditta // sintassi: _DITTA,{|} // dove: è un riferimento alla relazione di gestione dei dati della ditta (es. 113@->DENCOM è la denominazione del comune di residenza della ditta) // è 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,{|} // dove: è un riferimento alla relazione di gestione dei dati del cliente // è 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 se persona fisica, 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,[,][,...] // dove: è il campo della form (preceduto da '#') da cui prendere l'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,,, // dove: è 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: è 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: è 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, // dove: funge da filtro per la somma degli imponibili // vedi _RIEPILOGOIVA per la spiegazione dei filtri selettivi // // _SCADENZE: // messaggio per stampare le scadenze // sintassi: _SCADENZE,, // dove e' uno dei seguenti: // DATA : stampa la data di scadenza // IMPORTO : stampa l'importo in scadenza // dove 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