diff --git a/m770/77qa.frm b/m770/77qa.frm index f745f8295..7a5d4dc3e 100755 --- a/m770/77qa.frm +++ b/m770/77qa.frm @@ -1,407 +1,1116 @@ -USE 62 -JOIN %CA7 ALIAS 14 INTO CODTAB=CODCAUS -JOIN 9 INTO CODDITTA=CODDITTA -JOIN 6 TO 9 ALIAS 116 INTO TIPOA=TIPOA CODANAGR=CODANAGR -JOIN 8 TO 116@ ALIAS 118 INTO CODANAGR=CODANAGR -JOIN 13 TO 118@ ALIAS 113 INTO COM=COMNASC -JOIN 13 TO 116@ ALIAS 213 INTO COM=COMRF(COMRES) -JOIN 6 ALIAS 216 INTO TIPOA=TIPOA CODANAGR=CODANAGR -JOIN 8 TO 216@ ALIAS 218 INTO CODANAGR=CODANAGR -JOIN 13 TO 216@ ALIAS 313 INTO COM=COMNASC -JOIN 13 TO 218@ ALIAS 413 INTO COM=COMRF(COMRES) -JOIN %STA TO 216@ ALIAS 24 INTO CODTAB=STATORES - -END -DESCRIPTION -BEGIN - 62->* "Quadro D 770" - 14@->* "CA7" - 9->* "Ditte" - 116@->* "Anagrafica persone fisiche e giuridiche (ditta)" - 118@->* "Anagrafica persone fisiche (ditta)" - 113@->* "Comuni DITTA (nascita)" - 213@->* "Comuni DITTA (res. fisc)" - 216@->* "Anagrafica persone fisiche e giuridiche (percip.)" - 218@->* "Anagrafica persone fisiche (percipiente)" - 313@->* "Comuni PERCIPIENTE (nascita)" - 413@->* "Comuni PERCIPIENTE (resid. fisc)" - 24@->* "Tabella stati" -END - -GENERAL -BEGIN - OFFSET 0 0 - FONT "Courier 17cpi" - SIZE 10 - CARATTERE "X" - INIZIO_POS 3 2 - FINE_POS 131 - GRID "+++++++++-|" -END - -SECTION HEADER FIRST 28 - -STRINGA 1 -BEGIN - KEY "CODICE FISCALE" - PROMPT 4 9 "" - FIELD 116@->COFI -END - -STRINGA 2 -BEGIN - KEY "RAGIONE SOCIALE" - PROMPT 39 9 "" - GROUP 2 - FIELD 116@->RAGSOC -END - -STRINGA 3 -BEGIN - KEY "COGNOME" - PROMPT 39 9 "" - GROUP 1 - FIELD 116@->RAGSOC[1,30] -END - -STRINGA 4 -BEGIN - KEY "NOME" - PROMPT 17 11 "" - GROUP 1 - FIELD 116@->RAGSOC[31,50] -END - -STRINGA 5 -BEGIN - KEY "SESSO" - PROMPT 58 11 "" - GROUP 1 - FIELD 118@->SESSO -END - -STRINGA 6 -BEGIN - KEY "DATA DI NASCITA" - PROMPT 66 11 "" - GROUP 1 - FIELD 118@->DATANASC -END - -STRINGA 7 -BEGIN - KEY "COMUNE DI NASCITA" - PROMPT 84 11 "" - GROUP 1 - FIELD 113@->DENCOM -END - -STRINGA 8 -BEGIN - KEY "PROV. DI NASCITA" - PROMPT 126 11 "" - GROUP 1 - FIELD 113@->PROVCOM -END - -LISTA 9 -BEGIN - KEY "Tipo anagrafica" - FIELD 116@->TIPOA -END - -STRINGA 10 -BEGIN - KEY "COMUNE DI RES.FISCALE" - PROMPT 17 13 "" - FIELD 213@->DENCOM -END - -STRINGA 11 -BEGIN - KEY "PROV DI RES.FISCALE" - PROMPT 59 13 "" - FIELD 213@->PROVCOM -END - -STRINGA 12 -BEGIN - KEY "VIA di RES." - PROMPT 66 13 "" - FIELD 116@->INDRF -END - -STRINGA 13 -BEGIN - KEY "NUM. CIVICO di RES." - PROMPT 102 13 "" - FIELD 116@->CIVRF -END - -STRINGA 14 -BEGIN - KEY "CAP" - PROMPT 120 13 "" - FIELD 116@->CAPRF -END - -STRINGA 15 -BEGIN - KEY "CODICE FISCALE DICHIARANTE" - PROMPT 118 16 "" -END - -NUMERO 16 -BEGIN - KEY "NUM. FOGLIO" - PROMPT 123 20 "" -END - -END - -SECTION BODY ODD 8 - -LISTA 100 -BEGIN - KEY "Tipo anagrafica" - FIELD 216@->TIPOA -END - -STRINGA 1 -BEGIN - KEY "COD.FIS" - PROMPT 2 12 "" - FIELD 216@->COFI -END - -STRINGA 2 -BEGIN - KEY "COGNOME" - PROMPT 23 12 "" - GROUP 1 - FIELD 216@->RAGSOC[1,30] -END - -STRINGA 3 -BEGIN - KEY "NOME" - PROMPT 10 14 "" - GROUP 1 - FIELD 216@->RAGSOC[31,50] -END - -STRINGA 102 -BEGIN - KEY "RAGSOC GIURIDICHE" - PROMPT 23 12 "" - GROUP 2 - FIELD 216@->RAGSOC -END - -DATA 4 -BEGIN - KEY "DATA NASCITA" - PROMPT 39 14 "" - FIELD 118@->DATANASC -END - -STRINGA 5 -BEGIN - KEY "SESSO" - PROMPT 34 14 "" - FIELD 118@->SESSO -END - -STRINGA 6 -BEGIN - KEY "COMUNE DI NASCITA" - PROMPT 49 14 "" - GROUP 1 - FIELD 313@->DENCOM -END - -STRINGA 101 -BEGIN - KEY "COMUNE DI RESIDENZA GIURIDICHE" - PROMPT 10 16 "" - GROUP 2 - FIELD 413@->DENCOM -END - -STRINGA 7 -BEGIN - KEY "PROV DI NASCITA" - PROMPT 73 14 "" - GROUP 1 - FIELD 313@->PROVCOM -END - -STRINGA 8 -BEGIN - KEY "COMUNE DI RESIDENZA" - PROMPT 10 16 "" - GROUP 1 - FIELD 413@->DENCOM -END - -STRINGA 9 -BEGIN - KEY "PROV. RESIDENZA" - PROMPT 34 16 "" - FIELD 413@->PROVCOM -END - -STRINGA 106 -BEGIN - KEY "PROV. RESIDENZA GIURIDICHE" - PROMPT 34 16 "" - GROUP 2 - FIELD 413@->PROVCOM -END - -STRINGA 10 -BEGIN - KEY "VIA RES." - PROMPT 94 4 "" - FLAGS "H" - MESSAGE COPY,12|COPY,107 - FIELD 216@->INDRES[1,18] -END - -STRINGA 11 -BEGIN - KEY "NUM.CIV" - PROMPT 93 4 "" - FLAGS "H" - MESSAGE APPEND,12|APPEND,107 - FIELD 216@->CIVRES -END - -STRINGA 12 -BEGIN - KEY "VIA RES. + numcivres" - PROMPT 39 16 "" - GROUP 1 -END - -STRINGA 13 -BEGIN - KEY "Codice fiscale percipiente" - PROMPT 6 23 "" - FIELD 216@->COFI -END - -STRINGA 14 -BEGIN - KEY "Cognome percipiente" - PROMPT 25 23 "" - FIELD 216@->RAGSOC[1,30] -END - -STRINGA 15 -BEGIN - KEY "Nome percipiente" - PROMPT 45 23 "" - FIELD 216@->RAGSOC[31,50] -END - -DATA 16 -BEGIN - KEY "Data nascita percipiente" - PROMPT 67 23 "" -END - -STRINGA 17 -BEGIN - KEY "Sesso percipiente" - PROMPT 75 23 "" - FIELD 218@->SESSO -END - -STRINGA 18 -BEGIN - KEY "Comune nascita percipiente" - PROMPT 6 24 "" - FIELD 313@->DENCOM -END - -STRINGA 19 -BEGIN - KEY "Provincia nascita percipiente" - PROMPT 28 24 "" - FIELD 313@->PROVCOM -END - -STRINGA 20 -BEGIN - KEY "Comune residenza percipiente" - PROMPT 31 24 "" - FIELD 413@->DENCOM -END - -STRINGA 21 -BEGIN - KEY "Provincia residenza percipiente" - PROMPT 52 24 "" - FIELD 413@->PROVCOM -END - -STRINGA 22 -BEGIN - KEY "dummy (via perc)" - FLAGS "H" - MESSAGE COPY, 24 - FIELD 216@->INDRES[1,18] -END - -STRINGA 23 -BEGIN - KEY "dummy (civ. percip.)" - FLAGS "H" - MESSAGE APPEND,24 - FIELD 216@->CIVRES -END - -STRINGA 24 23 -BEGIN - KEY "Indirizzo + n. civ. percipiente" - PROMPT 55 24 "" -END - -END - -SECTION BODY EVEN 2 - -NUMERO 1 -BEGIN - KEY "TOTALE TOTALE" - PROMPT 36 1 "" -END - -NUMERO 2 -BEGIN - KEY "TOTALE SOMME NON SOGGETTE" - PROMPT 55 1 "" -END - -NUMERO 3 -BEGIN - KEY "TOTALE IMPONIBILE" - PROMPT 75 1 "" -END - -NUMERO 4 -BEGIN - KEY "TOTALE IMPORTO" - PROMPT 101 1 "" -END - -NUMERO 5 -BEGIN - KEY "TOTALE NETTO" - PROMPT 120 1 "" -END - -END - -END +USE 44 +JOIN 45 INTO CODDITTA=CODDITTA CODDIP=CODDIP +JOIN %CAF ALIAS 104 INTO CODTAB=CODCAAF +JOIN 9 INTO CODDITTA=CODDITTA +JOIN 6 TO 9 ALIAS 106 INTO TIPOA=TIPOA CODANAGR=CODANAGR +JOIN 8 TO 106@ ALIAS 108 INTO CODANAGR=CODANAGR +JOIN 13 TO 108@ ALIAS 113 INTO COM==COMNASC +JOIN 13 TO 106@ ALIAS 213 INTO COM==COMRF(COMRES) + +END +DESCRIPTION +BEGIN + 44->* "Quadro A 770" + 45->* "Anagrafica dei dipendenti" + 104@->* "Tabella CAAF" + 9->* "Ditte" + 106@->* "Anagrafica persone fisiche e giuridiche (ditta)" + 108@->* "Anagrafica persone fisiche (ditta)" + 113@->* "Comuni DITTA (nascita)" + 213@->* "Comuni DITTA (residenza)" +END + +GENERAL +BEGIN + OFFSET 0 0 + FONT "Courier New" + SIZE 11 + CARATTERE "X" + INIZIO_POS 3 2 + FINE_POS 131 + GRID "+++++++++-|" +END + +SECTION HEADER FIRST 28 + +LISTA 1 +BEGIN + KEY "Tipo anagrafica" + FLAGS "H" + FIELD 106@->TIPOA + ITEM "F|Fisica" MESSAGE SHOW,1@|HIDE,2@ + ITEM "G|Giuridica" MESSAGE SHOW,2@|HIDE,1@ +END + +STRINGA 2 +BEGIN + KEY "CODICE FISCALE" + PROMPT 3 12 "" + FIELD 106@->COFI +END + +STRINGA 3 +BEGIN + KEY "RAGIONE SOCIALE" + PROMPT 40 12 "" + GROUP 2 + FIELD 106@->RAGSOC +END + +STRINGA 4 +BEGIN + KEY "COGNOME" + PROMPT 40 12 "" + GROUP 1 + FIELD 106@->RAGSOC[1,30] +END + +STRINGA 5 +BEGIN + KEY "NOME" + PROMPT 17 14 "" + GROUP 1 + FIELD 106@->RAGSOC[31,50] +END + +STRINGA 6 +BEGIN + KEY "SESSO" + PROMPT 59 14 "" + GROUP 1 + FIELD 108@->SESSO +END + +STRINGA 7 +BEGIN + KEY "DATA DI NASCITA" + PROMPT 64 14 "" + GROUP 1 + FIELD 108@->DATANASC +END + +STRINGA 8 +BEGIN + KEY "COMUNE DI NASCITA" + PROMPT 86 14 "" + GROUP 1 + FIELD 113@->DENCOM +END + +STRINGA 9 +BEGIN + KEY "PROV. DI NASCITA" + PROMPT 128 14 "" + GROUP 1 + FIELD 113@->PROVCOM +END + +STRINGA 10 +BEGIN + KEY "COMUNE DI RES.FISCALE" + PROMPT 17 16 "" + FIELD 213@->DENCOM +END + +STRINGA 11 +BEGIN + KEY "PROV DI RES.FISCALE" + PROMPT 59 16 "" + FIELD 213@->PROVCOM +END + +STRINGA 12 +BEGIN + KEY "VIA di RES." + PROMPT 68 16 "" + FIELD 106@->INDRF +END + +STRINGA 15 +BEGIN + KEY "NUM. CIVICO di RES." + PROMPT 104 16 "" + FIELD 106@->CIVRF +END + +STRINGA 16 +BEGIN + KEY "CAP" + PROMPT 125 16 "" + FIELD 106@->CAPRF +END + +STRINGA 13 +BEGIN + KEY "CODICE FISCALE DEL SOGGETTO DICHIARANTE" + PROMPT 87 19 "" +END + +NUMERO 14 +BEGIN + KEY "NUM. FOGLIO" + PROMPT 125 19 "" +END + +END + +SECTION BODY ODD 20 + +STRINGA 1 +BEGIN + KEY "COD.FIS" + PROMPT 11 1 "" + FIELD 45->CODFI +END + +STRINGA 2 +BEGIN + KEY "COGNOME" + PROMPT 44 1 "" + FIELD 45->COGNOME +END + +STRINGA 3 +BEGIN + KEY "NOME" + PROMPT 82 1 "" + FIELD 45->NOME +END + +DATA 4 +BEGIN + KEY "DATA NASCITA" + PROMPT 115 1 "" + FIELD 45->DATANA + FORMAT "1444-" +END + +STRINGA 5 +BEGIN + KEY "SESSO" + PROMPT 131 1 "" + FIELD 45->SESSO +END + +STRINGA 6 +BEGIN + KEY "COMUNE DI NASCITA" + PROMPT 11 3 "" + FIELD 45->COMUNENA +END + +STRINGA 7 +BEGIN + KEY "PROV DI NASCITA" + PROMPT 47 3 "" + FIELD 45->PROVNA +END + +STRINGA 8 +BEGIN + KEY "COMUNE DI RESIDENZA" + PROMPT 54 3 "" + FIELD 45->COMRES +END + +STRINGA 9 +BEGIN + KEY "PROV. RESIDENZA" + PROMPT 89 3 "" + FIELD 45->PROVRES +END + +STRINGA 10 +BEGIN + KEY "INDIRIZZO RES." + PROMPT 95 3 "" + FIELD 45->INDRES +END + +STRINGA 11 +BEGIN + KEY "STATO CIVILE" + PROMPT 11 5 "" + FIELD 45->STATOCIV +END + +STRINGA 12 +BEGIN + KEY "QUALIFICA" + PROMPT 17 5 "" + FIELD 45->QUALIFICA +END + +STRINGA 13 +BEGIN + KEY "AREA ATTIVITA'" + PROMPT 30 5 "" + FIELD 44->AREAATT +END + +STRINGA 14 +BEGIN + KEY "TIPO" + PROMPT 36 5 "" + FIELD 44->TIPO +END + +NUMERO 15 +BEGIN + KEY "NUMERO GIORNI" + PROMPT 44 5 "" + FIELD 44->NUMGIO +END + +DATA 16 +BEGIN + KEY "DATA FINE RAPPORTO" + PROMPT 61 5 "" + FORMAT "1444-" + PICTURE "## ^ ##^^^^^" +END + +NUMERO 17 +BEGIN + KEY "GIORNI DETRAZ. LAV. DIP." + PROMPT 68 5 "" + FIELD 44->NORIT +END + +STRINGA 18 +BEGIN + KEY "CF DATORE LAVORO PRECEDENTE" + PROMPT 98 5 "" + FIELD 44->CFDLPREC +END + +NUMERO 19 +BEGIN + KEY "CAUSA" + PROMPT 129 5 "" + FIELD 44->CAUSA +END + +NUMERO 20 +BEGIN + KEY "IN DENARO" + PROMPT 11 7 "" + PICTURE "###.###.###^^^" + MESSAGE ADD,FL->20 + FIELD 44->DENARO +END + +NUMERO 21 +BEGIN + KEY "IN NATURA" + PROMPT 26 7 "" + PICTURE "###.###.###^^^" + MESSAGE ADD,FL->21 + FIELD 44->NATURA +END + +NUMERO 22 +BEGIN + KEY "CONTRIBUTI OBBLIGATORI" + PROMPT 42 7 "" + PICTURE "###.###.###^^^" + MESSAGE ADD,FL->22 + FIELD 44->COBBDIP +END + +NUMERO 23 +BEGIN + KEY "COMPENSI NETTI" + PROMPT 58 7 "" + PICTURE "###.###.###^^^" + MESSAGE ADD,FL->23 + FIELD 44->COMPNETTI +END + +NUMERO 24 +BEGIN + KEY "AMMONTARE LORDO" + PROMPT 73 7 "" + PICTURE "###.###.###^^^" + MESSAGE ADD,FL->24 + FIELD 44->AMMLORDO +END + +NUMERO 25 +BEGIN + KEY "IND.ASS.CONTRIBUTI OBBLIGATORI" + PROMPT 89 7 "" + PICTURE "###.###.###^^^" + MESSAGE ADD,FL->25 + FIELD 44->IACOBBCD +END + +NUMERO 26 +BEGIN + KEY "SOMME NON ASSOG. A RITEN." + PROMPT 103 7 "" + PICTURE "###.###.###^^^" + MESSAGE ADD,FL->26 + FIELD 44->NORIT +END + +NUMERO 27 +BEGIN + KEY "TOTALE IMPONIBILE" + PROMPT 120 7 "" + PICTURE "###.###.###^^^" + MESSAGE ADD,FL->27 + FIELD 44->TOTIMP +END + +NUMERO 28 +BEGIN + KEY "ASSEGNI ED INDENNITA'" + PROMPT 11 9 "" + PICTURE "###.###.###^^^" + MESSAGE ADD,FL->28 + FIELD 44->AIENTIPREV +END + +NUMERO 29 +BEGIN + KEY "AMMONTARE COMPENSI CORRISPOSTI DA TERZI" + PROMPT 26 9 "" + PICTURE "###.###.###^^^" + MESSAGE ADD,FL->29 + FIELD 44->CCTAMMCONT +END + +NUMERO 30 +BEGIN + KEY "TOTALE IMPONIBILE 2" + PROMPT 42 9 "" + PICTURE "###.###.###^^^" + MESSAGE ADD,FL->30 + FIELD 44->TOTIMP2 +END + +NUMERO 31 +BEGIN + KEY "IMPOSTA CORRISPONDENTE" + PROMPT 58 9 "" + PICTURE "###.###.###^^^" + MESSAGE ADD,FL->31 + FIELD 44->ICTOTIMP +END + +NUMERO 32 +BEGIN + KEY "DETRAZIONE PER CONIUGE A CARICO" + PROMPT 73 9 "" + PICTURE "###.###.###^^^" + MESSAGE ADD,FL->32 + FIELD 44->DETCC +END + +NUMERO 33 +BEGIN + KEY "DETRAZIONE PER FIGLI A CARICO" + PROMPT 89 9 "" + PICTURE "###.###.###^^^" + MESSAGE ADD,FL->33 + FIELD 44->DETFC +END + +NUMERO 34 +BEGIN + KEY "DETRAZIONE PER ALTRI FAMILIARI A CARICO" + PROMPT 104 9 "" + PICTURE "###.###.###^^^" + MESSAGE ADD,FL->34 + FIELD 44->DETAF +END + +NUMERO 35 +BEGIN + KEY "DETRAZIONE PER LAVORO DIPENDENTE" + PROMPT 120 9 "" + PICTURE "###.###.###^^^" + MESSAGE ADD,FL->35 + FIELD 44->DETLD +END + +NUMERO 36 +BEGIN + KEY "DETRAZIONE PER ONERI" + PROMPT 11 11 "" + PICTURE "###.###.###^^^" + MESSAGE ADD,FL->36 + FIELD 44->DETO +END + +NUMERO 37 +BEGIN + KEY "TOTALE DETRAZIONI" + PROMPT 26 11 "" + PICTURE "###.###.###^^^" + MESSAGE ADD,FL->37 + FIELD 44->TOTDET +END + +NUMERO 38 +BEGIN + KEY "INCREMENTO DETRAZIONI PER FIGLI A CARICO" + PROMPT 42 11 "" + PICTURE "###.###.###^^^" + MESSAGE ADD,FL->38 + FIELD 44->INCDETFC +END + +NUMERO 39 +BEGIN + KEY "RITENUTE OPERATE DA TERZI" + PROMPT 58 11 "" + PICTURE "###.###.###^^^" + MESSAGE ADD,FL->39 + FIELD 44->AMRIOT +END + +NUMERO 40 +BEGIN + KEY "RITENUTE OPERATE DAL DATORE DI LAVORO" + PROMPT 73 11 "" + PICTURE "###.###.###^^^" + MESSAGE ADD,FL->40 + FIELD 44->AMRIODL +END + +NUMERO 41 +BEGIN + KEY "ECCEDENZA RITENUTE RIMBORSATE" + PROMPT 89 11 "" + PICTURE "###.###.###^^^" + MESSAGE ADD,FL->41 + FIELD 44->ECCRITRIMB +END + +NUMERO 42 +BEGIN + KEY "AMMONTARE RITENUTE DOVUTE" + PROMPT 104 11 "" + PICTURE "###.###.###^^^" + MESSAGE ADD,FL->42 + FIELD 44->AMMRITDOV +END + +NUMERO 43 +BEGIN + KEY "EROGAZIONI PER SPESE SANITARIE" + PROMPT 120 11 "" + PICTURE "###.###.###^^^" + MESSAGE ADD,FL->43 + FIELD 44->ERSPSAN +END + +NUMERO 44 +BEGIN + KEY "PREMI DI ASSICURAZIONE VITA E INFORTUNI" + PROMPT 11 13 "" + PICTURE "###.###.###^^^" + MESSAGE ADD,FL->44 + FIELD 44->PRASSVI +END + +NUMERO 45 +BEGIN + KEY "CONTRIBUTI PER PREVIDENZA COMPLEMENTARE" + PROMPT 26 13 "" + PICTURE "###.###.###^^^" + MESSAGE ADD,FL->45 + FIELD 44->CONPRECO +END + +NUMERO 46 +BEGIN + KEY "CONTRIBUTI OBBLIGATORI A CARICO DEL DIPENDENTE" + PROMPT 42 13 "" + PICTURE "###.###.###^^^" + MESSAGE ADD,FL->46 + FIELD 44->COBBDIP2 +END + +NUMERO 47 +BEGIN + KEY "AMMONTARE IMPONIBILE" + PROMPT 58 13 "" + PICTURE "###.###.###^^^" + MESSAGE ADD,FL->47 + FIELD 44->AMMIMP +END + +NUMERO 48 +BEGIN + KEY "DETRAZIONI D'IMPOSTA" + PROMPT 73 13 "" + PICTURE "###.###.###^^^" + MESSAGE ADD,FL->48 + FIELD 44->DETIMPOS +END + +NUMERO 49 +BEGIN + KEY "RITENUTA ESEGUITA" + PROMPT 89 13 "" + PICTURE "###.###.###^^^" + MESSAGE ADD,FL->49 + FIELD 44->RITESEG +END + +NUMERO 50 +BEGIN + KEY "ALTRE SOMME E VALORI NON ASSOGGETTATI A RITENUTA" + PROMPT 104 13 "" + PICTURE "###.###.###^^^" + MESSAGE ADD,FL->50 + FIELD 44->SVNASSRI +END + +NUMERO 51 +BEGIN + KEY "AMMONTARE IMPONIBILE AI FINI DEL C.S.S.N." + PROMPT 120 13 "" + PICTURE "###.###.###^^^" + MESSAGE ADD,FL->51 + FIELD 44->AIFCSSN +END + +NUMERO 52 +BEGIN + KEY "CONGUAGLI NON EFFETTUATI" + PROMPT 11 15 "" + FIELD 44->CNEFF +END + +NUMERO 53 +BEGIN + KEY "IMPOSTA VERSATA" + PROMPT 19 15 "" + PICTURE "###.###.###^^^" + MESSAGE ADD,FL->53 + FIELD 44->IMPVER +END + +NUMERO 54 +BEGIN + KEY "INTERESSI" + PROMPT 33 15 "" + MESSAGE ADD,FL->54 + FIELD 44->INTERE +END + +NUMERO 55 +BEGIN + KEY "CONTRIBUTO VERSATO" + PROMPT 45 15 "" + PICTURE "###.###.###^^^" + MESSAGE ADD,FL->55 + FIELD 44->IMPVER2 +END + +NUMERO 56 +BEGIN + KEY "INTERESSI" + PROMPT 59 15 "" + PICTURE "###.###.###^^^" + MESSAGE ADD,FL->56 + FIELD 44->INTERE2 +END + +NUMERO 57 +BEGIN + KEY "CONGUAGLI NON EFFETTUATI" + PROMPT 72 15 "" + FIELD 44->CNEFF +END + +NUMERO 58 +BEGIN + KEY "RETTIFICA CONGUAGLIO" + PROMPT 80 15 "" + FIELD 44->RETCON +END + +NUMERO 59 +BEGIN + KEY "IMPOSTA RIMBORSATA" + PROMPT 89 15 "" + PICTURE "###.###.###^^^" + MESSAGE ADD,FL->59 + FIELD 44->IMPRIMB +END + +NUMERO 60 +BEGIN + KEY "IMPOSTA VERSATA" + PROMPT 103 15 "" + PICTURE "###.###.###^^^" + MESSAGE ADD,FL->60 + FIELD 44->IMPVER +END + +NUMERO 61 +BEGIN + KEY "INTERESSI" + PROMPT 120 15 "" + PICTURE "###.###.###^^^" + MESSAGE ADD,FL->61 + FIELD 44->INTIRPEF +END + +NUMERO 62 +BEGIN + KEY "IMPOSTA VERSATA" + PROMPT 11 17 "" + PICTURE "###.###.###^^^" + MESSAGE ADD,FL->62 + FIELD 44->IMPVER2 +END + +NUMERO 63 +BEGIN + KEY "INTERESSI" + PROMPT 23 17 "" + PICTURE "###.###.###^^^" + MESSAGE ADD,FL->63 + FIELD 44->INTER +END + +NUMERO 64 +BEGIN + KEY "SOPPRATTASSA SU IRPEF" + PROMPT 33 17 "" + PICTURE "###.###.###^^^" + MESSAGE ADD,FL->64 + FIELD 44->STSIRPEF +END + +NUMERO 65 +BEGIN + KEY "CONTRIBUTO A RIMBORSO" + PROMPT 45 17 "" + PICTURE "###.###.###^^^" + MESSAGE ADD,FL->65 + FIELD 44->CONRIMB +END + +NUMERO 66 +BEGIN + KEY "CONTRIBUTO VERSATO" + PROMPT 59 17 "" + PICTURE "###.###.###^^^" + MESSAGE ADD,FL->66 + FIELD 44->CONVER +END + +NUMERO 67 +BEGIN + KEY "INTERESSI" + PROMPT 73 17 "" + PICTURE "###.###.###^^^" + MESSAGE ADD,FL->67 + FIELD 44->INTER2 +END + +NUMERO 68 +BEGIN + KEY "CONTRIBUTO VERSATO" + PROMPT 87 17 "" + PICTURE "###.###.###^^^" + MESSAGE ADD,FL->68 + FIELD 44->CONVER2 +END + +NUMERO 69 +BEGIN + KEY "INTERESSI" + PROMPT 101 17 "" + PICTURE "###.###.###^^^" + MESSAGE ADD,FL->69 + FIELD 44->INTER3 +END + +NUMERO 70 +BEGIN + KEY "SOPPRATTASE SU C.S.S.N." + PROMPT 115 17 "" + PICTURE "###.###.###^^^" + MESSAGE ADD,FL->70 + FIELD 44->STSCSSN70 +END + +NUMERO 71 +BEGIN + KEY "MODELLO 730 NON LIQUIDABILE" + PROMPT 129 17 "" + FIELD 44->M730NLIQ +END + +STRINGA 72 +BEGIN + KEY "CODICE FISCALE CAAF" + PROMPT 11 19 "" + FIELD 104@->S1 +END + +STRINGA 73 +BEGIN + KEY "DENOMINAZIONE CAAF" + PROMPT 42 19 "" + FIELD 104@->S0 +END + +NUMERO 74 +BEGIN + KEY "NUMERO ISCRIZIONE ALBO" + PROMPT 120 19 "" + FIELD 104@->I1 +END + +END + +SECTION FOOTER LAST 12 + +NUMERO 20 +BEGIN + KEY "IN DENARO" + PROMPT 11 1 "" + PICTURE "###.###.###^^^" +END + +NUMERO 21 +BEGIN + KEY "IN NATURA" + PROMPT 26 1 "" + PICTURE "###.###.###^^^" +END + +NUMERO 22 +BEGIN + KEY "CONTRIBUTI OBBLIGATORI" + PROMPT 42 1 "" + PICTURE "###.###.###^^^" +END + +NUMERO 23 +BEGIN + KEY "COMPENSI NETTI" + PROMPT 58 1 "" + PICTURE "###.###.###^^^" +END + +NUMERO 24 +BEGIN + KEY "AMMONTARE LORDO" + PROMPT 73 1 "" + PICTURE "###.###.###^^^" +END + +NUMERO 25 +BEGIN + KEY "IND.ASS.CONTRIBUTI OBBLIGATORI" + PROMPT 89 1 "" + PICTURE "###.###.###^^^" +END + +NUMERO 26 +BEGIN + KEY "SOMME NON ASSOG. A RITEN." + PROMPT 103 1 "" + PICTURE "###.###.###^^^" +END + +NUMERO 27 +BEGIN + KEY "TOTALE IMPONIBILE" + PROMPT 120 1 "" + PICTURE "###.###.###^^^" +END + +NUMERO 28 +BEGIN + KEY "ASSEGNI ED INDENNITA'" + PROMPT 11 3 "" + PICTURE "###.###.###^^^" +END + +NUMERO 29 +BEGIN + KEY "AMMONTARE COMPENSI CORRISPOSTI DA TERZI" + PROMPT 26 3 "" + PICTURE "###.###.###^^^" +END + +NUMERO 30 +BEGIN + KEY "TOTALE IMPONIBILE 2" + PROMPT 42 3 "" + PICTURE "###.###.###^^^" +END + +NUMERO 31 +BEGIN + KEY "IMPOSTA CORRISPONDENTE" + PROMPT 58 3 "" + PICTURE "###.###.###^^^" +END + +NUMERO 32 +BEGIN + KEY "DETRAZIONE PER CONIUGE A CARICO" + PROMPT 73 3 "" + PICTURE "###.###.###^^^" +END + +NUMERO 33 +BEGIN + KEY "DETRAZIONE PER FIGLI A CARICO" + PROMPT 89 3 "" + PICTURE "###.###.###^^^" +END + +NUMERO 34 +BEGIN + KEY "DETRAZIONE PER ALTRI FAMILIARI A CARICO" + PROMPT 104 3 "" + PICTURE "###.###.###^^^" +END + +NUMERO 35 +BEGIN + KEY "DETRAZIONE PER LAVORO DIPENDENTE" + PROMPT 120 3 "" + PICTURE "###.###.###^^^" +END + +NUMERO 36 +BEGIN + KEY "DETRAZIONE PER ONERI" + PROMPT 11 5 "" + PICTURE "###.###.###^^^" +END + +NUMERO 37 +BEGIN + KEY "TOTALE DETRAZIONI" + PROMPT 26 5 "" + PICTURE "###.###.###^^^" +END + +NUMERO 38 +BEGIN + KEY "INCREMENTO DETRAZIONI PER FIGLI A CARICO" + PROMPT 42 5 "" + PICTURE "###.###.###^^^" +END + +NUMERO 39 +BEGIN + KEY "RITENUTE OPERATE DA TERZI" + PROMPT 58 5 "" + PICTURE "###.###.###^^^" +END + +NUMERO 40 +BEGIN + KEY "RITENUTE OPERATE DAL DATORE DI LAVORO" + PROMPT 73 5 "" + PICTURE "###.###.###^^^" +END + +NUMERO 41 +BEGIN + KEY "ECCEDENZA RITENUTE RIMBORSATE" + PROMPT 89 5 "" + PICTURE "###.###.###^^^" +END + +NUMERO 42 +BEGIN + KEY "AMMONTARE RITENUTE DOVUTE" + PROMPT 104 5 "" + PICTURE "###.###.###^^^" +END + +NUMERO 43 +BEGIN + KEY "EROGAZIONI PER SPESE SANITARIE" + PROMPT 120 5 "" + PICTURE "###.###.###^^^" +END + +NUMERO 44 +BEGIN + KEY "PREMI DI ASSICURAZIONE VITA E INFORTUNI" + PROMPT 11 7 "" + PICTURE "###.###.###^^^" +END + +NUMERO 45 +BEGIN + KEY "CONTRIBUTI PER PREVIDENZA COMPLEMENTARE" + PROMPT 26 7 "" + PICTURE "###.###.###^^^" +END + +NUMERO 46 +BEGIN + KEY "CONTRIBUTI OBBLIGATORI A CARICO DEL DIPENDENTE" + PROMPT 42 7 "" + PICTURE "###.###.###^^^" +END + +NUMERO 47 +BEGIN + KEY "AMMONTARE IMPONIBILE" + PROMPT 58 7 "" + PICTURE "###.###.###^^^" +END + +NUMERO 48 +BEGIN + KEY "DETRAZIONI D'IMPOSTA" + PROMPT 73 7 "" + PICTURE "###.###.###^^^" +END + +NUMERO 49 +BEGIN + KEY "RITENUTA ESEGUITA" + PROMPT 89 7 "" + PICTURE "###.###.###^^^" +END + +NUMERO 50 +BEGIN + KEY "ALTRE SOMME E VALORI NON ASSOGGETTATI A RITENUTA" + PROMPT 104 7 "" + PICTURE "###.###.###^^^" +END + +NUMERO 51 +BEGIN + KEY "AMMONTARE IMPONIBILE AI FINI DEL C.S.S.N." + PROMPT 120 7 "" + PICTURE "###.###.###^^^" +END + +NUMERO 53 +BEGIN + KEY "IMPOSTA VERSATA" + PROMPT 19 9 "" + PICTURE "###.###.###^^^" +END + +NUMERO 54 +BEGIN + KEY "INTERESSI" + PROMPT 33 9 "" + PICTURE "###.###.###^^^" +END + +NUMERO 55 +BEGIN + KEY "CONTRIBUTO VERSATO" + PROMPT 45 9 "" + PICTURE "###.###.###^^^" +END + +NUMERO 56 +BEGIN + KEY "INTERESSI" + PROMPT 59 9 "" + PICTURE "###.###.###^^^" +END + +NUMERO 59 +BEGIN + KEY "IMPOSTA RIMBORSATA" + PROMPT 89 9 "" + PICTURE "###.###.###^^^" +END + +NUMERO 60 +BEGIN + KEY "IMPOSTA VERSATA" + PROMPT 103 9 "" + PICTURE "###.###.###^^^" +END + +NUMERO 61 +BEGIN + KEY "INTERESSI" + PROMPT 120 9 "" + PICTURE "###.###.###^^^" +END + +NUMERO 62 +BEGIN + KEY "IMPOSTA VERSATA" + PROMPT 11 11 "" + PICTURE "###.###.###^^^" +END + +NUMERO 63 +BEGIN + KEY "INTERESSI" + PROMPT 23 11 "" + PICTURE "###.###.###^^^" +END + +NUMERO 64 +BEGIN + KEY "SOPPRATTASSA SU IRPEF" + PROMPT 33 11 "" + PICTURE "###.###.###^^^" +END + +NUMERO 65 +BEGIN + KEY "CONTRIBUTO A RIMBORSO" + PROMPT 45 11 "" + PICTURE "###.###.###^^^" +END + +NUMERO 66 +BEGIN + KEY "CONTRIBUTO VERSATO" + PROMPT 59 11 "" + PICTURE "###.###.###^^^" +END + +NUMERO 67 +BEGIN + KEY "INTERESSI" + PROMPT 73 11 "" + PICTURE "###.###.###^^^" +END + +NUMERO 68 +BEGIN + KEY "CONTRIBUTO VERSATO" + PROMPT 87 11 "" + PICTURE "###.###.###^^^" +END + +NUMERO 69 +BEGIN + KEY "INTERESSI" + PROMPT 101 11 "" + PICTURE "###.###.###^^^" +END + +NUMERO 70 +BEGIN + KEY "SOPPRATTASE SU C.S.S.N." + PROMPT 115 11 "" + PICTURE "###.###.###^^^" +END + +END + +END diff --git a/m770/77qa1.frm b/m770/77qa1.frm new file mode 100755 index 000000000..d51079050 --- /dev/null +++ b/m770/77qa1.frm @@ -0,0 +1,458 @@ +USE 56 +JOIN 45 INTO CODDITTA=CODDITTA CODDIP=CODDIP +JOIN %CAF ALIAS 104 INTO CODTAB=CODCAAF +JOIN 9 INTO CODDITTA=CODDITTA +JOIN 6 TO 9 ALIAS 106 INTO TIPOA=TIPOA CODANAGR=CODANAGR +JOIN 8 TO 106@ ALIAS 108 INTO CODANAGR=CODANAGR +JOIN 13 TO 108@ ALIAS 113 INTO COM==COMNASC +JOIN 13 TO 106@ ALIAS 213 INTO COM==COMRF(COMRES) + +END +DESCRIPTION +BEGIN + 56->* "Quadro A1 770" + 45->* "Anagrafica dei dipendenti" + 104@->* "Tabella CAAF" + 9->* "Ditte" + 106@->* "Anagrafica persone fisiche e giuridiche (ditta)" + 108@->* "Anagrafica persone fisiche (ditta)" + 113@->* "Comuni DITTA (nascita)" + 213@->* "Comuni DITTA (residenza)" +END + +GENERAL +BEGIN + OFFSET 0 0 + FONT "Courier New" + SIZE 11 + CARATTERE "X" + INIZIO_POS 3 2 + FINE_POS 131 + GRID "+++++++++-|" +END + +SECTION HEADER FIRST 22 + +LISTA 1 +BEGIN + KEY "Tipo anagrafica" + FLAGS "H" + FIELD 106@->TIPOA + ITEM "F|Fisica" MESSAGE SHOW,1@|HIDE,2@ + ITEM "G|Giuridica" MESSAGE SHOW,2@|HIDE,1@ +END + +STRINGA 2 +BEGIN + KEY "CODICE FISCALE" + PROMPT 3 13 "" + FIELD 106@->COFI +END + +STRINGA 3 +BEGIN + KEY "RAGIONE SOCIALE" + PROMPT 40 13 "" + GROUP 2 + FIELD 106@->RAGSOC +END + +STRINGA 4 +BEGIN + KEY "COGNOME" + PROMPT 40 13 "" + GROUP 1 + FIELD 106@->RAGSOC[1,30] +END + +STRINGA 5 +BEGIN + KEY "NOME" + PROMPT 17 15 "" + GROUP 1 + FIELD 106@->RAGSOC[31,50] +END + +STRINGA 6 +BEGIN + KEY "SESSO" + PROMPT 59 15 "" + GROUP 1 + FIELD 108@->SESSO +END + +STRINGA 7 +BEGIN + KEY "DATA DI NASCITA" + PROMPT 64 15 "" + GROUP 1 + FIELD 108@->DATANASC +END + +STRINGA 8 +BEGIN + KEY "COMUNE DI NASCITA" + PROMPT 86 15 "" + GROUP 1 + FIELD 113@->DENCOM +END + +STRINGA 9 +BEGIN + KEY "PROV. DI NASCITA" + PROMPT 128 15 "" + GROUP 1 + FIELD 113@->PROVCOM +END + +STRINGA 10 +BEGIN + KEY "COMUNE DI RES.FISCALE" + PROMPT 17 17 "" + FIELD 213@->DENCOM +END + +STRINGA 11 +BEGIN + KEY "PROV DI RES.FISCALE" + PROMPT 59 17 "" + FIELD 213@->PROVCOM +END + +STRINGA 12 +BEGIN + KEY "VIA di RES." + PROMPT 68 17 "" + FIELD 106@->INDRF +END + +STRINGA 15 +BEGIN + KEY "NUM. CIVICO di RES." + PROMPT 104 17 "" + FIELD 106@->CIVRF +END + +STRINGA 16 +BEGIN + KEY "CAP" + PROMPT 125 17 "" + FIELD 106@->CAPRF +END + +STRINGA 13 +BEGIN + KEY "CODICE FISCALE DEL SOGGETTO DICHIARANTE" + PROMPT 87 20 "" +END + +NUMERO 14 +BEGIN + KEY "NUM. FOGLIO" + PROMPT 125 20 "" +END + +END + +SECTION BODY ODD 10 + +STRINGA 1 +BEGIN + KEY "COD.FIS" + PROMPT 11 1 "" + FIELD 45->CODFI +END + +STRINGA 2 +BEGIN + KEY "COGNOME" + PROMPT 43 1 "" + FIELD 45->COGNOME +END + +STRINGA 3 +BEGIN + KEY "NOME" + PROMPT 80 1 "" + FIELD 45->NOME +END + +DATA 4 +BEGIN + KEY "DATA NASCITA" + PROMPT 114 1 "" + FIELD 45->DATANA + FORMAT "1444-" +END + +STRINGA 5 +BEGIN + KEY "SESSO" + PROMPT 128 1 "" + FIELD 45->SESSO +END + +STRINGA 6 +BEGIN + KEY "COMUNE DI NASCITA" + PROMPT 11 3 "" + FIELD 45->COMUNENA +END + +STRINGA 7 +BEGIN + KEY "PROV DI NASCITA" + PROMPT 51 3 "" + FIELD 45->PROVNA +END + +NUMERO 8 +BEGIN + KEY "MESE DI RIFERIMENTO" + PROMPT 11 5 "" + FIELD 56->MESERIF +END + +NUMERO 9 +BEGIN + KEY "IMPOSTA RIMBORSATA" + PROMPT 23 5 "" + PICTURE "###.###.###^^^" + FIELD 56->IMPRIMB9 + MESSAGE ADD,FL->9 +END + +NUMERO 10 +BEGIN + KEY "IMPOSTA VERSATA" + PROMPT 42 5 "" + PICTURE "###.###.###^^^" + FIELD 56->IMPVERS10 + MESSAGE ADD,FL->10 +END + +NUMERO 11 +BEGIN + KEY "INTERESSI" + PROMPT 61 5 "" + PICTURE "###.###.###^^^" + FIELD 56->INTER11 + MESSAGE ADD,FL->11 +END + +NUMERO 12 +BEGIN + KEY "IMPOSTA VERSATA" + PROMPT 79 5 "" + PICTURE "###.###.###^^^" + FIELD 56->IMPVERS12 + MESSAGE ADD,FL->12 +END + +NUMERO 13 +BEGIN + KEY "INTERESSI" + PROMPT 98 5 "" + PICTURE "###.###.###^^^" + FIELD 56->INTER13 + MESSAGE ADD,FL->13 +END + +NUMERO 14 +BEGIN + KEY "SOPRATTASSA SU IRPEF" + PROMPT 117 5 "" + PICTURE "###.###.###^^^" + FIELD 56->STASSA14 + MESSAGE ADD,FL->14 +END + +NUMERO 15 +BEGIN + KEY "CONTRIBUTO A RIMBORSO" + PROMPT 11 7 "" + PICTURE "###.###.###^^^" + FIELD 56->CONTRIMB15 + MESSAGE ADD,FL->15 +END + +NUMERO 16 +BEGIN + KEY "CONTRIBUTO VERSATO" + PROMPT 28 7 "" + PICTURE "###.###.###^^^" + FIELD 56->CONTVERS16 + MESSAGE ADD,FL->16 +END + +NUMERO 17 +BEGIN + KEY "INTERESSI" + PROMPT 47 7 "" + PICTURE "###.###.###^^^" + FIELD 56->INTER17 + MESSAGE ADD,FL->17 +END + +NUMERO 18 +BEGIN + KEY "CONTRIBUTO VERSATO" + PROMPT 66 7 "" + PICTURE "###.###.###^^^" + FIELD 56->CONTVER18 + MESSAGE ADD,FL->18 +END + +NUMERO 19 +BEGIN + KEY "INTERESSI" + PROMPT 84 7 "" + PICTURE "###.###.###^^^" + FIELD 56->INTER19 + MESSAGE ADD,FL->19 +END + +NUMERO 20 +BEGIN + KEY "SOPRATTASSA SU IRPEF" + PROMPT 102 7 "" + PICTURE "###.###.###^^^" + FIELD 56->STASSA20 + MESSAGE ADD,FL->20 +END + +STRINGA 21 +BEGIN + KEY "CONGUAGLI NON EFFETTUATI" + PROMPT 118 7 "" + FIELD 56->CONNEFF21 +END + +STRINGA 22 +BEGIN + KEY "TIPO CONGUAGLIO" + PROMPT 125 7 "" + FIELD 56->TIPOCONG22 +END + +STRINGA 23 +BEGIN + KEY "CODICE FISCALE CAAF" + PROMPT 11 9 "" + FIELD 104@->S1 +END + +STRINGA 24 +BEGIN + KEY "DENOMINAZIONE CAAF" + PROMPT 42 9 "" + FIELD 104@->S0 +END + +NUMERO 25 +BEGIN + KEY "NUMERO ISCRIZIONE ALBO" + PROMPT 98 9 "" + FIELD 104@->I1 +END + +DATA 26 +BEGIN + KEY "DATA RICEZIONE MOD.730-5" + PROMPT 112 9 "" + FORMAT "1444-" + PICTURE "## ^ ##^^^^^" + FIELD 56->DATARIC26 +END + +END + +SECTION FOOTER LAST 4 + +NUMERO 9 +BEGIN + KEY "IMPOSTA RIMBORSATA" + PROMPT 23 1 "" + PICTURE "###.###.###^^^" +END + +NUMERO 10 +BEGIN + KEY "IMPOSTA VERSATA" + PROMPT 42 1 "" + PICTURE "###.###.###^^^" +END + +NUMERO 11 +BEGIN + KEY "INTERESSI" + PROMPT 61 1 "" + PICTURE "###.###.###^^^" +END + +NUMERO 12 +BEGIN + KEY "IMPOSTA VERSATA" + PROMPT 79 1 "" + PICTURE "###.###.###^^^" +END + +NUMERO 13 +BEGIN + KEY "INTERESSI" + PROMPT 98 1 "" + PICTURE "###.###.###^^^" +END + +NUMERO 14 +BEGIN + KEY "SOPRATTASSA SU IRPEF" + PROMPT 117 1 "" + PICTURE "###.###.###^^^" +END + +NUMERO 15 +BEGIN + KEY "CONTRIBUTO A RIMBORSO" + PROMPT 11 3 "" + PICTURE "###.###.###^^^" +END + +NUMERO 16 +BEGIN + KEY "CONTRIBUTO VERSATO" + PROMPT 28 3 "" + PICTURE "###.###.###^^^" +END + +NUMERO 17 +BEGIN + KEY "INTERESSI" + PROMPT 47 3 "" + PICTURE "###.###.###^^^" +END + +NUMERO 18 +BEGIN + KEY "CONTRIBUTO VERSATO" + PROMPT 66 3 "" + PICTURE "###.###.###^^^" +END + +NUMERO 19 +BEGIN + KEY "INTERESSI" + PROMPT 84 3 "" + PICTURE "###.###.###^^^" +END + +NUMERO 20 +BEGIN + KEY "SOPRATTASSA SU IRPEF" + PROMPT 102 3 "" + PICTURE "###.###.###^^^" +END + +END + +END diff --git a/m770/77stq.cpp b/m770/77stq.cpp index ccb95c9b8..611561506 100755 --- a/m770/77stq.cpp +++ b/m770/77stq.cpp @@ -57,7 +57,7 @@ typedef enum { STARTDOC, STARTDITTA, STARTPAGE, ENDDOC } ModulaserKey; // Quadro D HIDDEN const int QD_FORMLEN_PRIMA = 70; // 72 - 3 (3 e' la posizione della X di posiz.) HIDDEN const int QD_FORMLEN = 72; -HIDDEN const int POS_DITTA = 91; // Colonna del codice ditta a pie' di modulo +HIDDEN const int POS_DITTA = 120; // Colonna del codice ditta a pie' di modulo HIDDEN const int QD_PAGINE = 4; HIDDEN const int QD_RIGHE_PRIMA = 5; HIDDEN const int QD_RIGHE_SECONDA = 7; @@ -67,7 +67,7 @@ HIDDEN const int HEADER_SECONDA = 7; HIDDEN const int HEADER_TERZA = 8; // Sarebbero 9 col righello... HIDDEN const int HEADER_QUARTA = 14; // 15 col righello... -typedef enum { PRIMA=1, SECONDA, TERZA, QUARTA } PagineQD; +typedef enum { PRIMA=1, SECONDA, TERZA, QUARTA } PaginaQuadro; typedef enum { fisiche, nofisiche } TipoPagina; /////////////////////////////////////////////////////////////////////////////////////////// @@ -91,9 +91,9 @@ class TDicForm : public TForm protected: long _Items; // numero di record che hanno passato il filtro - PagineQD _PaginaCorrente; + PaginaQuadro _PaginaCorrente; - void set_curr_page(PagineQD pagina) { _PaginaCorrente = pagina; } + void set_curr_page(PaginaQuadro pagina) { _PaginaCorrente = pagina; } virtual void inc_curr_page(); virtual void next_page(TPrinter& pr); bool _modulaser; // se stampa per modulaser @@ -117,7 +117,7 @@ class TDicForm : public TForm virtual void stampa_totali(TPrinter& pr); virtual void aggiorna_totali(const char tipo); virtual void set_body(TPrinter& pr, const char tipo); - void StampaPagina(PagineQD PaginaCorrente, const bool StampaTotali, const long Fis, const long NoFis); + void StampaPagina(PaginaQuadro PaginaCorrente, const bool StampaTotali, const long Fis, const long NoFis); void posiziona(); void fill_page(TPrinter& pr, const int righe); void jump_to_line(TPrinter& pr, const int riga); @@ -151,7 +151,7 @@ class TDicForm : public TForm void set_num_foglio(const int foglio) { _num_foglio = foglio; } int num_foglio() const { return _num_foglio; } virtual void azzera_totali(); - PagineQD curr_page() const { return _PaginaCorrente; } + PaginaQuadro curr_page() const { return _PaginaCorrente; } TCursor& cur(); void set_progind(TProgind* prog) { _prog = prog; } @@ -581,13 +581,13 @@ bool TDicForm::PaginaPosizionamento() const void TDicForm::fill_page(TPrinter& pr, const int righe) { TPrintrow row; - PagineQD pagina = curr_page(); + PaginaQuadro pagina = curr_page(); // form feed if (righe < 0) { - const bool PrimaPagina = curr_page() == PRIMA; - int stop = PaginaPosizionamento() ? QD_FORMLEN_PRIMA : QD_FORMLEN; +// const bool PrimaPagina = curr_page() == PRIMA; + const int stop = PaginaPosizionamento() ? QD_FORMLEN_PRIMA : QD_FORMLEN; for (int i = _RigaCorr; i < stop; i++) { if (i == 0) @@ -597,29 +597,34 @@ void TDicForm::fill_page(TPrinter& pr, const int righe) put_modulaser(row, STARTPAGE, pagina); } // Sull'ultima riga metto il codice ditta - if (i == stop-1) + if (i == stop - 2) { if (_modulaser && EndJob() && curr_page() == QUARTA) put_modulaser(row, ENDDOC); TString16 ditta; ditta << _codditta; row.put(ditta, POS_DITTA); + pr.print(row); + row.reset(); } - pr.print(row); + else + pr.print(row); } _RigaCorr = 0; return; } - else // righe > 0 - for (int i=0; i < righe; i++) + else // righe > 0 { - if (i == 0 && _modulaser && !_GiaMessoStartPage[pagina]) - put_modulaser(row, STARTPAGE, pagina); - else - row.reset(); - pr.print(row); - _RigaCorr++; - } + for (int i=0; i < righe; i++) + { + if (i == 0 && _modulaser && !_GiaMessoStartPage[pagina]) + put_modulaser(row, STARTPAGE, pagina); + else + row.reset(); + pr.print(row); + _RigaCorr++; + } + } } void TDicForm::jump_to_line(TPrinter& pr, const int lin) @@ -631,7 +636,7 @@ void TDicForm::jump_to_line(TPrinter& pr, const int lin) void TDicForm::stampa_totali(TPrinter& pr) { - PagineQD PagCorr = curr_page(); + PaginaQuadro PagCorr = curr_page(); TPrint_section& foot = section('B', even_page); const char* pic = "############"; bool stampa = FALSE; @@ -727,7 +732,7 @@ const int NUM_RIGHE = 8; void TDicForm::stampa_testata(TPrinter& pr) { - TPrint_section& head = section('H', 1); + TPrint_section& head = section('H', first_page); const word r = head.height()-1; TPrintrow& head_row = head.row(r-1); @@ -776,7 +781,7 @@ void TDicForm::stampa_testata(TPrinter& pr) void TDicForm::next_page(TPrinter& pr) { - PagineQD PagCorr = curr_page(); + PaginaQuadro PagCorr = curr_page(); if (PagCorr >= TERZA) stampa_totali(pr); fill_page(pr, -1); // formfeed "adattato" @@ -1005,7 +1010,7 @@ void TQuadroG::inc_curr_page() void TQuadroG::next_page(TPrinter& pr) { - PagineQD PagCorr = curr_page(); + PaginaQuadro PagCorr = curr_page(); fill_page(pr, -1); inc_curr_page(); } @@ -1269,7 +1274,7 @@ class TDistintaG : public TQuadroG void TDistintaG::next_page(TPrinter& pr) { - PagineQD PagCorr = curr_page(); + PaginaQuadro PagCorr = curr_page(); // if (PagCorr == SECONDA) stampa_totali(pr); fill_page(pr, -1); // formfeed "adattato" @@ -1306,7 +1311,7 @@ void TDistintaG::aggiorna_totali(const char tipo) void TDistintaG::stampa_totali(TPrinter& pr) { - PagineQD PagCorr = curr_page(); + PaginaQuadro PagCorr = curr_page(); TPrint_section& foot = section('B', even_page); const word righe = foot.height(); const char* pic = "############"; @@ -2845,7 +2850,7 @@ void TQuadroF::aggiorna_totali(char tipoprosp, TRectype& r) void TQuadroF::next_page(TPrinter& pr) { - PagineQD PagCorr = curr_page(); + PaginaQuadro PagCorr = curr_page(); // if (PagCorr = SECONDA) stampa_totali(pr); fill_page(pr, -1); // formfeed "adattato" inc_curr_page(); @@ -3297,23 +3302,45 @@ protected: virtual void azzera_totali(); virtual void aggiorna_totali(const char) { } + virtual int elementi_pagina(PaginaQuadro p) const; + virtual int prima_riga(PaginaQuadro p) const; + virtual int riga_totali() const; + + void stampa_corpo(TPrinter& pr); void stampa_totali(TPrinter& pr); public: - TQuadroA(const char* form, const char* quadro) : TDicForm(form, quadro) {} virtual ~TQuadroA() {} }; void TQuadroA::azzera_totali() { - TPrint_section& totali = section('F', odd_page); + TPrint_section& totali = section('F', last_page); totali.reset(); } +void TQuadroA::stampa_corpo(TPrinter& pr) +{ + TPrint_section& body = section('B', odd_page); + body.reset(); + body.update(); + + const int body_righe = body.height(); + for (int i = 0; i < body_righe; i++) + { + pr.print(body.row(i)); + _RigaCorr++; + } + + if (usa_progind()) + progind()->addstatus(1); +} + + void TQuadroA::stampa_totali(TPrinter& pr) { - TPrint_section& totali = section('F', odd_page); + TPrint_section& totali = section('F', last_page); totali.update(); for (int i = 0; i < totali.items(); i++) { @@ -3328,6 +3355,22 @@ void TQuadroA::next_page(TPrinter& pr) inc_curr_page(); } +int TQuadroA::elementi_pagina(PaginaQuadro p) const +{ + const int n[4] = { 1, 4, 4, 2 }; + return n[p]; +} + +int TQuadroA::prima_riga(PaginaQuadro p) const +{ + return p == PRIMA ? 45 : 5; +} + +int TQuadroA::riga_totali() const +{ + return 45; +} + bool TQuadroA::print(const long codditta, const long NumFis, const long NumNoFis) { TCursor& cur = *cursor(); @@ -3338,7 +3381,7 @@ bool TQuadroA::print(const long codditta, const long NumFis, const long NumNoFis pr.formlen(QA_FORMLEN); - int percipienti = 0; // Numero di percipienti stampati in questa pagina + int elementi = 0; // Numero di elementi stampati in questa pagina bool stampato_ultimo = FALSE; bool stampati_totali = FALSE; @@ -3352,56 +3395,63 @@ bool TQuadroA::print(const long codditta, const long NumFis, const long NumNoFis if (_modulaser) ClearFlagModulaser(); + if (elementi == 0) + { + stampa_testata(pr); + jump_to_line(pr, prima_riga(PRIMA)); + } + if (!stampato_ultimo) { - if (cur.pos() == 0) - stampa_testata(pr); - jump_to_line(pr, 44); - set_body(pr, 'F'); + stampa_corpo(pr); stampato_ultimo = stampero_ultimo; } - next_page(pr); - percipienti = 0; + elementi++; + if (elementi >= elementi_pagina(PRIMA)) + { + next_page(pr); + elementi = 0; + } break; case SECONDA: case TERZA: if (!stampato_ultimo) { - if (percipienti == 0) - jump_to_line(pr, 4); - set_body(pr, 'F'); + if (elementi == 0) + jump_to_line(pr, prima_riga(_PaginaCorrente)); + stampa_corpo(pr); stampato_ultimo = stampero_ultimo; } - percipienti++; - if (percipienti == 3) + elementi++; + if (elementi >= elementi_pagina(_PaginaCorrente)) { next_page(pr); - percipienti = 0; + elementi = 0; } break; case QUARTA: if (!stampato_ultimo) { - if (percipienti == 0) - jump_to_line(pr, 4); + if (elementi == 0) + jump_to_line(pr, prima_riga(QUARTA)); - set_body(pr, 'F'); + stampa_corpo(pr); stampato_ultimo = stampero_ultimo; } - percipienti++; + elementi++; - if (percipienti == 2) + if (elementi >= elementi_pagina(QUARTA)) { if (stampato_ultimo) { - jump_to_line(pr, 39); + jump_to_line(pr, riga_totali()); stampa_totali(pr); stampati_totali = TRUE; } next_page(pr); - percipienti = 0; + elementi = 0; } break; default: @@ -3413,12 +3463,11 @@ bool TQuadroA::print(const long codditta, const long NumFis, const long NumNoFis return TRUE; } - class TStampaQuadroA : public TStampaQuadro { -private: +protected: TQuadroA* _form; - TRelation* _rel; +// TRelation* _rel; TSorted_cursor* _cur; protected: @@ -3430,13 +3479,15 @@ protected: virtual TCursor* get_cursor() const { return _cur; } public: - TStampaQuadroA(char livel) : TStampaQuadro("A", livel) { } + TStampaQuadroA(const char* quadro, char livel) : TStampaQuadro(quadro, livel) { } + virtual ~TStampaQuadroA() { } }; bool TStampaQuadroA::user_create() { _form = new TQuadroA("77QA", quadro()); +/* _rel = new TRelation(LF_QUAA); _rel->add(LF_NDITTE, "CODDITTA=CODDITTA", 1, LF_QUAA); _rel->add(LF_ANAG, "TIPOA=TIPOA|CODANAGR=CODANAGR", 1, LF_NDITTE, 106); @@ -3445,10 +3496,11 @@ bool TStampaQuadroA::user_create() _rel->add(LF_COMUNI, "COM==COMRF(COMRES)", 1, LF_ANAG, 213); _rel->add(LF_DIPEND, "CODDITTA=CODDITTA|CODDIP=CODDIP"); _rel->add("%CAF", "CODTAB=CODCAAF", 1, LF_QUAA, 104); +*/ TString sortkey(80); sortkey.format("CODDITTA|%d->COGNOME|%d->NOME|CODDIP", LF_DIPEND, LF_DIPEND); - _cur = new TSorted_cursor(_rel, sortkey); + _cur = new TSorted_cursor(_form->TForm::relation(), sortkey); return TRUE; } @@ -3456,12 +3508,65 @@ bool TStampaQuadroA::user_create() bool TStampaQuadroA::user_destroy() { delete _cur; - delete _rel; +// delete _rel; delete _form; return TRUE; } +///////////////////////////////////////////////////////////////////////////////// +// Quadro A1 +///////////////////////////////////////////////////////////////////////////////// + +class TQuadroA1 : public TQuadroA +{ +protected: + virtual int elementi_pagina(PaginaQuadro p) const; + virtual int prima_riga(PaginaQuadro p) const; + virtual int riga_totali() const; + +public: + TQuadroA1(const char* form, const char* quadro) : TQuadroA(form, quadro) { } + virtual ~TQuadroA1() { } +}; + +int TQuadroA1::elementi_pagina(PaginaQuadro p) const +{ + const int n[4] = { 3, 6, 6, 5 }; + return n[p]; +} + +int TQuadroA1::prima_riga(PaginaQuadro p) const +{ + return p == PRIMA ? 32 : 5; +} + +int TQuadroA1::riga_totali() const +{ + return 55; +} + +class TStampaQuadroA1 : public TStampaQuadroA +{ +protected: + virtual bool user_create(); + +public: + TStampaQuadroA1(const char* quadro, char livel) : TStampaQuadroA(quadro, livel) { } + virtual ~TStampaQuadroA1() { } +}; + +bool TStampaQuadroA1::user_create() +{ + _form = new TQuadroA1("77QA1", quadro()); + + TString sortkey(80); + sortkey.format("CODDITTA|%d->COGNOME|%d->NOME|CODDIP", LF_DIPEND, LF_DIPEND); + _cur = new TSorted_cursor(_form->TForm::relation(), sortkey); + + return TRUE; +} + ///////////////////////////////////////////////////////////////////////////////// // // MAIN @@ -3484,9 +3589,13 @@ int stampa_quadro(int argc, char* argv[]) { app = new TStampaQuadroD(quadro, livello); } - else if (quadro == "A") - { - app = new TStampaQuadroA(livello); + else if (quadro[0] == 'A') + { + switch (quadro[1] - '0') + { + case 1: app = new TStampaQuadroA1(quadro, livello); break; + default: app = new TStampaQuadroA(quadro, livello); break; + } } else if (quadro == "F") {