Stampa base a parte
git-svn-id: svn://10.65.10.50/trunk@3568 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
9657425c9e
commit
66c50f0249
@ -615,6 +615,9 @@ void TQuadroC_E2::leggi_sort(TProgind& p)
|
|||||||
if (!QuadroE() && !QuadroE1())
|
if (!QuadroE() && !QuadroE1())
|
||||||
qd.put("TOTALE", tot_comp + tot_somme);
|
qd.put("TOTALE", tot_comp + tot_somme);
|
||||||
|
|
||||||
|
if (QuadroC())
|
||||||
|
qd.put("TOTALE", tot_somme + tot_impo + rTotQCInps);
|
||||||
|
|
||||||
if (QuadroE1())
|
if (QuadroE1())
|
||||||
qd.put("NETTO", tot_comp - tot_rite);
|
qd.put("NETTO", tot_comp - tot_rite);
|
||||||
else
|
else
|
||||||
@ -681,6 +684,9 @@ void TQuadroC_E2::leggi_sort(TProgind& p)
|
|||||||
if (!QuadroE() && !QuadroE1())
|
if (!QuadroE() && !QuadroE1())
|
||||||
qd.put("TOTALE", tot_comp + tot_somme);
|
qd.put("TOTALE", tot_comp + tot_somme);
|
||||||
|
|
||||||
|
if (QuadroC())
|
||||||
|
qd.put("TOTALE", tot_somme + tot_impo + rTotQCInps);
|
||||||
|
|
||||||
if (QuadroE1())
|
if (QuadroE1())
|
||||||
qd.put("NETTO", tot_comp - tot_rite);
|
qd.put("NETTO", tot_comp - tot_rite);
|
||||||
else
|
else
|
||||||
|
@ -176,7 +176,7 @@ BEGIN
|
|||||||
FIELD LF_QUAC->IMPONIBILE
|
FIELD LF_QUAC->IMPONIBILE
|
||||||
PICTURE "."
|
PICTURE "."
|
||||||
FLAGS "DR"
|
FLAGS "DR"
|
||||||
NUM_CALC {#F_TOTALE-#F_SOMME}
|
NUM_CALC {#F_TOTALE-#F_SOMME-#QCF_CONTSSN}
|
||||||
END
|
END
|
||||||
|
|
||||||
TEXT DLG_NULL
|
TEXT DLG_NULL
|
||||||
|
@ -31,8 +31,8 @@ END
|
|||||||
GENERAL
|
GENERAL
|
||||||
BEGIN
|
BEGIN
|
||||||
OFFSET 0 0
|
OFFSET 0 0
|
||||||
FONT "Courier 17cpi"
|
FONT "Roman 17cpi"
|
||||||
SIZE 10
|
SIZE 12
|
||||||
CA "X"
|
CA "X"
|
||||||
IN 3 2
|
IN 3 2
|
||||||
FI 131
|
FI 131
|
||||||
@ -229,7 +229,7 @@ END
|
|||||||
STRINGA 22
|
STRINGA 22
|
||||||
BEGIN
|
BEGIN
|
||||||
KEY "GRUPPO 2 - ALTRI SOGGETTI - CODICE FISCALE"
|
KEY "GRUPPO 2 - ALTRI SOGGETTI - CODICE FISCALE"
|
||||||
PROMPT 25 11 ""
|
PROMPT 25 12 ""
|
||||||
FIELD 116@->COFI
|
FIELD 116@->COFI
|
||||||
GROUP 2
|
GROUP 2
|
||||||
END
|
END
|
||||||
@ -237,7 +237,7 @@ END
|
|||||||
LISTA 23
|
LISTA 23
|
||||||
BEGIN
|
BEGIN
|
||||||
KEY "REG.A.STATUTO.SPECIALE VA - SA -SI"
|
KEY "REG.A.STATUTO.SPECIALE VA - SA -SI"
|
||||||
PROMPT 95 11 ""
|
PROMPT 95 12 ""
|
||||||
ITEM "|"
|
ITEM "|"
|
||||||
ITEM "1|X"
|
ITEM "1|X"
|
||||||
ITEM "2|"
|
ITEM "2|"
|
||||||
@ -249,7 +249,7 @@ END
|
|||||||
LISTA 24
|
LISTA 24
|
||||||
BEGIN
|
BEGIN
|
||||||
KEY "REG.A.STATUTO.SPECIALE VA - SA -SI"
|
KEY "REG.A.STATUTO.SPECIALE VA - SA -SI"
|
||||||
PROMPT 103 11 ""
|
PROMPT 103 12 ""
|
||||||
ITEM "|"
|
ITEM "|"
|
||||||
ITEM "1|"
|
ITEM "1|"
|
||||||
ITEM "2|X"
|
ITEM "2|X"
|
||||||
@ -261,7 +261,7 @@ END
|
|||||||
LISTA 25
|
LISTA 25
|
||||||
BEGIN
|
BEGIN
|
||||||
KEY "REG.A.STATUTO.SPECIALE VA - SA -SI"
|
KEY "REG.A.STATUTO.SPECIALE VA - SA -SI"
|
||||||
PROMPT 112 11 ""
|
PROMPT 112 12 ""
|
||||||
ITEM "|"
|
ITEM "|"
|
||||||
ITEM "1|"
|
ITEM "1|"
|
||||||
ITEM "2|"
|
ITEM "2|"
|
||||||
@ -273,7 +273,7 @@ END
|
|||||||
STRINGA 26
|
STRINGA 26
|
||||||
BEGIN
|
BEGIN
|
||||||
KEY "CODICE ATTIVITA"
|
KEY "CODICE ATTIVITA"
|
||||||
PROMPT 121 11 ""
|
PROMPT 121 12 ""
|
||||||
FIELD 9->CODATTPREV
|
FIELD 9->CODATTPREV
|
||||||
GROUP 2
|
GROUP 2
|
||||||
END
|
END
|
||||||
@ -281,7 +281,7 @@ END
|
|||||||
STRINGA 27
|
STRINGA 27
|
||||||
BEGIN
|
BEGIN
|
||||||
KEY "RAGIONE SOCIALE"
|
KEY "RAGIONE SOCIALE"
|
||||||
PROMPT 25 13 ""
|
PROMPT 25 14 ""
|
||||||
FIELD 116@->RAGSOC
|
FIELD 116@->RAGSOC
|
||||||
GROUP 2
|
GROUP 2
|
||||||
END
|
END
|
||||||
@ -289,7 +289,7 @@ END
|
|||||||
STRINGA 28
|
STRINGA 28
|
||||||
BEGIN
|
BEGIN
|
||||||
KEY "EVENTI ECCEZIONALI"
|
KEY "EVENTI ECCEZIONALI"
|
||||||
PROMPT 128 13 ""
|
PROMPT 128 14 ""
|
||||||
FIELD 116@->EVECC
|
FIELD 116@->EVECC
|
||||||
GROUP 2
|
GROUP 2
|
||||||
END
|
END
|
||||||
@ -303,7 +303,7 @@ END
|
|||||||
STRING 30
|
STRING 30
|
||||||
BEGIN
|
BEGIN
|
||||||
KEY "COMUNE SEDE LEGALE "
|
KEY "COMUNE SEDE LEGALE "
|
||||||
PROMPT 39 15 ""
|
PROMPT 41 16 ""
|
||||||
FIELD 413@->DENCOM
|
FIELD 413@->DENCOM
|
||||||
GROUP 2
|
GROUP 2
|
||||||
END
|
END
|
||||||
@ -311,7 +311,7 @@ END
|
|||||||
STRING 31
|
STRING 31
|
||||||
BEGIN
|
BEGIN
|
||||||
KEY "PROV. SEDE LEGALE"
|
KEY "PROV. SEDE LEGALE"
|
||||||
PROMPT 119 15 ""
|
PROMPT 122 16 ""
|
||||||
FIELD 413@->PROVCOM
|
FIELD 413@->PROVCOM
|
||||||
GROUP 2
|
GROUP 2
|
||||||
END
|
END
|
||||||
@ -319,7 +319,7 @@ END
|
|||||||
STRING 32
|
STRING 32
|
||||||
BEGIN
|
BEGIN
|
||||||
KEY "VIA SEDE LEGALE"
|
KEY "VIA SEDE LEGALE"
|
||||||
PROMPT 39 17 ""
|
PROMPT 39 19 ""
|
||||||
FIELD 216@->INDRES[1,18]
|
FIELD 216@->INDRES[1,18]
|
||||||
FLAGS "H"
|
FLAGS "H"
|
||||||
END
|
END
|
||||||
@ -336,14 +336,14 @@ END
|
|||||||
STRING 34
|
STRING 34
|
||||||
BEGIN
|
BEGIN
|
||||||
KEY "VIA SEDE LEGALE"
|
KEY "VIA SEDE LEGALE"
|
||||||
PROMPT 39 17 ""
|
PROMPT 39 19 ""
|
||||||
GROUP 2
|
GROUP 2
|
||||||
END
|
END
|
||||||
|
|
||||||
STRINGA 35
|
STRINGA 35
|
||||||
BEGIN
|
BEGIN
|
||||||
KEY "CAP"
|
KEY "CAP"
|
||||||
PROMPT 119 17 ""
|
PROMPT 119 19 ""
|
||||||
FIELD 116@->CAPRF
|
FIELD 116@->CAPRF
|
||||||
FIELD 116@->CAPRES
|
FIELD 116@->CAPRES
|
||||||
GROUP 2
|
GROUP 2
|
||||||
@ -352,7 +352,7 @@ END
|
|||||||
STRING 36
|
STRING 36
|
||||||
BEGIN
|
BEGIN
|
||||||
KEY "COMUNE DI RESIDENZA FISCALE"
|
KEY "COMUNE DI RESIDENZA FISCALE"
|
||||||
PROMPT 39 19 ""
|
PROMPT 41 20 ""
|
||||||
FIELD 413@->DENCOM
|
FIELD 413@->DENCOM
|
||||||
GROUP 2
|
GROUP 2
|
||||||
END
|
END
|
||||||
@ -360,7 +360,7 @@ END
|
|||||||
STRING 37
|
STRING 37
|
||||||
BEGIN
|
BEGIN
|
||||||
KEY "PROV. RESIDENZA FISCALE"
|
KEY "PROV. RESIDENZA FISCALE"
|
||||||
PROMPT 119 19 ""
|
PROMPT 121 20 ""
|
||||||
FIELD 413@->PROVCOM
|
FIELD 413@->PROVCOM
|
||||||
GROUP 2
|
GROUP 2
|
||||||
END
|
END
|
||||||
@ -368,7 +368,7 @@ END
|
|||||||
STRING 38
|
STRING 38
|
||||||
BEGIN
|
BEGIN
|
||||||
KEY "VIA RESIDENZA FISCALE"
|
KEY "VIA RESIDENZA FISCALE"
|
||||||
PROMPT 39 21 ""
|
PROMPT 39 22 ""
|
||||||
FIELD 216@->INDRES[1,18]
|
FIELD 216@->INDRES[1,18]
|
||||||
FLAGS "H"
|
FLAGS "H"
|
||||||
MESSAGE COPY,12
|
MESSAGE COPY,12
|
||||||
@ -386,14 +386,14 @@ END
|
|||||||
STRING 40
|
STRING 40
|
||||||
BEGIN
|
BEGIN
|
||||||
KEY "VIA RES FISCALE"
|
KEY "VIA RES FISCALE"
|
||||||
PROMPT 39 21 ""
|
PROMPT 39 22 ""
|
||||||
GROUP 2
|
GROUP 2
|
||||||
END
|
END
|
||||||
|
|
||||||
STRINGA 41
|
STRINGA 41
|
||||||
BEGIN
|
BEGIN
|
||||||
KEY "CAP"
|
KEY "CAP"
|
||||||
PROMPT 119 21 ""
|
PROMPT 121 22 ""
|
||||||
FIELD 116@->CAPRF
|
FIELD 116@->CAPRF
|
||||||
GROUP 2
|
GROUP 2
|
||||||
END
|
END
|
||||||
@ -401,7 +401,7 @@ END
|
|||||||
STRINGA 42
|
STRINGA 42
|
||||||
BEGIN
|
BEGIN
|
||||||
KEY "DATA APP.BILANCIO gg-mm-aaa"
|
KEY "DATA APP.BILANCIO gg-mm-aaa"
|
||||||
PROMPT 29 23 ""
|
PROMPT 29 25 ""
|
||||||
PICTURE "## ^ ##^^###"
|
PICTURE "## ^ ##^^###"
|
||||||
GROUP 2
|
GROUP 2
|
||||||
END
|
END
|
||||||
@ -409,7 +409,7 @@ END
|
|||||||
STRINGA 43
|
STRINGA 43
|
||||||
BEGIN
|
BEGIN
|
||||||
KEY "Termine per APP.BILANCIO gg-mm-aaa"
|
KEY "Termine per APP.BILANCIO gg-mm-aaa"
|
||||||
PROMPT 88 23 ""
|
PROMPT 88 25 ""
|
||||||
PICTURE "## ^ ##^^###"
|
PICTURE "## ^ ##^^###"
|
||||||
GROUP 2
|
GROUP 2
|
||||||
END
|
END
|
||||||
@ -417,7 +417,7 @@ END
|
|||||||
STRINGA 48
|
STRINGA 48
|
||||||
BEGIN
|
BEGIN
|
||||||
KEY "STATO"
|
KEY "STATO"
|
||||||
PROMPT 29 25 ""
|
PROMPT 31 26 ""
|
||||||
FIELD 7->STATOSOC
|
FIELD 7->STATOSOC
|
||||||
GROUP 2
|
GROUP 2
|
||||||
END
|
END
|
||||||
@ -425,7 +425,7 @@ END
|
|||||||
STRINGA 49
|
STRINGA 49
|
||||||
BEGIN
|
BEGIN
|
||||||
KEY "NAT.GIURIDICA"
|
KEY "NAT.GIURIDICA"
|
||||||
PROMPT 49 25 ""
|
PROMPT 51 26 ""
|
||||||
FIELD 7->NATGIU
|
FIELD 7->NATGIU
|
||||||
GROUP 2
|
GROUP 2
|
||||||
END
|
END
|
||||||
@ -433,7 +433,7 @@ END
|
|||||||
STRINGA 50
|
STRINGA 50
|
||||||
BEGIN
|
BEGIN
|
||||||
KEY "SITUAZIONE"
|
KEY "SITUAZIONE"
|
||||||
PROMPT 73 25 ""
|
PROMPT 75 26 ""
|
||||||
FIELD 7->SITSOC
|
FIELD 7->SITSOC
|
||||||
GROUP 2
|
GROUP 2
|
||||||
END
|
END
|
||||||
@ -441,14 +441,14 @@ END
|
|||||||
STRINGA 51
|
STRINGA 51
|
||||||
BEGIN
|
BEGIN
|
||||||
KEY "TELEFONO - PREF"
|
KEY "TELEFONO - PREF"
|
||||||
PROMPT 99 25 ""
|
PROMPT 99 27 ""
|
||||||
GROUP 2
|
GROUP 2
|
||||||
END
|
END
|
||||||
|
|
||||||
STRINGA 52
|
STRINGA 52
|
||||||
BEGIN
|
BEGIN
|
||||||
KEY "TELEFONO - NUMERO"
|
KEY "TELEFONO - NUMERO"
|
||||||
PROMPT 110 25 ""
|
PROMPT 110 27 ""
|
||||||
GROUP 2
|
GROUP 2
|
||||||
END
|
END
|
||||||
|
|
||||||
|
@ -11,8 +11,8 @@ END
|
|||||||
GENERAL
|
GENERAL
|
||||||
BEGIN
|
BEGIN
|
||||||
OFFSET 0 0
|
OFFSET 0 0
|
||||||
FONT "Courier 17cpi"
|
FONT "Roman 17cpi"
|
||||||
SIZE 10
|
SIZE 12
|
||||||
CA "X"
|
CA "X"
|
||||||
IN 3 2
|
IN 3 2
|
||||||
FI 131
|
FI 131
|
||||||
|
@ -11,8 +11,8 @@ END
|
|||||||
GENERAL
|
GENERAL
|
||||||
BEGIN
|
BEGIN
|
||||||
OFFSET 0 0
|
OFFSET 0 0
|
||||||
FONT "Courier 17cpi"
|
FONT "Roman 17cpi"
|
||||||
SIZE 10
|
SIZE 12
|
||||||
CA "X"
|
CA "X"
|
||||||
IN 3 2
|
IN 3 2
|
||||||
FI 131
|
FI 131
|
||||||
|
@ -28,8 +28,8 @@ END
|
|||||||
GENERAL
|
GENERAL
|
||||||
BEGIN
|
BEGIN
|
||||||
OFFSET 0 0
|
OFFSET 0 0
|
||||||
FONT "Courier 17cpi"
|
FONT "Roman 17cpi"
|
||||||
SIZE 10
|
SIZE 12
|
||||||
CA "X"
|
CA "X"
|
||||||
IN 3 2
|
IN 3 2
|
||||||
FI 131
|
FI 131
|
||||||
|
@ -24,8 +24,8 @@ END
|
|||||||
GENERAL
|
GENERAL
|
||||||
BEGIN
|
BEGIN
|
||||||
OFFSET 0 0
|
OFFSET 0 0
|
||||||
FONT "Courier New"
|
FONT "Roman 17cpi"
|
||||||
SIZE 11
|
SIZE 12
|
||||||
CARATTERE "X"
|
CARATTERE "X"
|
||||||
INIZIO_POS 3 2
|
INIZIO_POS 3 2
|
||||||
FINE_POS 131
|
FINE_POS 131
|
||||||
|
@ -22,7 +22,7 @@ BEGIN
|
|||||||
PROMPT 1 1 "@bDipendente"
|
PROMPT 1 1 "@bDipendente"
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMBER QBF_CODDIP 5
|
NUMBER QBF_CODDIP 6
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 17 1 ""
|
PROMPT 17 1 ""
|
||||||
USE LF_DIPEND KEY 1
|
USE LF_DIPEND KEY 1
|
||||||
@ -372,7 +372,7 @@ END
|
|||||||
NUMBER QBF_PERCABB2 15
|
NUMBER QBF_PERCABB2 15
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT COLTFRB3 RIGTFRB2 ""
|
PROMPT COLTFRB3 RIGTFRB2 ""
|
||||||
FIELD LF_QUAB->PERCABB2
|
FIELD LF_QUAB->ABBATT
|
||||||
PICTURE "."
|
PICTURE "."
|
||||||
GROUP GROUP_ALL
|
GROUP GROUP_ALL
|
||||||
END
|
END
|
||||||
|
277
m770/77ql.frm
Executable file
277
m770/77ql.frm
Executable file
@ -0,0 +1,277 @@
|
|||||||
|
USE 42
|
||||||
|
JOIN 37 INTO CODDITTA=CODDITTA
|
||||||
|
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
|
||||||
|
36->* "Base 770"
|
||||||
|
37->* "Basebis 770"
|
||||||
|
END
|
||||||
|
|
||||||
|
GENERAL
|
||||||
|
BEGIN
|
||||||
|
OFFSET 0 0
|
||||||
|
FONT "Courier 17cpi"
|
||||||
|
SIZE 10
|
||||||
|
CA "X"
|
||||||
|
IN 3 2
|
||||||
|
FI 131
|
||||||
|
END
|
||||||
|
|
||||||
|
SECTION HEADER FIRST 18
|
||||||
|
|
||||||
|
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 21 10 ""
|
||||||
|
FIELD 106@->COFI
|
||||||
|
END
|
||||||
|
|
||||||
|
STRINGA 3
|
||||||
|
BEGIN
|
||||||
|
KEY "RAGIONE SOCIALE"
|
||||||
|
PROMPT 51 10 ""
|
||||||
|
GROUP 2
|
||||||
|
FIELD 106@->RAGSOC
|
||||||
|
END
|
||||||
|
|
||||||
|
STRINGA 4
|
||||||
|
BEGIN
|
||||||
|
KEY "COGNOME"
|
||||||
|
PROMPT 51 10 ""
|
||||||
|
GROUP 1
|
||||||
|
FIELD 106@->RAGSOC[1,30]
|
||||||
|
END
|
||||||
|
|
||||||
|
STRINGA 5
|
||||||
|
BEGIN
|
||||||
|
KEY "NOME"
|
||||||
|
PROMPT 21 12 ""
|
||||||
|
GROUP 1
|
||||||
|
FIELD 106@->RAGSOC[31,50]
|
||||||
|
END
|
||||||
|
|
||||||
|
LISTA 6
|
||||||
|
BEGIN
|
||||||
|
KEY "SESSO M"
|
||||||
|
PROMPT 53 12 ""
|
||||||
|
ITEM "M|X"
|
||||||
|
ITEM "F|"
|
||||||
|
FIELD 108@->SESSO
|
||||||
|
GROUP 1
|
||||||
|
END
|
||||||
|
|
||||||
|
LISTA 7
|
||||||
|
BEGIN
|
||||||
|
KEY "SESSO F"
|
||||||
|
PROMPT 62 12 ""
|
||||||
|
ITEM "M|"
|
||||||
|
ITEM "F|X"
|
||||||
|
FIELD 108@->SESSO
|
||||||
|
GROUP 1
|
||||||
|
END
|
||||||
|
|
||||||
|
STRINGA 8
|
||||||
|
BEGIN
|
||||||
|
KEY "DATA DI NASCITA"
|
||||||
|
PROMPT 68 12 ""
|
||||||
|
GROUP 1
|
||||||
|
FIELD 108@->DATANASC
|
||||||
|
PICTURE "## ^ ## ^^###"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRINGA 9
|
||||||
|
BEGIN
|
||||||
|
KEY "COMUNE DI NASCITA"
|
||||||
|
PROMPT 85 12 ""
|
||||||
|
GROUP 1
|
||||||
|
FIELD 113@->DENCOM
|
||||||
|
END
|
||||||
|
|
||||||
|
STRINGA 10
|
||||||
|
BEGIN
|
||||||
|
KEY "PROV. DI NASCITA"
|
||||||
|
PROMPT 126 12 ""
|
||||||
|
GROUP 1
|
||||||
|
FIELD 113@->PROVCOM
|
||||||
|
END
|
||||||
|
|
||||||
|
STRINGA 11
|
||||||
|
BEGIN
|
||||||
|
KEY "CODICE FISCALE DEL SOGGETTO DICHIARANTE"
|
||||||
|
PROMPT 56 14 ""
|
||||||
|
END
|
||||||
|
|
||||||
|
STRINGA 12
|
||||||
|
BEGIN
|
||||||
|
KEY "Cod.Conc.1"
|
||||||
|
PROMPT 41 16 ""
|
||||||
|
FIELD 37->L0CCONC1
|
||||||
|
END
|
||||||
|
|
||||||
|
STRINGA 13
|
||||||
|
BEGIN
|
||||||
|
KEY "Cod.Conc.2"
|
||||||
|
PROMPT 53 16 ""
|
||||||
|
FIELD 37->L0CCONC2
|
||||||
|
END
|
||||||
|
|
||||||
|
STRINGA 14
|
||||||
|
BEGIN
|
||||||
|
KEY "Cod.Conc.3"
|
||||||
|
PROMPT 63 16 ""
|
||||||
|
FIELD 37->L0CCONC3
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMERO 15
|
||||||
|
BEGIN
|
||||||
|
KEY "Cod.Tes.1"
|
||||||
|
PROMPT 102 16 ""
|
||||||
|
FIELD 37->L0CTES1
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMERO 16
|
||||||
|
BEGIN
|
||||||
|
KEY "Cod.Tes.2"
|
||||||
|
PROMPT 114 16 ""
|
||||||
|
FIELD 37->L0CTES2
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMERO 17
|
||||||
|
BEGIN
|
||||||
|
KEY "Cod.Tes.3"
|
||||||
|
PROMPT 126 16 ""
|
||||||
|
FIELD 37->L0CTES3
|
||||||
|
END
|
||||||
|
|
||||||
|
END
|
||||||
|
|
||||||
|
SECTION BODY ODD 4
|
||||||
|
|
||||||
|
NUMERO 1
|
||||||
|
BEGIN
|
||||||
|
KEY "Mese rif."
|
||||||
|
PROMPT 26 1 ""
|
||||||
|
FIELD 42->QLMP
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMERO 2
|
||||||
|
BEGIN
|
||||||
|
KEY "Anno rif."
|
||||||
|
PROMPT 29 1 ""
|
||||||
|
FIELD 42->QLAP
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMERO 3
|
||||||
|
BEGIN
|
||||||
|
KEY "Rit.eff"
|
||||||
|
PROMPT 48 1 ""
|
||||||
|
FIELD 42->QLRITEFF
|
||||||
|
PICTURE "###.###.###.###^^^"
|
||||||
|
MESSAGE ADD,FL->1
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMERO 4
|
||||||
|
BEGIN
|
||||||
|
KEY "Rit.ver"
|
||||||
|
PROMPT 79 1 ""
|
||||||
|
FIELD 42->QLRITVER
|
||||||
|
PICTURE "###.###.###.###^^^"
|
||||||
|
MESSAGE ADD,FL->2
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMERO 5
|
||||||
|
BEGIN
|
||||||
|
KEY "RSS"
|
||||||
|
PROMPT 100 1 ""
|
||||||
|
FIELD 42->QLRSS
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMERO 6
|
||||||
|
BEGIN
|
||||||
|
KEY "Note"
|
||||||
|
PROMPT 111 1 ""
|
||||||
|
FIELD 42->QLNOTE
|
||||||
|
END
|
||||||
|
|
||||||
|
STRINGA 7
|
||||||
|
BEGIN
|
||||||
|
KEY "Luogo Vers."
|
||||||
|
PROMPT 28 3 ""
|
||||||
|
FIELD 42->QLLV
|
||||||
|
END
|
||||||
|
|
||||||
|
STRINGA 8
|
||||||
|
BEGIN
|
||||||
|
KEY "Tipo Vers."
|
||||||
|
PROMPT 36 3 ""
|
||||||
|
FIELD 42->QLTV
|
||||||
|
END
|
||||||
|
|
||||||
|
STRINGA 9
|
||||||
|
BEGIN
|
||||||
|
KEY "CodTrib"
|
||||||
|
PROMPT 47 3 ""
|
||||||
|
FIELD 42->QLCT
|
||||||
|
END
|
||||||
|
|
||||||
|
STRINGA 11
|
||||||
|
BEGIN
|
||||||
|
KEY "DATA VERS."
|
||||||
|
PROMPT 63 3 ""
|
||||||
|
FIELD 42->QLDV
|
||||||
|
PICTURE "## ^ ## ^####"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRINGA 12
|
||||||
|
BEGIN
|
||||||
|
KEY "SERIE"
|
||||||
|
PROMPT 84 3 ""
|
||||||
|
FIELD 42->QLSERIE
|
||||||
|
END
|
||||||
|
|
||||||
|
STRINGA 13
|
||||||
|
BEGIN
|
||||||
|
KEY "NUMERO"
|
||||||
|
PROMPT 99 3 ""
|
||||||
|
FIELD 42->QLNUMERO
|
||||||
|
END
|
||||||
|
|
||||||
|
END
|
||||||
|
|
||||||
|
SECTION FOOTER LAST 2
|
||||||
|
|
||||||
|
NUMERO 1
|
||||||
|
BEGIN
|
||||||
|
KEY "Tot.rit.eff"
|
||||||
|
PROMPT 51 1 ""
|
||||||
|
PICTURE "###.###.###.###^^^"
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMERO 2
|
||||||
|
BEGIN
|
||||||
|
KEY "Tot.rit.ver"
|
||||||
|
PROMPT 102 1 ""
|
||||||
|
PICTURE "###.###.###.###^^^"
|
||||||
|
END
|
||||||
|
|
||||||
|
END
|
||||||
|
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
|
688
m770/77qn.frm
Executable file
688
m770/77qn.frm
Executable file
@ -0,0 +1,688 @@
|
|||||||
|
USE 37
|
||||||
|
JOIN 72 INTO CODDITTA=CODDITTA
|
||||||
|
JOIN 73 TO 37 INTO CODDITTA=CODDITTA
|
||||||
|
JOIN 74 TO 37 INTO CODDITTA=CODDITTA
|
||||||
|
JOIN 75 TO 37 INTO CODDITTA=CODDITTA
|
||||||
|
JOIN 76 TO 37 INTO CODDITTA=CODDITTA
|
||||||
|
JOIN 77 TO 37 INTO CODDITTA=CODDITTA
|
||||||
|
JOIN 36 TO 37 INTO CODDITTA=CODDITTA
|
||||||
|
JOIN %CAF TO 36 ALIAS 104 INTO CODTAB==CODCAAF
|
||||||
|
JOIN 9 TO 36 INTO CODDITTA=CODDITTA
|
||||||
|
JOIN 6 TO 9 INTO TIPOA=TIPOA CODANAGR=CODANAGR
|
||||||
|
JOIN 8 TO 36 ALIAS 108 INTO CODANAGR==CODPRO
|
||||||
|
JOIN 6 TO 8 ALIAS 106 INTO TIPOA="F" CODANAGR=CODANAGR
|
||||||
|
END
|
||||||
|
|
||||||
|
DESCRIPTION
|
||||||
|
BEGIN
|
||||||
|
36->* "Base 770"
|
||||||
|
37->* "Basebis 770"
|
||||||
|
72->* "Quadro N"
|
||||||
|
73->* "Quadro P"
|
||||||
|
74->* "Quadro Q"
|
||||||
|
75->* "Quadro R"
|
||||||
|
76->* "Quadro S"
|
||||||
|
77->* "Quadro T"
|
||||||
|
END
|
||||||
|
|
||||||
|
GENERAL
|
||||||
|
BEGIN
|
||||||
|
OFFSET 0 0
|
||||||
|
FONT "Courier 17cpi"
|
||||||
|
SIZE 10
|
||||||
|
CA "X"
|
||||||
|
IN 3 2
|
||||||
|
FI 131
|
||||||
|
END
|
||||||
|
|
||||||
|
SECTION HEADER FIRST 7
|
||||||
|
|
||||||
|
NUMERO 1
|
||||||
|
BEGIN
|
||||||
|
KEY "M1"
|
||||||
|
PROMPT 61 1 ""
|
||||||
|
FIELD 37->ECCRIT12
|
||||||
|
PICTURE "###.###.###.###^^^"
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMERO 2
|
||||||
|
BEGIN
|
||||||
|
KEY "M2"
|
||||||
|
PROMPT 117 1 ""
|
||||||
|
FIELD 37->ECCRIT23
|
||||||
|
PICTURE "###.###.###.###^^^"
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMERO 3
|
||||||
|
BEGIN
|
||||||
|
KEY "M3"
|
||||||
|
PROMPT 61 3 ""
|
||||||
|
FIELD 37->CRIMPDL
|
||||||
|
PICTURE "###.###.###.###^^^"
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMERO 4
|
||||||
|
BEGIN
|
||||||
|
KEY "M4"
|
||||||
|
PROMPT 61 5 ""
|
||||||
|
FIELD 37->CRIMPIVA
|
||||||
|
PICTURE "###.###.###.###^^^"
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMERO 5
|
||||||
|
BEGIN
|
||||||
|
KEY "M5"
|
||||||
|
PROMPT 117 3 ""
|
||||||
|
FIELD 37->CRIMPRIT
|
||||||
|
PICTURE "###.###.###.###^^^"
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMERO 6
|
||||||
|
BEGIN
|
||||||
|
KEY "M6"
|
||||||
|
PROMPT 117 5 ""
|
||||||
|
FIELD 37->CRIMPRES
|
||||||
|
PICTURE "###.###.###.###^^^"
|
||||||
|
END
|
||||||
|
|
||||||
|
END
|
||||||
|
|
||||||
|
SECTION BODY ODD 1
|
||||||
|
|
||||||
|
NUMERO 1
|
||||||
|
BEGIN
|
||||||
|
KEY "MeseRif"
|
||||||
|
PROMPT 27 1 ""
|
||||||
|
FIELD 72->MESERIF
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMERO 2
|
||||||
|
BEGIN
|
||||||
|
KEY "AnnoRif"
|
||||||
|
PROMPT 31 1 ""
|
||||||
|
FIELD 72->ANNORIF
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMERO 3
|
||||||
|
BEGIN
|
||||||
|
KEY "imp. rimb"
|
||||||
|
PROMPT 39 1 ""
|
||||||
|
FIELD 72->IMPOSTA
|
||||||
|
PICTURE "###.###.###.###^^^"
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMERO 4
|
||||||
|
BEGIN
|
||||||
|
KEY "Compensi"
|
||||||
|
PROMPT 60 1 ""
|
||||||
|
FIELD 72->COMPENSI
|
||||||
|
PICTURE "###.###.###.###^^^"
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMERO 5
|
||||||
|
BEGIN
|
||||||
|
KEY "MeseRif"
|
||||||
|
PROMPT 85 1 ""
|
||||||
|
FIELD 72->MESERIF
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMERO 6
|
||||||
|
BEGIN
|
||||||
|
KEY "AnnoRif"
|
||||||
|
PROMPT 89 1 ""
|
||||||
|
FIELD 72->ANNORIF
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMERO 7
|
||||||
|
BEGIN
|
||||||
|
KEY "imp. rimb"
|
||||||
|
PROMPT 99 1 ""
|
||||||
|
FIELD 72->IMPOSTA
|
||||||
|
PICTURE "###.###.###.###^^^"
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMERO 8
|
||||||
|
BEGIN
|
||||||
|
KEY "Compensi"
|
||||||
|
PROMPT 119 1 ""
|
||||||
|
FIELD 72->COMPENSI
|
||||||
|
PICTURE "###.###.###.###^^^"
|
||||||
|
END
|
||||||
|
|
||||||
|
END
|
||||||
|
|
||||||
|
SECTION BODY EVEN 1
|
||||||
|
|
||||||
|
NUMERO 1
|
||||||
|
BEGIN
|
||||||
|
KEY "R - MeseRif"
|
||||||
|
PROMPT 27 1 ""
|
||||||
|
FIELD 75->MESERIF
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMERO 2
|
||||||
|
BEGIN
|
||||||
|
KEY "R - AnnoRif"
|
||||||
|
PROMPT 31 1 ""
|
||||||
|
FIELD 75->ANNORIF
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMERO 3
|
||||||
|
BEGIN
|
||||||
|
KEY "R - imp. rimb"
|
||||||
|
PROMPT 41 1 ""
|
||||||
|
FIELD 75->IMPRIMB
|
||||||
|
PICTURE "###.###.###.###^^^"
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMERO 4
|
||||||
|
BEGIN
|
||||||
|
KEY "R - Compensi"
|
||||||
|
PROMPT 62 1 ""
|
||||||
|
FIELD 75->COMPENSI
|
||||||
|
PICTURE "###.###.###.###^^^"
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMERO 5
|
||||||
|
BEGIN
|
||||||
|
KEY "R - MeseRif"
|
||||||
|
PROMPT 85 1 ""
|
||||||
|
FIELD 75->MESERIF
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMERO 6
|
||||||
|
BEGIN
|
||||||
|
KEY "R - AnnoRif"
|
||||||
|
PROMPT 89 1 ""
|
||||||
|
FIELD 75->ANNORIF
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMERO 7
|
||||||
|
BEGIN
|
||||||
|
KEY "R - imp. rimb"
|
||||||
|
PROMPT 99 1 ""
|
||||||
|
FIELD 75->IMPRIMB
|
||||||
|
PICTURE "###.###.###.###^^^"
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMERO 8
|
||||||
|
BEGIN
|
||||||
|
KEY "R - Compensi"
|
||||||
|
PROMPT 120 1 ""
|
||||||
|
FIELD 75->COMPENSI
|
||||||
|
PICTURE "###.###.###.###^^^"
|
||||||
|
END
|
||||||
|
|
||||||
|
END
|
||||||
|
|
||||||
|
SECTION HEADER EVEN 1
|
||||||
|
|
||||||
|
NUMERO 1
|
||||||
|
BEGIN
|
||||||
|
KEY "P Imp.versata"
|
||||||
|
PROMPT 24 1 ""
|
||||||
|
FIELD 73->IMPOSTA
|
||||||
|
PICTURE "###.###.###.###^^^"
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMERO 2
|
||||||
|
BEGIN
|
||||||
|
KEY "P Inter.lav.dip"
|
||||||
|
PROMPT 41 1 ""
|
||||||
|
FIELD 73->INTERDIP
|
||||||
|
PICTURE "###.###.###.###^^^"
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMERO 3
|
||||||
|
BEGIN
|
||||||
|
KEY "P Inter.dat.lav."
|
||||||
|
PROMPT 56 1 ""
|
||||||
|
FIELD 73->INTERDAT
|
||||||
|
PICTURE "###.###.###.###^^^"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRINGA 4
|
||||||
|
BEGIN
|
||||||
|
KEY "P Modalita' vers"
|
||||||
|
PROMPT 76 1 ""
|
||||||
|
FIELD 73->TIPOVERS
|
||||||
|
END
|
||||||
|
|
||||||
|
STRINGA 5
|
||||||
|
BEGIN
|
||||||
|
KEY "P Cod.trib"
|
||||||
|
PROMPT 82 1 ""
|
||||||
|
FIELD 73->CODTRIB
|
||||||
|
END
|
||||||
|
|
||||||
|
STRINGA 6
|
||||||
|
BEGIN
|
||||||
|
KEY "P DATA VERS."
|
||||||
|
PROMPT 89 1 ""
|
||||||
|
FIELD 73->DATAVERS
|
||||||
|
PICTURE "## ^ ## ^####"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRINGA 7
|
||||||
|
BEGIN
|
||||||
|
KEY "P Serie"
|
||||||
|
PROMPT 108 1 ""
|
||||||
|
FIELD 73->SERIE
|
||||||
|
END
|
||||||
|
|
||||||
|
STRINGA 8
|
||||||
|
BEGIN
|
||||||
|
KEY "P Numero"
|
||||||
|
PROMPT 117 1 ""
|
||||||
|
FIELD 73->NUMERO
|
||||||
|
END
|
||||||
|
|
||||||
|
END
|
||||||
|
|
||||||
|
SECTION HEADER ODD 1
|
||||||
|
|
||||||
|
NUMERO 1
|
||||||
|
BEGIN
|
||||||
|
KEY "S Imp.versata"
|
||||||
|
PROMPT 24 1 ""
|
||||||
|
FIELD 76->IMPOSTA
|
||||||
|
PICTURE "###.###.###.###^^^"
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMERO 2
|
||||||
|
BEGIN
|
||||||
|
KEY "S Inter.lav.dip"
|
||||||
|
PROMPT 41 1 ""
|
||||||
|
FIELD 76->INTERDIP
|
||||||
|
PICTURE "###.###.###.###^^^"
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMERO 3
|
||||||
|
BEGIN
|
||||||
|
KEY "S Inter.dat.lav."
|
||||||
|
PROMPT 56 1 ""
|
||||||
|
FIELD 76->INTERDAT
|
||||||
|
PICTURE "###.###.###.###^^^"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRINGA 4
|
||||||
|
BEGIN
|
||||||
|
KEY "S Modalita' vers"
|
||||||
|
PROMPT 76 1 ""
|
||||||
|
FIELD 73->TIPOVERS
|
||||||
|
END
|
||||||
|
|
||||||
|
STRINGA 5
|
||||||
|
BEGIN
|
||||||
|
KEY "S Cod.trib"
|
||||||
|
PROMPT 82 1 ""
|
||||||
|
FIELD 76->CODTRIB
|
||||||
|
END
|
||||||
|
|
||||||
|
STRINGA 6
|
||||||
|
BEGIN
|
||||||
|
KEY "S DATA VERS."
|
||||||
|
PROMPT 89 1 ""
|
||||||
|
FIELD 76->DATAVERS
|
||||||
|
PICTURE "## ^ ## ^####"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRINGA 7
|
||||||
|
BEGIN
|
||||||
|
KEY "S Serie"
|
||||||
|
PROMPT 108 1 ""
|
||||||
|
FIELD 76->SERIE
|
||||||
|
END
|
||||||
|
|
||||||
|
STRINGA 8
|
||||||
|
BEGIN
|
||||||
|
KEY "S Numero"
|
||||||
|
PROMPT 117 1 ""
|
||||||
|
FIELD 76->NUMERO
|
||||||
|
END
|
||||||
|
|
||||||
|
END
|
||||||
|
|
||||||
|
SECTION FOOTER EVEN 1
|
||||||
|
|
||||||
|
NUMERO 1
|
||||||
|
BEGIN
|
||||||
|
KEY "Q Mese paga"
|
||||||
|
PROMPT 27 1 ""
|
||||||
|
FIELD 74->MESEPAG
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMERO 2
|
||||||
|
BEGIN
|
||||||
|
KEY "Q Anno paga"
|
||||||
|
PROMPT 32 1 ""
|
||||||
|
FIELD 74->ANNOPAG
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMERO 3
|
||||||
|
BEGIN
|
||||||
|
KEY "Q Contr.versato"
|
||||||
|
PROMPT 41 1 ""
|
||||||
|
FIELD 74->CONTVERS
|
||||||
|
PICTURE "###.###.###.###^^^"
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMERO 4
|
||||||
|
BEGIN
|
||||||
|
KEY "Q Contr.rimborsati"
|
||||||
|
PROMPT 65 1 ""
|
||||||
|
FIELD 74->CONTRIMB
|
||||||
|
PICTURE "###.###.###.###^^^"
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMERO 5
|
||||||
|
BEGIN
|
||||||
|
KEY "Q Interes.e/o soprattasse"
|
||||||
|
PROMPT 94 1 ""
|
||||||
|
FIELD 74->INTERESSI
|
||||||
|
PICTURE "###.###.###.###^^^"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRINGA 6
|
||||||
|
BEGIN
|
||||||
|
KEY "Q Cod.Reg"
|
||||||
|
PROMPT 123 1 ""
|
||||||
|
FIELD 74->CODREG
|
||||||
|
END
|
||||||
|
|
||||||
|
END
|
||||||
|
|
||||||
|
SECTION FOOTER ODD 1
|
||||||
|
|
||||||
|
NUMERO 1
|
||||||
|
BEGIN
|
||||||
|
KEY "T Mese paga"
|
||||||
|
PROMPT 27 1 ""
|
||||||
|
FIELD 77->MESEPAG
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMERO 2
|
||||||
|
BEGIN
|
||||||
|
KEY "T Anno paga"
|
||||||
|
PROMPT 32 1 ""
|
||||||
|
FIELD 77->ANNOPAG
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMERO 3
|
||||||
|
BEGIN
|
||||||
|
KEY "T Contr.versato"
|
||||||
|
PROMPT 41 1 ""
|
||||||
|
FIELD 77->CONTVERS
|
||||||
|
PICTURE "###.###.###.###^^^"
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMERO 4
|
||||||
|
BEGIN
|
||||||
|
KEY "T Contr.rimborsati"
|
||||||
|
PROMPT 65 1 ""
|
||||||
|
FIELD 77->CONTRIMB
|
||||||
|
PICTURE "###.###.###.###^^^"
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMERO 5
|
||||||
|
BEGIN
|
||||||
|
KEY "T Interes.e/o soprattasse"
|
||||||
|
PROMPT 94 1 ""
|
||||||
|
FIELD 77->INTERESSI
|
||||||
|
PICTURE "###.###.###.###^^^"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRINGA 6
|
||||||
|
BEGIN
|
||||||
|
KEY "T Cod.Reg"
|
||||||
|
PROMPT 123 1 ""
|
||||||
|
FIELD 77->CODREG
|
||||||
|
END
|
||||||
|
|
||||||
|
END
|
||||||
|
|
||||||
|
SECTION FOOTER FIRST 25
|
||||||
|
|
||||||
|
STRINGA 650
|
||||||
|
BEGIN
|
||||||
|
KEY "Quadro A"
|
||||||
|
PROMPT 19 3 ""
|
||||||
|
FIELD 37->QCOMP[1,1]
|
||||||
|
END
|
||||||
|
|
||||||
|
STRINGA 653
|
||||||
|
BEGIN
|
||||||
|
KEY "Quadro A3"
|
||||||
|
PROMPT 24 3 ""
|
||||||
|
FIELD 37->QCOMP[4,4]
|
||||||
|
END
|
||||||
|
|
||||||
|
STRINGA 660
|
||||||
|
BEGIN
|
||||||
|
KEY "Quadro B"
|
||||||
|
PROMPT 29 3 ""
|
||||||
|
FIELD 37->QCOMP[5,5]
|
||||||
|
END
|
||||||
|
|
||||||
|
STRINGA 661
|
||||||
|
BEGIN
|
||||||
|
KEY "Quadro B1"
|
||||||
|
PROMPT 34 3 ""
|
||||||
|
FIELD 37->QCOMP[6,6]
|
||||||
|
END
|
||||||
|
|
||||||
|
STRINGA 670
|
||||||
|
BEGIN
|
||||||
|
KEY "Quadro C"
|
||||||
|
PROMPT 39 3 ""
|
||||||
|
FIELD 37->QCOMP[7,7]
|
||||||
|
END
|
||||||
|
|
||||||
|
STRINGA 680
|
||||||
|
BEGIN
|
||||||
|
KEY "Quadro D"
|
||||||
|
PROMPT 44 3 ""
|
||||||
|
FIELD 37->QCOMP[8,8]
|
||||||
|
END
|
||||||
|
|
||||||
|
STRINGA 681
|
||||||
|
BEGIN
|
||||||
|
KEY "Quadro D1"
|
||||||
|
PROMPT 49 3 ""
|
||||||
|
FIELD 37->QCOMP[9,9]
|
||||||
|
END
|
||||||
|
|
||||||
|
STRINGA 690
|
||||||
|
BEGIN
|
||||||
|
KEY "Quadro E"
|
||||||
|
PROMPT 54 3 ""
|
||||||
|
FIELD 37->QCOMP[10,10]
|
||||||
|
END
|
||||||
|
|
||||||
|
STRINGA 691
|
||||||
|
BEGIN
|
||||||
|
KEY "Quadro E1"
|
||||||
|
PROMPT 60 3 ""
|
||||||
|
FIELD 37->QCOMP[11,11]
|
||||||
|
END
|
||||||
|
|
||||||
|
STRINGA 692
|
||||||
|
BEGIN
|
||||||
|
KEY "Quadro E2"
|
||||||
|
PROMPT 65 3 ""
|
||||||
|
FIELD 37->QCOMP[12,12]
|
||||||
|
END
|
||||||
|
|
||||||
|
STRINGA 700
|
||||||
|
BEGIN
|
||||||
|
KEY "Quadro F"
|
||||||
|
PROMPT 70 3 ""
|
||||||
|
FIELD 37->QCOMP[13,13]
|
||||||
|
END
|
||||||
|
|
||||||
|
STRINGA 701
|
||||||
|
BEGIN
|
||||||
|
KEY "Quadro F1"
|
||||||
|
PROMPT 75 3 ""
|
||||||
|
FIELD 37->QCOMP[14,14]
|
||||||
|
END
|
||||||
|
|
||||||
|
STRINGA 702
|
||||||
|
BEGIN
|
||||||
|
KEY "Quadro F2"
|
||||||
|
PROMPT 80 3 ""
|
||||||
|
FIELD 37->QCOMP[15,15]
|
||||||
|
END
|
||||||
|
|
||||||
|
STRINGA 710
|
||||||
|
BEGIN
|
||||||
|
KEY "Quadro G"
|
||||||
|
PROMPT 85 3 ""
|
||||||
|
FIELD 37->QCOMP[16,16]
|
||||||
|
END
|
||||||
|
|
||||||
|
STRINGA 711
|
||||||
|
BEGIN
|
||||||
|
KEY "Quadro G1"
|
||||||
|
PROMPT 90 3 ""
|
||||||
|
FIELD 37->QCOMP[17,17]
|
||||||
|
END
|
||||||
|
|
||||||
|
STRINGA 720
|
||||||
|
BEGIN
|
||||||
|
KEY "Quadro H"
|
||||||
|
PROMPT 95 3 ""
|
||||||
|
FIELD 37->QCOMP[18,18]
|
||||||
|
END
|
||||||
|
|
||||||
|
STRINGA 730
|
||||||
|
BEGIN
|
||||||
|
KEY "Quadro I"
|
||||||
|
PROMPT 100 3 ""
|
||||||
|
FIELD 37->QCOMP[19,19]
|
||||||
|
END
|
||||||
|
|
||||||
|
STRINGA 651
|
||||||
|
BEGIN
|
||||||
|
KEY "Quadro A1"
|
||||||
|
PROMPT 19 7 ""
|
||||||
|
FIELD 37->QCOMP[2,2]
|
||||||
|
END
|
||||||
|
|
||||||
|
STRINGA 652
|
||||||
|
BEGIN
|
||||||
|
KEY "Quadro A2"
|
||||||
|
PROMPT 24 7 ""
|
||||||
|
FIELD 37->QCOMP[3,3]
|
||||||
|
END
|
||||||
|
|
||||||
|
STRINGA 760
|
||||||
|
BEGIN
|
||||||
|
KEY "Quadro N"
|
||||||
|
PROMPT 29 7 ""
|
||||||
|
FIELD 37->QCOMP[20,20]
|
||||||
|
END
|
||||||
|
|
||||||
|
STRINGA 780
|
||||||
|
BEGIN
|
||||||
|
KEY "Quadro P"
|
||||||
|
PROMPT 35 7 ""
|
||||||
|
FIELD 37->QCOMP[21,21]
|
||||||
|
END
|
||||||
|
|
||||||
|
STRINGA 790
|
||||||
|
BEGIN
|
||||||
|
KEY "Quadro Q"
|
||||||
|
PROMPT 40 7 ""
|
||||||
|
FIELD 37->QCOMP[22,22]
|
||||||
|
END
|
||||||
|
|
||||||
|
STRINGA 800
|
||||||
|
BEGIN
|
||||||
|
KEY "Quadro R"
|
||||||
|
PROMPT 45 7 ""
|
||||||
|
FIELD 37->QCOMP[23,23]
|
||||||
|
END
|
||||||
|
|
||||||
|
STRINGA 810
|
||||||
|
BEGIN
|
||||||
|
KEY "Quadro S"
|
||||||
|
PROMPT 50 7 ""
|
||||||
|
FIELD 37->QCOMP[24,24]
|
||||||
|
END
|
||||||
|
|
||||||
|
STRINGA 820
|
||||||
|
BEGIN
|
||||||
|
KEY "Quadro T"
|
||||||
|
PROMPT 55 7 ""
|
||||||
|
FIELD 37->QCOMP[25,25]
|
||||||
|
END
|
||||||
|
|
||||||
|
STRINGA 821
|
||||||
|
BEGIN
|
||||||
|
PROMPT 80 9 ""
|
||||||
|
KEY "Numero quadri aggiuntivi"
|
||||||
|
FIELD 37->H0NQLAGG
|
||||||
|
END
|
||||||
|
|
||||||
|
STRINGA 822
|
||||||
|
BEGIN
|
||||||
|
PROMPT 72 11 ""
|
||||||
|
KEY "Numero quadri su supporto magnetico"
|
||||||
|
FIELD 37->NSUPPM
|
||||||
|
END
|
||||||
|
|
||||||
|
DATA 823
|
||||||
|
BEGIN
|
||||||
|
KEY "Data"
|
||||||
|
PROMPT 29 16 ""
|
||||||
|
END
|
||||||
|
|
||||||
|
STRINGA 824
|
||||||
|
BEGIN
|
||||||
|
KEY "Presidente"
|
||||||
|
PROMPT 51 15 ""
|
||||||
|
END
|
||||||
|
|
||||||
|
STRINGA 825
|
||||||
|
BEGIN
|
||||||
|
KEY "Dichiarante"
|
||||||
|
PROMPT 95 15 ""
|
||||||
|
FIELD 6->RAGSOC
|
||||||
|
END
|
||||||
|
|
||||||
|
STRINGA 826
|
||||||
|
BEGIN
|
||||||
|
KEY "CODICE FISCALE CAAF"
|
||||||
|
PROMPT 48 18 ""
|
||||||
|
FIELD 104@->S1
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMERO 827
|
||||||
|
BEGIN
|
||||||
|
KEY "NUMERO ISCRIZIONE ALBO"
|
||||||
|
PROMPT 122 18 ""
|
||||||
|
FIELD 104@->I1
|
||||||
|
PICTURE "#####"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRINGA 828
|
||||||
|
BEGIN
|
||||||
|
KEY "CODICE FISCALE PROF."
|
||||||
|
PROMPT 92 20 ""
|
||||||
|
FIELD 106@->COFI
|
||||||
|
END
|
||||||
|
|
||||||
|
STRINGA 829
|
||||||
|
BEGIN
|
||||||
|
KEY "FIRMA"
|
||||||
|
PROMPT 84 25 ""
|
||||||
|
FIELD 106@->RAGSOC
|
||||||
|
END
|
||||||
|
|
||||||
|
END
|
||||||
|
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
|
985
m770/77stba.cpp
Executable file
985
m770/77stba.cpp
Executable file
@ -0,0 +1,985 @@
|
|||||||
|
// Stampa base
|
||||||
|
#include "77stba.h"
|
||||||
|
|
||||||
|
TBase1::TBase1(const char* sNomeForm, const char* quadro) : TDicForm(sNomeForm, quadro)
|
||||||
|
{
|
||||||
|
r = new TRelation(LF_SOCI);
|
||||||
|
r->add(LF_ANAG, "TIPOA=TIPOASOC|CODANAGR=CODANAGRSO");
|
||||||
|
r->add(LF_ANAGFIS, "CODANAGR=CODANAGR",1, LF_ANAG);
|
||||||
|
r->add(LF_COMUNI, "COM=COMNASC",1,LF_ANAGFIS);
|
||||||
|
c = new TCursor(r);
|
||||||
|
_bAllegSoci=FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
TBase1::~TBase1()
|
||||||
|
{
|
||||||
|
delete r;
|
||||||
|
delete c;
|
||||||
|
}
|
||||||
|
|
||||||
|
void TBase1::stampa_corpo(TPrinter& pr)
|
||||||
|
{
|
||||||
|
TPrint_section& body = section('B', first_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);
|
||||||
|
}
|
||||||
|
|
||||||
|
// accetta solo quelli con qualifica=A,B o C
|
||||||
|
bool bFiltraSoci(const TRelation* rel)
|
||||||
|
{
|
||||||
|
TString sQual(3);
|
||||||
|
sQual = rel->lfile().get("RICQUAL");
|
||||||
|
return sQual=="A" || sQual=="B" || sQual=="C";
|
||||||
|
}
|
||||||
|
|
||||||
|
long TBase1::iContaSoci()
|
||||||
|
{
|
||||||
|
TString filtro(20);
|
||||||
|
filtro.format("CODDITTA=%d",_codditta);
|
||||||
|
c->setfilter(filtro);
|
||||||
|
c->set_filterfunction(bFiltraSoci);
|
||||||
|
(*c)=0L;
|
||||||
|
return c->items();
|
||||||
|
}
|
||||||
|
|
||||||
|
void TBase1::stampa_soci(TPrinter& pr)
|
||||||
|
{
|
||||||
|
TPrint_section& fut = section('F', first_page);
|
||||||
|
fut.reset();
|
||||||
|
jump_to_line(pr,_INIZIO_SOCI);
|
||||||
|
const long iSoci = iContaSoci();
|
||||||
|
if (iSoci > 11)
|
||||||
|
{
|
||||||
|
_bAllegSoci=TRUE;
|
||||||
|
TPrintrow& rg=fut.row(0);
|
||||||
|
rg.put("VEDERE ALLEGATO", 25);
|
||||||
|
pr.print(rg);
|
||||||
|
_RigaCorr++;
|
||||||
|
if (usa_progind()) progind()->addstatus(1);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
int i=0;
|
||||||
|
TString sRagsoc,sSesso,sComuneNa,sProvNa,sDataNa,sCodFis,sCodQua;
|
||||||
|
for ((*c)=0L; c->pos() < c->items(); ++(*c))
|
||||||
|
{
|
||||||
|
TPrintrow& rg=fut.row(i++);
|
||||||
|
sCodQua=c->file().get("RICQUAL");
|
||||||
|
sRagsoc=c->file(LF_ANAG).get("RAGSOC");
|
||||||
|
sCodFis=c->file(LF_ANAG).get("COFI");
|
||||||
|
sDataNa=c->file(LF_ANAGFIS).get("DATANASC");
|
||||||
|
sSesso=c->file(LF_ANAGFIS).get("SESSO");
|
||||||
|
sComuneNa=c->file(LF_COMUNI).get("DENCOM");
|
||||||
|
sProvNa=c->file(LF_COMUNI).get("PROVCOM");
|
||||||
|
fut.field(0).set(sRagsoc);
|
||||||
|
rg.put(sRagsoc,fut.field(0).x()-1);
|
||||||
|
fut.field(1).set(sSesso);
|
||||||
|
rg.put(sSesso,fut.field(1).x()-1);
|
||||||
|
fut.field(2).set(sComuneNa);
|
||||||
|
rg.put(sComuneNa,fut.field(2).x()-1);
|
||||||
|
fut.field(3).set(sProvNa);
|
||||||
|
rg.put(sProvNa,fut.field(3).x()-1);
|
||||||
|
fut.field(4).set(sDataNa);
|
||||||
|
rg.put(sDataNa,fut.field(4).x()-1);
|
||||||
|
fut.field(5).set(sCodFis);
|
||||||
|
rg.put(sCodFis,fut.field(5).x()-1);
|
||||||
|
fut.field(6).set(sCodQua);
|
||||||
|
rg.put(sCodQua,fut.field(6).x()-1);
|
||||||
|
pr.print(rg);
|
||||||
|
_RigaCorr++;
|
||||||
|
if (usa_progind()) progind()->addstatus(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TBase1::print(const long codditta, const long NumFis, const long NumNoFis)
|
||||||
|
{
|
||||||
|
TCursor* cur = cursor();
|
||||||
|
TPrinter& pr = printer();
|
||||||
|
_codditta=codditta;
|
||||||
|
|
||||||
|
if (!InitPrint(codditta))
|
||||||
|
return FALSE;
|
||||||
|
pr.formlen(BASE_FORMLEN);
|
||||||
|
|
||||||
|
(*cur)=0L;
|
||||||
|
if (_modulaser)
|
||||||
|
{
|
||||||
|
ClearFlagModulaser();
|
||||||
|
TPrintrow r;
|
||||||
|
if (!_GiaMessoStartDoc)
|
||||||
|
put_modulaser(r, STARTDOC);
|
||||||
|
put_modulaser(r, STARTDITTA);
|
||||||
|
put_modulaser(r, STARTPAGE, 1);
|
||||||
|
pr.print(r);
|
||||||
|
_RigaCorr++;
|
||||||
|
}
|
||||||
|
jump_to_line(pr, prima_riga(PRIMA));
|
||||||
|
stampa_corpo(pr);
|
||||||
|
stampa_soci(pr);
|
||||||
|
next_page(pr);
|
||||||
|
close_print();
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
void TBase2::stampa_corpo(TPrinter& pr)
|
||||||
|
{
|
||||||
|
TPrint_section& body = section('B', even_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);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TBase2::print(const long codditta, const long NumFis, const long NumNoFis)
|
||||||
|
{
|
||||||
|
TCursor* cur = cursor();
|
||||||
|
TPrinter& pr = printer();
|
||||||
|
_codditta=codditta;
|
||||||
|
filtra(codditta);
|
||||||
|
_RigaCorr=0;
|
||||||
|
(*cur)=0L;
|
||||||
|
jump_to_line(pr, prima_riga(PRIMA));
|
||||||
|
stampa_corpo(pr);
|
||||||
|
next_page(pr);
|
||||||
|
close_print();
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
void TBase3::stampa_testata(TPrinter& pr)
|
||||||
|
{
|
||||||
|
TPrint_section& hh = section('H', first_page);
|
||||||
|
hh.reset();
|
||||||
|
hh.update();
|
||||||
|
const int hhr = hh.height();
|
||||||
|
for (int i = 0; i < hhr; i++)
|
||||||
|
{
|
||||||
|
pr.print(hh.row(i));
|
||||||
|
_RigaCorr++;
|
||||||
|
}
|
||||||
|
if (usa_progind())
|
||||||
|
progind()->addstatus(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
int TBase3::stampa_L(TPrinter& pr,const int iChiaveL)
|
||||||
|
{
|
||||||
|
long codit=0L;
|
||||||
|
TPrint_section& body = section('B', odd_page);
|
||||||
|
body.reset();
|
||||||
|
|
||||||
|
TCursor& cur = *cursor();
|
||||||
|
// Le chiavi nel file e nel .ini sono saggiamente scambiate
|
||||||
|
if (iChiaveL==2) cur.setkey(1);
|
||||||
|
else cur.setkey(2);
|
||||||
|
|
||||||
|
filtra(_codditta);
|
||||||
|
cur=0L;
|
||||||
|
|
||||||
|
bool finito=FALSE;
|
||||||
|
int righe=0;
|
||||||
|
while (!finito)
|
||||||
|
{
|
||||||
|
body.update();
|
||||||
|
const int body_righe = body.height();
|
||||||
|
for (int i = 0; i < body_righe; i++)
|
||||||
|
{
|
||||||
|
TPrintrow& rr=body.row(i);
|
||||||
|
pr.print(rr);
|
||||||
|
rr.reset();
|
||||||
|
_RigaCorr++;
|
||||||
|
}
|
||||||
|
if (usa_progind())
|
||||||
|
progind()->addstatus(1);
|
||||||
|
righe++;
|
||||||
|
++cur;
|
||||||
|
codit=cur.file().get_long("CODDITTA");
|
||||||
|
bool buono=codit==_codditta;
|
||||||
|
// Guarda se e' necessario stampare l'aggiuntivo
|
||||||
|
_bAggiuntivoL = buono && righe>14;
|
||||||
|
finito=righe>14 || codit!=_codditta;
|
||||||
|
}
|
||||||
|
return righe;
|
||||||
|
}
|
||||||
|
|
||||||
|
void TBase3::stampa_totali_L(TPrinter& pr)
|
||||||
|
{
|
||||||
|
// La sezione f last contiene solo due totali aggiornati con add nel form
|
||||||
|
TPrint_section& hh = section('F', last_page);
|
||||||
|
// hh.reset();
|
||||||
|
hh.update();
|
||||||
|
const int hhr = hh.height();
|
||||||
|
for (int i = 0; i < hhr; i++)
|
||||||
|
{
|
||||||
|
pr.print(hh.row(i));
|
||||||
|
_RigaCorr++;
|
||||||
|
}
|
||||||
|
if (usa_progind())
|
||||||
|
progind()->addstatus(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TBase3::print(const long codditta, const long NumFis, const long NumNoFis)
|
||||||
|
{
|
||||||
|
_bAggiuntivoL=TRUE;
|
||||||
|
TCursor* cur = cursor();
|
||||||
|
TPrinter& pr = printer();
|
||||||
|
_codditta=codditta;
|
||||||
|
filtra(codditta);
|
||||||
|
_RigaCorr=0;
|
||||||
|
(*cur)=0L;
|
||||||
|
jump_to_line(pr, prima_riga(PRIMA));
|
||||||
|
// Stampa i codici concessione e tesoreria
|
||||||
|
stampa_testata(pr);
|
||||||
|
// Legge dai par.studio l'ordinamento da usare per L
|
||||||
|
TConfig conf(CONFIG_STUDIO);
|
||||||
|
const int iChiaveL = (int)conf.get_long("FlStQl", "77");
|
||||||
|
const int righe_stampate=stampa_L(pr,iChiaveL);
|
||||||
|
// Se la stampa prosegue i totali vanno sull'aggiuntivo NON qui
|
||||||
|
if (!_bAggiuntivoL)
|
||||||
|
{
|
||||||
|
jump_to_line(pr,_RIGA_TOTALI_L);
|
||||||
|
stampa_totali_L(pr);
|
||||||
|
}
|
||||||
|
next_page(pr);
|
||||||
|
close_print();
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
const char* TRigaN::sMeseRif() const
|
||||||
|
{
|
||||||
|
__dep16="";
|
||||||
|
__dep16 << _MeseRif;
|
||||||
|
return __dep16;
|
||||||
|
}
|
||||||
|
|
||||||
|
const char* TRigaN::sAnnoRif() const
|
||||||
|
{
|
||||||
|
__dep16="";
|
||||||
|
__dep16 << _AnnoRif;
|
||||||
|
return __dep16;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Ordina le righe N per periodo di riferimento
|
||||||
|
int TRigaN::compare(const TSortable& s) const
|
||||||
|
{
|
||||||
|
const TRigaN& rec = (const TRigaN&)s;
|
||||||
|
const int da = _AnnoRif - rec._AnnoRif;
|
||||||
|
const int dm = _MeseRif - rec._MeseRif;
|
||||||
|
if (da==0)
|
||||||
|
return dm;
|
||||||
|
else
|
||||||
|
return da;
|
||||||
|
}
|
||||||
|
|
||||||
|
TRigaN::TRigaN(const TLocalisamfile& qn)
|
||||||
|
{
|
||||||
|
_pos = qn.recno();
|
||||||
|
|
||||||
|
const TRectype& rec = qn.curr();
|
||||||
|
|
||||||
|
_MeseRif = rec.get_int("MESERIF");
|
||||||
|
_AnnoRif = rec.get_int("ANNORIF");
|
||||||
|
// Nel quadro R si chiama diversamente @!#@!!!
|
||||||
|
if (qn.num() == LF_QUAN)
|
||||||
|
_ImpRimb = rec.get_real("IMPOSTA");
|
||||||
|
else
|
||||||
|
_ImpRimb = rec.get_real("IMPRIMB");
|
||||||
|
_CompAss = rec.get_real("COMPENSI");
|
||||||
|
}
|
||||||
|
|
||||||
|
int TRigheNR::fill(const long codditta,TLocalisamfile& qnr)
|
||||||
|
{
|
||||||
|
long ditta=0L;
|
||||||
|
// Si posiziona sul primo della ditta corrente
|
||||||
|
qnr.zero();
|
||||||
|
qnr.put("CODDITTA",codditta);
|
||||||
|
qnr.read()==NOERR;
|
||||||
|
ditta=qnr.get_long("CODDITTA");
|
||||||
|
if (ditta!=codditta) return 0;
|
||||||
|
|
||||||
|
// Legge tutti quelli della ditta corrente
|
||||||
|
for (; !qnr.eof(); qnr.next())
|
||||||
|
{
|
||||||
|
ditta=qnr.get_long("CODDITTA");
|
||||||
|
if (ditta!=codditta) break;
|
||||||
|
|
||||||
|
TRigaN* n = new TRigaN(qnr);
|
||||||
|
if (n->pos() >= 0)
|
||||||
|
_data.add(n);
|
||||||
|
else
|
||||||
|
delete n;
|
||||||
|
}
|
||||||
|
_data.sort();
|
||||||
|
const int i = _data.items();
|
||||||
|
return i;
|
||||||
|
}
|
||||||
|
|
||||||
|
const char* TRigaQT::sMesePag() const
|
||||||
|
{
|
||||||
|
__dep16="";
|
||||||
|
__dep16 << _MesePag;
|
||||||
|
return __dep16;
|
||||||
|
}
|
||||||
|
|
||||||
|
const char* TRigaQT::sAnnoPag() const
|
||||||
|
{
|
||||||
|
__dep16="";
|
||||||
|
__dep16 << _AnnoPag;
|
||||||
|
return __dep16;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Ordina le righe N per periodo di riferimento
|
||||||
|
int TRigaQT::compare(const TSortable& s) const
|
||||||
|
{
|
||||||
|
const TRigaQT& rec = (const TRigaQT&)s;
|
||||||
|
const int da = _AnnoPag - rec._AnnoPag;
|
||||||
|
const int dm = _MesePag - rec._MesePag;
|
||||||
|
if (da==0)
|
||||||
|
return dm;
|
||||||
|
else
|
||||||
|
return da;
|
||||||
|
}
|
||||||
|
|
||||||
|
TRigaQT::TRigaQT(const TLocalisamfile& qt)
|
||||||
|
{
|
||||||
|
const TRectype& rec = qt.curr();
|
||||||
|
|
||||||
|
_MesePag = rec.get_int("MESEPAG");
|
||||||
|
_AnnoPag = rec.get_int("ANNOPAG");
|
||||||
|
_ContVers = rec.get_real("CONTVERS");
|
||||||
|
_ContRimb = rec.get_real("CONTRIMB");
|
||||||
|
_Interessi=rec.get_real("INTERESSI");
|
||||||
|
_sCodReg=rec.get("CODREG");
|
||||||
|
}
|
||||||
|
|
||||||
|
int TRigheQT::fill(const long codditta,TLocalisamfile& qt)
|
||||||
|
{
|
||||||
|
long ditta=0L;
|
||||||
|
// Si posiziona sul primo della ditta corrente
|
||||||
|
qt.zero();
|
||||||
|
qt.put("CODDITTA",codditta);
|
||||||
|
qt.read()==NOERR;
|
||||||
|
ditta=qt.get_long("CODDITTA");
|
||||||
|
if (ditta!=codditta) return 0;
|
||||||
|
|
||||||
|
// Legge tutti quelli della ditta corrente
|
||||||
|
for (; !qt.eof(); qt.next())
|
||||||
|
{
|
||||||
|
ditta=qt.get_long("CODDITTA");
|
||||||
|
if (ditta!=codditta) break;
|
||||||
|
|
||||||
|
TRigaQT* n = new TRigaQT(qt);
|
||||||
|
if (n->pos() >= 0)
|
||||||
|
_data.add(n);
|
||||||
|
else
|
||||||
|
delete n;
|
||||||
|
}
|
||||||
|
_data.sort();
|
||||||
|
const int i = _data.items();
|
||||||
|
return i;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Ordina le righe N per periodo di riferimento
|
||||||
|
int TRigaPS::compare(const TSortable& s) const
|
||||||
|
{
|
||||||
|
const TRigaPS& rec = (const TRigaPS&)s;
|
||||||
|
return _dDv<rec.dDataVers();
|
||||||
|
}
|
||||||
|
|
||||||
|
TRigaPS::TRigaPS(const TLocalisamfile& qt)
|
||||||
|
{
|
||||||
|
const TRectype& rec = qt.curr();
|
||||||
|
|
||||||
|
_dDv = rec.get_date("DATAVERS");
|
||||||
|
_rImp = rec.get_real("IMPOSTA");
|
||||||
|
_rIntDip = rec.get_real("INTERDIP");
|
||||||
|
_rIntDat = rec.get_real("INTERDAT");
|
||||||
|
_sTipoV = rec.get("TIPOVERS");
|
||||||
|
_sCodTrib= rec.get("CODTRIB");
|
||||||
|
_sSerie = rec.get("SERIE");
|
||||||
|
_sNumero = rec.get("NUMERO");
|
||||||
|
}
|
||||||
|
|
||||||
|
int TRighePS::fill(const long codditta,TLocalisamfile& ps)
|
||||||
|
{
|
||||||
|
long ditta=0L;
|
||||||
|
// Si posiziona sul primo della ditta corrente
|
||||||
|
ps.zero();
|
||||||
|
ps.put("CODDITTA",codditta);
|
||||||
|
ps.read()==NOERR;
|
||||||
|
ditta=ps.get_long("CODDITTA");
|
||||||
|
if (ditta!=codditta) return 0;
|
||||||
|
|
||||||
|
// Legge tutti quelli della ditta corrente
|
||||||
|
for (; !ps.eof(); ps.next())
|
||||||
|
{
|
||||||
|
ditta=ps.get_long("CODDITTA");
|
||||||
|
if (ditta!=codditta) break;
|
||||||
|
|
||||||
|
TRigaPS* n = new TRigaPS(ps);
|
||||||
|
if (n->pos() >= 0)
|
||||||
|
_data.add(n);
|
||||||
|
else
|
||||||
|
delete n;
|
||||||
|
}
|
||||||
|
_data.sort();
|
||||||
|
const int i = _data.items();
|
||||||
|
return i;
|
||||||
|
}
|
||||||
|
|
||||||
|
void TBase4::stampa_testata(TPrinter& pr)
|
||||||
|
{
|
||||||
|
TPrint_section& hh = section('H', first_page);
|
||||||
|
hh.reset();
|
||||||
|
hh.update();
|
||||||
|
const int hhr = hh.height();
|
||||||
|
for (int i = 0; i < hhr; i++)
|
||||||
|
{
|
||||||
|
pr.print(hh.row(i));
|
||||||
|
_RigaCorr++;
|
||||||
|
}
|
||||||
|
if (usa_progind())
|
||||||
|
progind()->addstatus(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
void TBase4::fill_riga_QT(TPrint_section& sec,const int num)
|
||||||
|
{
|
||||||
|
TString sVal;
|
||||||
|
int start=0,end=5;
|
||||||
|
for (int i = start; i < end; i++)
|
||||||
|
{
|
||||||
|
TForm_item& fi = sec.field(i);
|
||||||
|
if (num < _righeQT.items())
|
||||||
|
{
|
||||||
|
const TRigaQT& rN = _righeQT[num];
|
||||||
|
if (i==start)
|
||||||
|
sVal=rN.sMesePag();
|
||||||
|
else if (i==start+1)
|
||||||
|
sVal=rN.sAnnoPag();
|
||||||
|
else if (i==start+2)
|
||||||
|
sVal=rN.ContVers(fi.picture());
|
||||||
|
else if (i==start+3)
|
||||||
|
sVal=rN.ContRimb(fi.picture());
|
||||||
|
else if (i==start+4)
|
||||||
|
sVal=rN.Interessi(fi.picture());
|
||||||
|
else if (i==start+5)
|
||||||
|
sVal=rN.CodReg();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
sVal="";
|
||||||
|
fi.set(sVal);
|
||||||
|
TPrintrow& row=sec.row(0);
|
||||||
|
row.put(sVal,fi.x()-1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void TBase4::stampa_Q(TPrinter& pr)
|
||||||
|
{
|
||||||
|
TPrint_section& body = section('F', even_page);
|
||||||
|
body.reset();
|
||||||
|
TLocalisamfile qp(LF_QUAQ);
|
||||||
|
_righeQT.fill(_codditta,qp);
|
||||||
|
_bAggQ = _righeQT.items() > _RIGHE_Q;
|
||||||
|
|
||||||
|
int riga=0;
|
||||||
|
bool FinitaSezione=FALSE;
|
||||||
|
while (!FinitaSezione)
|
||||||
|
{
|
||||||
|
// Stampa la parte sinistra (primi 4 campi)
|
||||||
|
fill_riga_QT(body,riga);
|
||||||
|
TPrintrow& rr=body.row(0);
|
||||||
|
pr.print(rr);
|
||||||
|
rr.reset();
|
||||||
|
riga++;
|
||||||
|
_RigaCorr++;
|
||||||
|
if (usa_progind())
|
||||||
|
progind()->addstatus(1);
|
||||||
|
FinitaSezione=riga>_RIGHE_Q-1;
|
||||||
|
}
|
||||||
|
// Salta due righe alla fine
|
||||||
|
stampa_righe_vuote(pr,2);
|
||||||
|
}
|
||||||
|
|
||||||
|
void TBase4::stampa_T(TPrinter& pr)
|
||||||
|
{
|
||||||
|
TPrint_section& body = section('F', odd_page);
|
||||||
|
body.reset();
|
||||||
|
TLocalisamfile qp(LF_QUAT);
|
||||||
|
_righeQT.fill(_codditta,qp);
|
||||||
|
_bAggT = _righeQT.items() > _RIGHE_T;
|
||||||
|
|
||||||
|
int riga=0;
|
||||||
|
bool FinitaSezione=FALSE;
|
||||||
|
while (!FinitaSezione)
|
||||||
|
{
|
||||||
|
// Stampa la parte sinistra (primi 4 campi)
|
||||||
|
fill_riga_QT(body,riga);
|
||||||
|
TPrintrow& rr=body.row(0);
|
||||||
|
pr.print(rr);
|
||||||
|
rr.reset();
|
||||||
|
riga++;
|
||||||
|
_RigaCorr++;
|
||||||
|
if (usa_progind())
|
||||||
|
progind()->addstatus(1);
|
||||||
|
FinitaSezione=riga>_RIGHE_T-1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void TBase4::fill_riga_PS(TPrint_section& sec,const int num)
|
||||||
|
{
|
||||||
|
TString sVal;
|
||||||
|
int start=0,end=7;
|
||||||
|
for (int i = start; i < end; i++)
|
||||||
|
{
|
||||||
|
TForm_item& fi = sec.field(i);
|
||||||
|
if (num < _righePS.items())
|
||||||
|
{
|
||||||
|
const TRigaPS& rN = _righePS[num];
|
||||||
|
if (i==start)
|
||||||
|
sVal=rN.sImposta(fi.picture());
|
||||||
|
else if (i==start+1)
|
||||||
|
sVal=rN.sIntDip(fi.picture());
|
||||||
|
else if (i==start+2)
|
||||||
|
sVal=rN.sIntDat(fi.picture());
|
||||||
|
else if (i==start+3)
|
||||||
|
sVal=rN.sTipoVers();
|
||||||
|
else if (i==start+4)
|
||||||
|
sVal=rN.sCodTrib();
|
||||||
|
else if (i==start+5)
|
||||||
|
sVal=rN.sDataVers(fi.picture());
|
||||||
|
else if (i==start+6)
|
||||||
|
sVal=rN.sSerie();
|
||||||
|
else if (i==start+7)
|
||||||
|
sVal=rN.sNumero();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
sVal="";
|
||||||
|
fi.set(sVal);
|
||||||
|
TPrintrow& row=sec.row(0);
|
||||||
|
row.put(sVal,fi.x()-1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void TBase4::stampa_P(TPrinter& pr)
|
||||||
|
{
|
||||||
|
TPrint_section& body = section('H', even_page);
|
||||||
|
body.reset();
|
||||||
|
TLocalisamfile qp(LF_QUAP);
|
||||||
|
_righePS.fill(_codditta,qp);
|
||||||
|
const int items=_righePS.items();
|
||||||
|
_bAggP = items > _RIGHE_P;
|
||||||
|
|
||||||
|
int riga=0;
|
||||||
|
bool FinitaSezione=FALSE;
|
||||||
|
while (!FinitaSezione)
|
||||||
|
{
|
||||||
|
// Stampa la parte sinistra (primi 4 campi)
|
||||||
|
fill_riga_PS(body,riga);
|
||||||
|
TPrintrow& rr=body.row(0);
|
||||||
|
pr.print(rr);
|
||||||
|
rr.reset();
|
||||||
|
riga++;
|
||||||
|
_RigaCorr++;
|
||||||
|
if (usa_progind())
|
||||||
|
progind()->addstatus(1);
|
||||||
|
FinitaSezione=riga>_RIGHE_P-1;
|
||||||
|
}
|
||||||
|
// Salta due righe alla fine
|
||||||
|
stampa_righe_vuote(pr,2);
|
||||||
|
}
|
||||||
|
|
||||||
|
void TBase4::stampa_S(TPrinter& pr)
|
||||||
|
{
|
||||||
|
TPrint_section& body = section('H', odd_page);
|
||||||
|
body.reset();
|
||||||
|
TLocalisamfile qp(LF_QUAS);
|
||||||
|
_righePS.fill(_codditta,qp);
|
||||||
|
_bAggS = _righePS.items() > _RIGHE_S;
|
||||||
|
|
||||||
|
int riga=0;
|
||||||
|
bool FinitaSezione=FALSE;
|
||||||
|
while (!FinitaSezione)
|
||||||
|
{
|
||||||
|
// Stampa la parte sinistra (primi 4 campi)
|
||||||
|
fill_riga_PS(body,riga);
|
||||||
|
TPrintrow& rr=body.row(0);
|
||||||
|
pr.print(rr);
|
||||||
|
rr.reset();
|
||||||
|
riga++;
|
||||||
|
_RigaCorr++;
|
||||||
|
if (usa_progind())
|
||||||
|
progind()->addstatus(1);
|
||||||
|
FinitaSezione=riga>_RIGHE_S-1;
|
||||||
|
}
|
||||||
|
// Salta due righe alla fine
|
||||||
|
stampa_righe_vuote(pr,2);
|
||||||
|
}
|
||||||
|
|
||||||
|
void TBase4::stampa_R(TPrinter& pr)
|
||||||
|
{
|
||||||
|
TPrint_section& body = section('B', even_page);
|
||||||
|
body.reset();
|
||||||
|
TLocalisamfile qr(LF_QUAR);
|
||||||
|
_righeNR.fill(_codditta,qr);
|
||||||
|
const int items=_righeNR.items();
|
||||||
|
// se iRigheNR > 2 => bisogna stampare anche l'allegato
|
||||||
|
_bAggR = items > _RIGHE_R;
|
||||||
|
fill_riga_NR(body,0,0);
|
||||||
|
fill_riga_NR(body,1,1);
|
||||||
|
TPrintrow& rr=body.row(0);
|
||||||
|
pr.print(rr);
|
||||||
|
rr.reset();
|
||||||
|
_RigaCorr++;
|
||||||
|
if (usa_progind())
|
||||||
|
progind()->addstatus(1);
|
||||||
|
// Salta due righe alla fine
|
||||||
|
stampa_righe_vuote(pr,2);
|
||||||
|
}
|
||||||
|
|
||||||
|
void TBase4::fill_riga_NR(TPrint_section& sec,const int num, const int side)
|
||||||
|
{
|
||||||
|
TString sVal;
|
||||||
|
int start,end;
|
||||||
|
if (side==0)
|
||||||
|
{
|
||||||
|
start=0;
|
||||||
|
end=4;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
start=4;
|
||||||
|
end=8;
|
||||||
|
}
|
||||||
|
for (int i = start; i < end; i++)
|
||||||
|
{
|
||||||
|
TForm_item& fi = sec.field(i);
|
||||||
|
if (num < _righeNR.items())
|
||||||
|
{
|
||||||
|
const TRigaN& rN = _righeNR[num];
|
||||||
|
if (i==start)
|
||||||
|
sVal=rN.sMeseRif();
|
||||||
|
else if (i==start+1)
|
||||||
|
sVal=rN.sAnnoRif();
|
||||||
|
else if (i==start+2)
|
||||||
|
sVal=rN.ImpRimb(fi.picture());
|
||||||
|
else if (i==start+3)
|
||||||
|
sVal=rN.CompAss(fi.picture());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
sVal="";
|
||||||
|
fi.set(sVal);
|
||||||
|
TPrintrow& row=sec.row(0);
|
||||||
|
row.put(sVal,fi.x()-1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void TBase4::stampa_righe_vuote(TPrinter& pr,const int righe)
|
||||||
|
{
|
||||||
|
TPrintrow rr;
|
||||||
|
for (int i=0; i<righe; i++)
|
||||||
|
{
|
||||||
|
pr.print(rr);
|
||||||
|
rr.reset();
|
||||||
|
_RigaCorr++;
|
||||||
|
if (usa_progind())
|
||||||
|
progind()->addstatus(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void TBase4::stampa_N(TPrinter& pr)
|
||||||
|
{
|
||||||
|
TPrint_section& body = section('B', odd_page);
|
||||||
|
body.reset();
|
||||||
|
TLocalisamfile qn(LF_QUAN);
|
||||||
|
_righeNR.fill(_codditta,qn);
|
||||||
|
// se iRigheN > 6 => bisogna stampare anche l'allegato
|
||||||
|
_bAggN = _righeNR.items() > _RIGHE_N;
|
||||||
|
|
||||||
|
int num=0;
|
||||||
|
int riga=0;
|
||||||
|
bool FinitaSezione=FALSE;
|
||||||
|
while (!FinitaSezione)
|
||||||
|
{
|
||||||
|
// Stampa la parte sinistra (primi 4 campi)
|
||||||
|
fill_riga_NR(body,num,0);
|
||||||
|
num+=3;
|
||||||
|
fill_riga_NR(body,num,1);
|
||||||
|
TPrintrow& rr=body.row(0);
|
||||||
|
pr.print(rr);
|
||||||
|
rr.reset();
|
||||||
|
riga++;
|
||||||
|
_RigaCorr++;
|
||||||
|
if (usa_progind())
|
||||||
|
progind()->addstatus(1);
|
||||||
|
num-=2;
|
||||||
|
FinitaSezione=riga>2;
|
||||||
|
}
|
||||||
|
// Salta due righe alla fine
|
||||||
|
stampa_righe_vuote(pr,2);
|
||||||
|
}
|
||||||
|
|
||||||
|
void TBase4::stampa_fine(TPrinter& pr)
|
||||||
|
{
|
||||||
|
TPrint_section& sec = section('F', first_page);
|
||||||
|
|
||||||
|
sec.reset();
|
||||||
|
sec.update();
|
||||||
|
const int hhr = sec.height();
|
||||||
|
for (int i = 0; i < hhr; i++)
|
||||||
|
{
|
||||||
|
pr.print(sec.row(i));
|
||||||
|
_RigaCorr++;
|
||||||
|
}
|
||||||
|
if (usa_progind())
|
||||||
|
progind()->addstatus(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TBase4::print(const long codditta, const long NumFis, const long NumNoFis)
|
||||||
|
{
|
||||||
|
_bAggN=_bAggP=_bAggR=_bAggQ=_bAggS=_bAggT=FALSE;
|
||||||
|
TCursor* cur = cursor();
|
||||||
|
TPrinter& pr = printer();
|
||||||
|
_codditta=codditta;
|
||||||
|
filtra(codditta);
|
||||||
|
_RigaCorr=0;
|
||||||
|
(*cur)=0L;
|
||||||
|
jump_to_line(pr, prima_riga(PRIMA));
|
||||||
|
// Stampa da M1 a M6
|
||||||
|
stampa_testata(pr);
|
||||||
|
stampa_N(pr);
|
||||||
|
stampa_P(pr);
|
||||||
|
stampa_Q(pr);
|
||||||
|
stampa_R(pr);
|
||||||
|
stampa_S(pr);
|
||||||
|
stampa_T(pr);
|
||||||
|
stampa_fine(pr);
|
||||||
|
next_page(pr);
|
||||||
|
close_print();
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TStampaBase::user_create()
|
||||||
|
{
|
||||||
|
_fBase1 = new TBase1("77base1", "Base");
|
||||||
|
_fBase2 = new TBase2("77base2", "Base");
|
||||||
|
_fBase3 = new TBase3("77base3", "Base");
|
||||||
|
_fBase4 = new TBase4("77base4", "Base");
|
||||||
|
// Adesso bisogna chiamare set_cursor per impostare il cursore dentro
|
||||||
|
// al form. Sarebbe meglio fare in modo che il form usi sempre il cursore
|
||||||
|
// letto dal .frm, senza bisogno di passarglielo dall'applicazione
|
||||||
|
_cur = _fBase1->TForm::cursor();
|
||||||
|
_fBase1->set_cursor(_cur);
|
||||||
|
_cur2 = _fBase2->TForm::cursor();
|
||||||
|
_fBase2->set_cursor(_cur2);
|
||||||
|
_cur3 = _fBase3->TForm::cursor();
|
||||||
|
_fBase3->set_cursor(_cur3);
|
||||||
|
_cur4 = _fBase4->TForm::cursor();
|
||||||
|
_fBase4->set_cursor(_cur4);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TStampaBase::user_destroy()
|
||||||
|
{
|
||||||
|
delete _fBase1;
|
||||||
|
delete _fBase2;
|
||||||
|
delete _fBase3;
|
||||||
|
delete _fBase4;
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TStampaBase::print_quadro(const int OffsetDitta, const bool modulaser)
|
||||||
|
{
|
||||||
|
int start=0, last=0;
|
||||||
|
|
||||||
|
// Setta formlen prima di printer.open per avere la lunghezza giusta nel caso di
|
||||||
|
// stampa a video
|
||||||
|
printer().formlen(BASE_FORMLEN);
|
||||||
|
bool ok = printer().open();
|
||||||
|
|
||||||
|
_fBase1->set_modulaser(modulaser);
|
||||||
|
_fBase2->set_modulaser(modulaser);
|
||||||
|
_fBase3->set_modulaser(modulaser);
|
||||||
|
_fBase4->set_modulaser(modulaser);
|
||||||
|
|
||||||
|
// Dice se deve eseguire il posizionamento del foglio.
|
||||||
|
// Se stampa piu' ditte va eseguito solo sulla prima
|
||||||
|
// Occhio a non spostarlo nel ciclo.
|
||||||
|
_fBase1->set_posiziona(TRUE);
|
||||||
|
|
||||||
|
if (OffsetDitta >= 0)
|
||||||
|
{
|
||||||
|
start = OffsetDitta;
|
||||||
|
last = OffsetDitta;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
last = ditte().items() - 1;
|
||||||
|
|
||||||
|
for (int i = start; i <= last; i++)
|
||||||
|
{
|
||||||
|
TString CoFiDic(20);
|
||||||
|
TToken_string riga(ditte()[i]);
|
||||||
|
const long codditta = atol(riga.get(0));
|
||||||
|
const TipoDitta tipo = (TipoDitta)riga.get_int(1);
|
||||||
|
const long fis = riga.get_long(2);
|
||||||
|
const long nofis = riga.get_long(3);
|
||||||
|
const bool LastFis = (bool)riga.get_int(4);
|
||||||
|
const bool LastNoFis = (bool)riga.get_int(5);
|
||||||
|
|
||||||
|
// I gruppi dich-estinti hanno totali comuni
|
||||||
|
// Si presume che nell'array vengano messi nell'ordine dich-estinti
|
||||||
|
if (tipo == normale || tipo == dichiarante)
|
||||||
|
_fBase1->azzera_totali();
|
||||||
|
|
||||||
|
if (tipo == estinto)
|
||||||
|
CoFiDic = riga.get(6);
|
||||||
|
|
||||||
|
// Dice al form che tipo di ditta si stampa
|
||||||
|
_fBase1->set_tipo_ditta(tipo);
|
||||||
|
|
||||||
|
// Numera i fogli a partire da 1 per ogni ditta normale e da 1 e di seguito negli estinti
|
||||||
|
// per i sogg. dichiaranti
|
||||||
|
if (tipo == normale || tipo == dichiarante)
|
||||||
|
_fBase1->set_num_foglio(1);
|
||||||
|
|
||||||
|
// Se la ditta e' estinta dice al form il cod.fis. del dichiarante
|
||||||
|
if (tipo == estinto)
|
||||||
|
_fBase1->set_cofi_dic(CoFiDic);
|
||||||
|
|
||||||
|
// Dice al form che e' l'ultima ditta
|
||||||
|
if (i == last)
|
||||||
|
_fBase1->set_last_ditta(TRUE);
|
||||||
|
|
||||||
|
_fBase1->print(codditta, fis, nofis);
|
||||||
|
_fBase2->print(codditta, fis, nofis);
|
||||||
|
_fBase3->print(codditta, fis, nofis);
|
||||||
|
_fBase4->print(codditta, fis, nofis);
|
||||||
|
}
|
||||||
|
printer().close();
|
||||||
|
return ok;
|
||||||
|
}
|
||||||
|
|
||||||
|
void TQuadroL::stampa_testata(TPrinter& pr)
|
||||||
|
{
|
||||||
|
TPrint_section& hh = section('H', first_page);
|
||||||
|
hh.reset();
|
||||||
|
hh.update();
|
||||||
|
const int hhr = hh.height();
|
||||||
|
for (int i = 0; i < hhr; i++)
|
||||||
|
{
|
||||||
|
pr.print(hh.row(i));
|
||||||
|
_RigaCorr++;
|
||||||
|
}
|
||||||
|
if (usa_progind())
|
||||||
|
progind()->addstatus(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TQuadroL::stampa_L(TPrinter& pr,const long lStartRec,const int iRecL)
|
||||||
|
{
|
||||||
|
long codit=0L;
|
||||||
|
bool eof=FALSE;
|
||||||
|
TPrint_section& body = section('B', odd_page);
|
||||||
|
body.reset();
|
||||||
|
TCursor& cur = *cursor();
|
||||||
|
cur=lStartRec;
|
||||||
|
bool finito=FALSE;
|
||||||
|
int righe=0;
|
||||||
|
|
||||||
|
while (!finito)
|
||||||
|
{
|
||||||
|
body.update();
|
||||||
|
const int body_righe = body.height();
|
||||||
|
for (int i = 0; i < body_righe; i++)
|
||||||
|
{
|
||||||
|
TPrintrow& rr=body.row(i);
|
||||||
|
pr.print(rr);
|
||||||
|
rr.reset();
|
||||||
|
_RigaCorr++;
|
||||||
|
}
|
||||||
|
if (usa_progind())
|
||||||
|
progind()->addstatus(1);
|
||||||
|
righe++;
|
||||||
|
++cur;
|
||||||
|
eof=cur.pos()==cur.items()-1;
|
||||||
|
finito = (righe==iRecL-1) || eof;
|
||||||
|
}
|
||||||
|
return eof;
|
||||||
|
}
|
||||||
|
|
||||||
|
void TQuadroL::stampa_totali_L(TPrinter& pr)
|
||||||
|
{
|
||||||
|
// La sezione f last contiene solo due totali aggiornati con add nel form
|
||||||
|
TPrint_section& hh = section('F', last_page);
|
||||||
|
// hh.reset();
|
||||||
|
hh.update();
|
||||||
|
const int hhr = hh.height();
|
||||||
|
for (int i = 0; i < hhr; i++)
|
||||||
|
{
|
||||||
|
pr.print(hh.row(i));
|
||||||
|
_RigaCorr++;
|
||||||
|
}
|
||||||
|
if (usa_progind())
|
||||||
|
progind()->addstatus(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TQuadroL::print(const long codditta, const long NumFis, const long NumNoFis)
|
||||||
|
{
|
||||||
|
TCursor* cur = cursor();
|
||||||
|
TPrinter& pr = printer();
|
||||||
|
if (!InitPrint(codditta))
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
// Legge dai par.studio l'ordinamento da usare per L
|
||||||
|
TConfig conf(CONFIG_STUDIO);
|
||||||
|
const int iChiaveL = (int)conf.get_long("FlStQl", "77");
|
||||||
|
if (iChiaveL==2) cur->setkey(1);
|
||||||
|
else cur->setkey(2);
|
||||||
|
|
||||||
|
int lOffsetL=_START_AGG_L;
|
||||||
|
bool finito=FALSE;
|
||||||
|
while (!finito)
|
||||||
|
{
|
||||||
|
jump_to_line(pr, prima_riga(PRIMA));
|
||||||
|
stampa_testata(pr);
|
||||||
|
finito=stampa_L(pr,lOffsetL,_REC_PRIMA_AGG_L);
|
||||||
|
next_page(pr);
|
||||||
|
if (!finito)
|
||||||
|
{
|
||||||
|
lOffsetL+=_REC_PRIMA_AGG_L;
|
||||||
|
finito=stampa_L(pr,lOffsetL,_REC_SECONDA_AGG_L);
|
||||||
|
}
|
||||||
|
if (finito)
|
||||||
|
{
|
||||||
|
jump_to_line(pr,_RIGA_TOTALI_AGG_L);
|
||||||
|
stampa_totali_L(pr);
|
||||||
|
}
|
||||||
|
next_page(pr);
|
||||||
|
}
|
||||||
|
close_print();
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TStampaQuadroAggL::user_create()
|
||||||
|
{
|
||||||
|
_form = new TQuadroL("77QL", quadro());
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TStampaQuadroAggL::user_destroy()
|
||||||
|
{
|
||||||
|
delete _form;
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
288
m770/77stba.h
Executable file
288
m770/77stba.h
Executable file
@ -0,0 +1,288 @@
|
|||||||
|
#ifndef _77STBA_H
|
||||||
|
#define _77STBA_H
|
||||||
|
|
||||||
|
#include "77stq.h"
|
||||||
|
|
||||||
|
HIDDEN const int BASE_FORMLEN = 73;
|
||||||
|
HIDDEN const int BASE_PAGINE = 4;
|
||||||
|
const int _RIGHE_N = 6;
|
||||||
|
const int _RIGHE_R = 2;
|
||||||
|
const int _RIGHE_P = 4;
|
||||||
|
const int _RIGHE_Q = 4;
|
||||||
|
const int _RIGHE_S = 4;
|
||||||
|
const int _RIGHE_T = 4;
|
||||||
|
|
||||||
|
class TBase1 : public TDicForm
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
long _codditta;
|
||||||
|
TRelation* r; // usate per contare i soci
|
||||||
|
TCursor* c;
|
||||||
|
bool _bAllegSoci;
|
||||||
|
long iContaSoci();
|
||||||
|
protected:
|
||||||
|
void stampa_corpo(TPrinter& pr);
|
||||||
|
void stampa_soci(TPrinter& pr);
|
||||||
|
bool bAllegSoci() const { return _bAllegSoci; }
|
||||||
|
virtual int dic_form_len() const { return BASE_FORMLEN-2; }
|
||||||
|
virtual void next_page(TPrinter& pr) { fill_page(pr, -1); }
|
||||||
|
virtual void stampa_totali(TPrinter& pr) {}
|
||||||
|
virtual void aggiorna_totali(const char tipo) {}
|
||||||
|
virtual void set_body(TPrinter& pr, const char tipo) {}
|
||||||
|
virtual int prima_riga(PaginaQuadro p) const { return 11; }
|
||||||
|
public:
|
||||||
|
virtual bool print(const long codditta, const long NumFis, const long NumNoFis);
|
||||||
|
TBase1(const char* sNomeForm, const char* quadro);
|
||||||
|
virtual ~TBase1();
|
||||||
|
};
|
||||||
|
|
||||||
|
const int _INIZIO_SOCI=56;
|
||||||
|
|
||||||
|
class TBase2 : public TDicForm
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
long _codditta;
|
||||||
|
protected:
|
||||||
|
void stampa_corpo(TPrinter& pr);
|
||||||
|
virtual int dic_form_len() const { return BASE_FORMLEN; }
|
||||||
|
virtual void next_page(TPrinter& pr) { fill_page(pr, -1); }
|
||||||
|
virtual void set_body(TPrinter& pr, const char tipo) {}
|
||||||
|
virtual int prima_riga(PaginaQuadro p) const { return 3;}
|
||||||
|
public:
|
||||||
|
virtual bool print(const long codditta, const long NumFis, const long NumNoFis);
|
||||||
|
TBase2(const char* sNomeForm, const char* quadro) : TDicForm(sNomeForm, quadro) {}
|
||||||
|
virtual ~TBase2() {}
|
||||||
|
};
|
||||||
|
|
||||||
|
class TBase3 : public TDicForm
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
long _codditta;
|
||||||
|
bool _bAggiuntivoL; // se necessario stampare aggiuntivo L
|
||||||
|
protected:
|
||||||
|
void stampa_testata(TPrinter& pr);
|
||||||
|
void stampa_totali_L(TPrinter& pr);
|
||||||
|
bool aggiuntivoL() const { return _bAggiuntivoL; }
|
||||||
|
int stampa_L(TPrinter& pr,const int iChiaveL);
|
||||||
|
virtual int dic_form_len() const { return BASE_FORMLEN; }
|
||||||
|
virtual void next_page(TPrinter& pr) { fill_page(pr, -1); }
|
||||||
|
virtual void set_body(TPrinter& pr, const char tipo) {}
|
||||||
|
virtual int prima_riga(PaginaQuadro p) const { return 3;}
|
||||||
|
public:
|
||||||
|
virtual bool print(const long codditta, const long NumFis, const long NumNoFis);
|
||||||
|
TBase3(const char* sNomeForm, const char* quadro) : TDicForm(sNomeForm, quadro) {}
|
||||||
|
virtual ~TBase3() {}
|
||||||
|
};
|
||||||
|
|
||||||
|
const int _RIGA_TOTALI_L = 65;
|
||||||
|
|
||||||
|
class TRigaN : public TSortable
|
||||||
|
{
|
||||||
|
TRecnotype _pos;
|
||||||
|
int _MeseRif,_AnnoRif; // periodo di riferimento
|
||||||
|
real _ImpRimb,_CompAss; // importi
|
||||||
|
|
||||||
|
public:
|
||||||
|
virtual int compare(const TSortable& s) const;
|
||||||
|
TRecnotype pos() const { return _pos; }
|
||||||
|
|
||||||
|
const char* sMeseRif() const;
|
||||||
|
const char* sAnnoRif() const;
|
||||||
|
const int iMeseRif() const { return _MeseRif; }
|
||||||
|
const int iAnnoRif() const { return _AnnoRif; }
|
||||||
|
const char* ImpRimb(const char* pic) const { return _ImpRimb.string(pic); }
|
||||||
|
const char* CompAss(const char* pic) const { return _CompAss.string(pic); }
|
||||||
|
TRigaN(const TLocalisamfile& qn);
|
||||||
|
virtual ~TRigaN() { }
|
||||||
|
};
|
||||||
|
|
||||||
|
class TRigheNR : public TObject
|
||||||
|
{
|
||||||
|
TArray _data;
|
||||||
|
|
||||||
|
protected:
|
||||||
|
const TRigaN& rigaN(int i) const { return (const TRigaN&)_data[i]; }
|
||||||
|
|
||||||
|
public:
|
||||||
|
const TRigaN& operator[](int i) const { return rigaN(i); }
|
||||||
|
|
||||||
|
int fill(const long codditta,TLocalisamfile& qnr);
|
||||||
|
int items() const { return _data.items(); }
|
||||||
|
|
||||||
|
TRigheNR() { }
|
||||||
|
virtual ~TRigheNR() { }
|
||||||
|
};
|
||||||
|
|
||||||
|
class TRigaQT : public TSortable
|
||||||
|
{
|
||||||
|
int _MesePag,_AnnoPag; // periodo di riferimento
|
||||||
|
real _ContVers,_ContRimb,_Interessi; // importi
|
||||||
|
TString _sCodReg;
|
||||||
|
TRecnotype _pos;
|
||||||
|
public:
|
||||||
|
virtual int compare(const TSortable& s) const;
|
||||||
|
TRecnotype pos() const { return _pos; }
|
||||||
|
const char* sMesePag() const;
|
||||||
|
const char* sAnnoPag() const;
|
||||||
|
const int iMesePag() const { return _MesePag; }
|
||||||
|
const int iAnnoPag() const { return _AnnoPag; }
|
||||||
|
const char* ContVers(const char* pic) const { return _ContVers.string(pic); }
|
||||||
|
const char* ContRimb(const char* pic) const { return _ContRimb.string(pic); }
|
||||||
|
const char* Interessi(const char* pic) const { return _Interessi.string(pic); }
|
||||||
|
const char* CodReg() const { return (const char*)_sCodReg; }
|
||||||
|
TRigaQT(const TLocalisamfile& qt);
|
||||||
|
virtual ~TRigaQT() { }
|
||||||
|
};
|
||||||
|
|
||||||
|
class TRigheQT : public TObject
|
||||||
|
{
|
||||||
|
TArray _data;
|
||||||
|
|
||||||
|
protected:
|
||||||
|
const TRigaQT& rigaQT(int i) const { return (const TRigaQT&)_data[i]; }
|
||||||
|
|
||||||
|
public:
|
||||||
|
const TRigaQT& operator[](int i) const { return rigaQT(i); }
|
||||||
|
|
||||||
|
int fill(const long codditta,TLocalisamfile& qt);
|
||||||
|
int items() const { return _data.items(); }
|
||||||
|
|
||||||
|
TRigheQT() {}
|
||||||
|
virtual ~TRigheQT() {}
|
||||||
|
};
|
||||||
|
|
||||||
|
class TRigaPS : public TSortable
|
||||||
|
{
|
||||||
|
TDate _dDv; // data vers.
|
||||||
|
real _rImp,_rIntDip,_rIntDat; // importi
|
||||||
|
TString _sTipoV,_sCodTrib,_sSerie,_sNumero;
|
||||||
|
TRecnotype _pos;
|
||||||
|
public:
|
||||||
|
virtual int compare(const TSortable& s) const;
|
||||||
|
TRecnotype pos() const { return _pos; }
|
||||||
|
TDate dDataVers() const { return _dDv; }
|
||||||
|
const char* sDataVers(const char* pic) const { return _dDv.string(); }
|
||||||
|
const char* sImposta(const char* pic) const { return _rImp.string(pic); }
|
||||||
|
const char* sIntDip(const char* pic) const { return _rIntDip.string(pic); }
|
||||||
|
const char* sIntDat(const char* pic) const { return _rIntDat.string(pic); }
|
||||||
|
const char* sTipoVers() const { return (const char*)_sTipoV; }
|
||||||
|
const char* sCodTrib() const { return (const char*)_sCodTrib; }
|
||||||
|
const char* sSerie() const { return (const char*)_sSerie; }
|
||||||
|
const char* sNumero() const { return (const char*)_sNumero; }
|
||||||
|
TRigaPS(const TLocalisamfile& qt);
|
||||||
|
virtual ~TRigaPS() { }
|
||||||
|
};
|
||||||
|
|
||||||
|
class TRighePS : public TObject
|
||||||
|
{
|
||||||
|
TArray _data;
|
||||||
|
|
||||||
|
protected:
|
||||||
|
const TRigaPS& rigaPS(int i) const { return (const TRigaPS&)_data[i]; }
|
||||||
|
|
||||||
|
public:
|
||||||
|
const TRigaPS& operator[](int i) const { return rigaPS(i); }
|
||||||
|
int fill(const long codditta,TLocalisamfile& ps);
|
||||||
|
int items() const { return _data.items(); }
|
||||||
|
TRighePS() {}
|
||||||
|
virtual ~TRighePS() {}
|
||||||
|
};
|
||||||
|
|
||||||
|
class TBase4 : public TDicForm
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
long _codditta;
|
||||||
|
TRigheNR _righeNR; // array dei record N e R
|
||||||
|
TRigheQT _righeQT;
|
||||||
|
TRighePS _righePS;
|
||||||
|
bool _bAggN,_bAggP,_bAggR,_bAggQ,_bAggS,_bAggT;
|
||||||
|
protected:
|
||||||
|
void stampa_righe_vuote(TPrinter& pr,const int righe);
|
||||||
|
void fill_riga_QT(TPrint_section& sec,const int num);
|
||||||
|
void fill_riga_PS(TPrint_section& sec,const int num);
|
||||||
|
void fill_riga_NR(TPrint_section& sec,const int num, const int side);
|
||||||
|
void stampa_testata(TPrinter& pr);
|
||||||
|
void stampa_fine(TPrinter& pr);
|
||||||
|
void stampa_N(TPrinter& pr);
|
||||||
|
void stampa_P(TPrinter& pr);
|
||||||
|
void stampa_Q(TPrinter& pr);
|
||||||
|
void stampa_R(TPrinter& pr);
|
||||||
|
void stampa_S(TPrinter& pr);
|
||||||
|
void stampa_T(TPrinter& pr);
|
||||||
|
virtual int dic_form_len() const { return BASE_FORMLEN; }
|
||||||
|
virtual void next_page(TPrinter& pr) { fill_page(pr, -1); }
|
||||||
|
virtual void set_body(TPrinter& pr, const char tipo) {}
|
||||||
|
virtual int prima_riga(PaginaQuadro p) const { return 3;}
|
||||||
|
public:
|
||||||
|
virtual bool print(const long codditta, const long NumFis, const long NumNoFis);
|
||||||
|
TBase4(const char* sNomeForm, const char* quadro) : TDicForm(sNomeForm, quadro) {}
|
||||||
|
virtual ~TBase4() {}
|
||||||
|
};
|
||||||
|
|
||||||
|
const int _FIELD_L = 740;
|
||||||
|
|
||||||
|
class TStampaBase : public TStampaQuadro
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
TBase1* _fBase1;
|
||||||
|
TBase2* _fBase2;
|
||||||
|
TBase3* _fBase3;
|
||||||
|
TBase4* _fBase4;
|
||||||
|
TRelation* _rel;
|
||||||
|
TCursor* _cur, *_cur2, *_cur3, *_cur4;
|
||||||
|
|
||||||
|
protected:
|
||||||
|
virtual bool user_create();
|
||||||
|
virtual bool user_destroy();
|
||||||
|
virtual bool conta_tipi_per() const { return FALSE; }
|
||||||
|
virtual TDicForm* get_form() const { return _fBase1; }
|
||||||
|
virtual TCursor* get_cursor() const { return _cur; }
|
||||||
|
virtual bool print_quadro(const int OffsetDitta, const bool modulaser);
|
||||||
|
|
||||||
|
public:
|
||||||
|
TStampaBase(char livel) : TStampaQuadro("Base", livel) { }
|
||||||
|
};
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Quadro L aggiuntivo
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
class TQuadroL : public TDicForm
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
long _codditta;
|
||||||
|
protected:
|
||||||
|
void stampa_testata(TPrinter& pr);
|
||||||
|
void stampa_totali_L(TPrinter& pr);
|
||||||
|
bool stampa_L(TPrinter& pr,const long lStartRec,const int iRecL);
|
||||||
|
virtual int dic_form_len() const { return BASE_FORMLEN; }
|
||||||
|
virtual void next_page(TPrinter& pr) { fill_page(pr, -1); }
|
||||||
|
virtual void set_body(TPrinter& pr, const char tipo) {}
|
||||||
|
virtual int prima_riga(PaginaQuadro p) const { return 3;}
|
||||||
|
public:
|
||||||
|
virtual bool print(const long codditta, const long NumFis, const long NumNoFis);
|
||||||
|
TQuadroL(const char* sNomeForm, const char* quadro) : TDicForm(sNomeForm, quadro) {}
|
||||||
|
virtual ~TQuadroL() {}
|
||||||
|
};
|
||||||
|
|
||||||
|
const int _RIGA_TOTALI_AGG_L = 65;
|
||||||
|
const long _START_AGG_L = 17L;
|
||||||
|
const int _REC_PRIMA_AGG_L = 12;
|
||||||
|
const int _REC_SECONDA_AGG_L = 14;
|
||||||
|
|
||||||
|
class TStampaQuadroAggL : public TStampaQuadro
|
||||||
|
{
|
||||||
|
TQuadroL* _form;
|
||||||
|
protected:
|
||||||
|
virtual bool user_create();
|
||||||
|
virtual bool user_destroy();
|
||||||
|
virtual TDicForm* get_form() const { return _form; }
|
||||||
|
|
||||||
|
public:
|
||||||
|
TStampaQuadroAggL(const char* quadro, char liv):TStampaQuadro(quadro, liv) {}
|
||||||
|
virtual ~TStampaQuadroAggL() { }
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
1081
m770/77stq.cpp
1081
m770/77stq.cpp
File diff suppressed because it is too large
Load Diff
@ -181,9 +181,9 @@ TMask* TQuadriBB1_application::load_mask(int n)
|
|||||||
|
|
||||||
bool TQuadriBB1_application::QBCalcola37(TMask_field& f, KEY k)
|
bool TQuadriBB1_application::QBCalcola37(TMask_field& f, KEY k)
|
||||||
{
|
{
|
||||||
if (k==K_TAB)
|
TMask& m=f.mask();
|
||||||
|
if (k==K_TAB && m.is_running())
|
||||||
{
|
{
|
||||||
TMask& m=f.mask();
|
|
||||||
real c28=m.get_real(QBF_TIND7494);
|
real c28=m.get_real(QBF_TIND7494);
|
||||||
real c29=m.get_real(QBF_TRID);
|
real c29=m.get_real(QBF_TRID);
|
||||||
real c37 = c28 - c29;
|
real c37 = c28 - c29;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user