Corretta la stampa definitiva

git-svn-id: svn://10.65.10.50/trunk@5454 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
augusto 1997-10-27 11:06:32 +00:00
parent d51bc73f5a
commit 36dd13f0b3
4 changed files with 164 additions and 105 deletions

View File

@ -1,10 +1,18 @@
#include <mask.h> #include <mask.h>
#include <applicat.h> #include <applicat.h>
#include <form.h> #include <form.h>
#include <progind.h>
#include "provv.h" #include "provv.h"
#include "pr1300a.h" #include "pr1300a.h"
class TStampa_schedeprovv : public TSkeleton_application class TStampa_schedeprovv : public TSkeleton_application
{ {
TMask * _m;
void riporta_pagamenti(TCursor &cur);
protected: protected:
virtual bool create(); virtual bool create();
virtual bool destroy(); virtual bool destroy();
@ -13,70 +21,94 @@ protected:
bool TStampa_schedeprovv::create() bool TStampa_schedeprovv::create()
{ {
_m= new TMask ("pr1300a");
return TSkeleton_application::create(); return TSkeleton_application::create();
} }
bool TStampa_schedeprovv::destroy() bool TStampa_schedeprovv::destroy()
{ {
delete _m;
return TSkeleton_application::destroy(); return TSkeleton_application::destroy();
} }
void TStampa_schedeprovv::riporta_pagamenti(TCursor &cur)
{
if (cur.items()==0) return;
const TRelation * r=cur.relation();
TProgind barra(cur.items(),"Registro le provvigioni pagate");
for (int c=0; c<cur.items(); c++)
{
cur=c;
barra.setstatus(c);
// stampa definitiva: riporta le provvigioni maturate sulle provv. pagate
real val;
val=r->lfile().get_real(PROV_PROVVMAT);
if (!val.is_zero() &&
!r->lfile().get_bool(PROV_SALDATA)) // this should never happen!
{
r->lfile().reread(_lock);
val+=r->lfile().get_real(PROV_PROVVPAG);
r->lfile().put(PROV_PROVVPAG,val);
r->lfile().put(PROV_PROVVMAT,0);
if (val>=r->lfile().get_real(PROV_IMPPROVV))
r->lfile().put(PROV_SALDATA,"X");
r->lfile().rewrite();
}
}
}
void TStampa_schedeprovv::main_loop() void TStampa_schedeprovv::main_loop()
{ {
TMask m("pr1300a");
TForm frm("pr1300a"); TForm frm("pr1300a");
/*
TForm frm("pr1300a"); //const TPrint_section& head = frm.section('H', odd_page);
const TPrint_section& head = frm.section('H', odd_page); //const TPrint_section& foot = frm.section('F', odd_page);
const TPrint_section& foot = frm.section('F', odd_page);
const int hh = head.height(); const int hh = 3;//head.height();
const int fh = foot.height(); const int fh = 1;//foot.height();
const int fl = printer().formlen(); const int fl = frm.height();
int rows[4]; // Righe orizzontali int rows[4]; // Righe orizzontali
rows[0] = hh-2; // Terzultima riga della testata rows[0] = hh-2; // Terzultima riga della testata
rows[1] = hh; // Ultima riga della testata rows[1] = hh; // Ultima riga della testata
rows[2] = fl-fh+1; // Prima riga del footer rows[2] = fl-fh+1; // Prima riga del footer
rows[3] = 0; rows[3] = 0;
int rows[4]; // Righe orizzontali
rows[0] = 2; // Terzultima riga della testata
rows[1] = 4; // Ultima riga della testata
rows[2] = 60; // Prima riga del footer
rows[3] = 0;
frm.genera_fincatura(odd_page, rows[0], rows[1], rows);
frm.genera_intestazioni(odd_page, rows[1]-1);
*/
while (m.run()!=K_QUIT) frm.genera_intestazioni(odd_page, rows[1]-1);
//frm.genera_fincatura(odd_page, rows[0], rows[1], rows);
while (_m->run()!=K_QUIT)
{ {
// filtro e regione // filtro e regione
if (m.get(F_FILTRO).not_empty()) if (_m->get(F_FILTRO).not_empty())
{ {
TString filter(PROV_SALDATA); TString filter(PROV_SALDATA);
if (m.get(F_FILTRO)[0]=='P') if (_m->get(F_FILTRO)[0]=='P')
filter << "==\"X\"" ; filter << "==\"X\"" ;
else else
filter << "!=\"X\"" ; filter << "!=\"X\"" ;
frm.cursor()->setfilter(filter); frm.cursor()->setfilter(filter);
} else } else
frm.cursor()->setfilter(""); frm.cursor()->setfilter("");
TRectype start(LF_PROVV),end(LF_PROVV); TRectype start(LF_PROVV),end(LF_PROVV);
if (m.get(F_DAAGE).not_empty()) if (_m->get(F_DAAGE).not_empty())
start.put(PROV_CODAGE,m.get(F_DAAGE)); start.put(PROV_CODAGE,_m->get(F_DAAGE));
if (m.get(F_AAGE).not_empty()) if (_m->get(F_AAGE).not_empty())
end.put(PROV_CODAGE,m.get(F_AAGE)); end.put(PROV_CODAGE,_m->get(F_AAGE));
frm.cursor()->setregion(start,end); frm.cursor()->setregion(start,end);
// abilita le sezioni dei totali // abilita le sezioni dei totali
frm.find_field('B',odd_page,"CLIENTI").show(!m.get_bool(F_RAGGCLI)); frm.find_field('B',odd_page,"CLIENTI").show(!_m->get_bool(F_RAGGCLI));
frm.find_field('B',odd_page,"HCLIENTI").show(!m.get_bool(F_RAGGDOC)); frm.find_field('B',odd_page,"HCLIENTI").show(!_m->get_bool(F_RAGGDOC));
frm.find_field('B',odd_page,"DOCUMENTI").show(!m.get_bool(F_RAGGDOC)); frm.find_field('B',odd_page,"DOCUMENTI").show(!_m->get_bool(F_RAGGDOC));
frm.find_field('B',odd_page,"HDOCUMENTI").show(!m.get_bool(F_RAGGRATE)); frm.find_field('B',odd_page,"HDOCUMENTI").show(!_m->get_bool(F_RAGGRATE));
frm.find_field('B',odd_page,"RATEDOC").show(!m.get_bool(F_RAGGRATE)); frm.find_field('B',odd_page,"RATEDOC").show(!_m->get_bool(F_RAGGRATE));
frm.print(); frm.print();
if (_m->get(F_DEFINITIVA)[0]=='D')
{
riporta_pagamenti(*frm.cursor());
}
} }
} }

View File

@ -24,7 +24,7 @@ BEGIN
END END
SECTION HEADER ODD 3 SECTION HEADER ODD 4
STRINGA 1 40 1 STRINGA 1 40 1
BEGIN BEGIN
@ -49,7 +49,7 @@ END
STRINGA 5 146 STRINGA 5 146
BEGIN BEGIN
KEY "Separatore (iniziale)" KEY "Separatore (iniziale)"
PROMPT 1 3 "------------------------------------------------------------------------------------------------------------------------------------------------------" PROMPT 1 4 "------------------------------------------------------------------------------------------------------------------------------------------------------"
END END
@ -157,6 +157,62 @@ BEGIN
MESSAGE COPY,402 MESSAGE COPY,402
END END
NUMBER 103 15
BEGIN
SPECIAL STRINGA INTESTAZIONE "@CTotale doc./rata" "Totale documento/rata"
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
KEY "IMPORTO"
PROMPT 3 1 ""
END
NUMBER 104 14
BEGIN
SPECIAL STRINGA INTESTAZIONE "@CTotale provvigione" "Totale provv."
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
KEY "IMPORTO"
PROMPT 4 1 ""
END
NUMBER 105 6
BEGIN
SPECIAL STRINGA INTESTAZIONE "@CPerc. prov." "Perc. provv."
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
KEY "IMPORTO"
PROMPT 5 1 ""
END
NUMBER 106 15
BEGIN
SPECIAL STRINGA INTESTAZIONE "@CImporto pagato" "Importo pagato"
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
KEY "IMPORTO"
PROMPT 6 1 ""
END
NUMBER 107 14
BEGIN
SPECIAL STRINGA INTESTAZIONE "@CProvvigione pagata" "Provv. pagata"
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
KEY "IMPORTO"
PROMPT 7 1 ""
END
NUMBER 108 15
BEGIN
SPECIAL STRINGA INTESTAZIONE "@CImporto maturato" "Importo maturato"
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
KEY "IMPORTO"
PROMPT 8 1 ""
END
NUMBER 109 14
BEGIN
SPECIAL STRINGA INTESTAZIONE "@CProvvigione maturata" "Provv. maturata"
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
KEY "IMPORTO"
PROMPT 9 1 ""
END
SECTION CLIENTI 2 0 0 FILE LF_PROVV GROUP CODAGE SECTION CLIENTI 2 0 0 FILE LF_PROVV GROUP CODAGE
// ************************** // **************************
@ -219,10 +275,7 @@ SECTION CLIENTI 2 0 0 FILE LF_PROVV GROUP CODAGE
END END
NUMBER 103 15 NUMBER 103 15
BEGIN BEGIN
SPECIAL STRINGA INTESTAZIONE "Totale documento/rata" "Totale documento/rata" KEY "IMPORTO rata"
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
KEY "IMPORTO"
PROMPT 3 1 "" PROMPT 3 1 ""
PICTURE "###.###.###.###" PICTURE "###.###.###.###"
FIELD LF_PROVV->IMPRATA FIELD LF_PROVV->IMPRATA
@ -230,31 +283,22 @@ SECTION CLIENTI 2 0 0 FILE LF_PROVV GROUP CODAGE
END END
NUMBER 104 14 NUMBER 104 14
BEGIN BEGIN
SPECIAL STRINGA INTESTAZIONE "Totale provv." "Totale provv." KEY "IMPORTO provvigione"
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
KEY "IMPORTO"
PROMPT 4 1 "" PROMPT 4 1 ""
PICTURE "##.###.###.###" PICTURE "##.###.###.###"
FIELD LF_PROVV->IMPPROVV FIELD LF_PROVV->IMPPROVV
MESSAGE ADD,204 MESSAGE ADD,204
END END
NUMBER 105 7 NUMBER 105 6
BEGIN BEGIN
SPECIAL STRINGA INTESTAZIONE "Perc. provv." "Perc. provv." KEY "perc. provv."
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
KEY "IMPORTO"
PROMPT 5 1 "" PROMPT 5 1 ""
PICTURE "##@,@#%" PICTURE "##@,@#"
MESSAGE _NUMEXPR,#104/#103*100 MESSAGE _NUMEXPR,#104/#103*100
END END
NUMBER 106 15 NUMBER 106 15
BEGIN BEGIN
SPECIAL STRINGA INTESTAZIONE "Importo pagato" "Importo pagato" KEY "IMPORTO pagato"
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
KEY "IMPORTO"
PROMPT 6 1 "" PROMPT 6 1 ""
PICTURE "###.###.###.###" PICTURE "###.###.###.###"
FIELD PAGATO FIELD PAGATO
@ -262,10 +306,7 @@ SECTION CLIENTI 2 0 0 FILE LF_PROVV GROUP CODAGE
END END
NUMBER 107 14 NUMBER 107 14
BEGIN BEGIN
SPECIAL STRINGA INTESTAZIONE "Provv. pagata" "Provv. pagata" KEY "provv pagata"
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
KEY "IMPORTO"
PROMPT 7 1 "" PROMPT 7 1 ""
PICTURE "##.###.###.###" PICTURE "##.###.###.###"
FIELD PROVVPAG FIELD PROVVPAG
@ -273,9 +314,6 @@ SECTION CLIENTI 2 0 0 FILE LF_PROVV GROUP CODAGE
END END
NUMBER 108 15 NUMBER 108 15
BEGIN BEGIN
SPECIAL STRINGA INTESTAZIONE "Importo maturato" "Importo maturato"
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
KEY "IMPORTO" KEY "IMPORTO"
PROMPT 8 1 "" PROMPT 8 1 ""
PICTURE "###.###.###.###" PICTURE "###.###.###.###"
@ -284,10 +322,7 @@ SECTION CLIENTI 2 0 0 FILE LF_PROVV GROUP CODAGE
END END
NUMBER 109 14 NUMBER 109 14
BEGIN BEGIN
SPECIAL STRINGA INTESTAZIONE "Provv. maturata" "Provv. maturata" KEY "provv mat"
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
KEY "IMPORTO"
PROMPT 9 1 "" PROMPT 9 1 ""
PICTURE "##.###.###.###" PICTURE "##.###.###.###"
FIELD PROVVMAT FIELD PROVVMAT
@ -311,10 +346,7 @@ SECTION CLIENTI 2 0 0 FILE LF_PROVV GROUP CODAGE
END END
NUMBER 103 15 NUMBER 103 15
BEGIN BEGIN
SPECIAL STRINGA INTESTAZIONE "Totale documento/rata" "Totale documento/rata" KEY "IMPORTO rata"
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
KEY "IMPORTO"
PROMPT 3 1 "" PROMPT 3 1 ""
PICTURE "###.###.###.###" PICTURE "###.###.###.###"
FIELD LF_PROVV->IMPRATA FIELD LF_PROVV->IMPRATA
@ -322,31 +354,22 @@ SECTION CLIENTI 2 0 0 FILE LF_PROVV GROUP CODAGE
END END
NUMBER 104 14 NUMBER 104 14
BEGIN BEGIN
SPECIAL STRINGA INTESTAZIONE "Totale provv." "Totale provv." KEY "totale provv"
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
KEY "IMPORTO"
PROMPT 4 1 "" PROMPT 4 1 ""
PICTURE "##.###.###.###" PICTURE "##.###.###.###"
FIELD LF_PROVV->IMPPROVV FIELD LF_PROVV->IMPPROVV
MESSAGE ADD,204 MESSAGE ADD,204
END END
NUMBER 105 7 NUMBER 105 6
BEGIN BEGIN
SPECIAL STRINGA INTESTAZIONE "Perc. provv." "Perc. provv." KEY "perc provv"
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
KEY "IMPORTO"
PROMPT 5 1 "" PROMPT 5 1 ""
PICTURE "##@,@#%" PICTURE "##@,@#"
MESSAGE _NUMEXPR,#104/#103*100 MESSAGE _NUMEXPR,#104/#103*100
END END
NUMBER 106 15 NUMBER 106 15
BEGIN BEGIN
SPECIAL STRINGA INTESTAZIONE "Importo pagato" "Importo pagato" KEY "IMPORTO pagato"
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
KEY "IMPORTO"
PROMPT 6 1 "" PROMPT 6 1 ""
PICTURE "###.###.###.###" PICTURE "###.###.###.###"
FIELD PAGATO FIELD PAGATO
@ -354,10 +377,7 @@ SECTION CLIENTI 2 0 0 FILE LF_PROVV GROUP CODAGE
END END
NUMBER 107 14 NUMBER 107 14
BEGIN BEGIN
SPECIAL STRINGA INTESTAZIONE "Provv. pagata" "Provv. pagata" KEY "provv pagata"
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
KEY "IMPORTO"
PROMPT 7 1 "" PROMPT 7 1 ""
PICTURE "##.###.###.###" PICTURE "##.###.###.###"
FIELD PROVVPAG FIELD PROVVPAG
@ -365,10 +385,7 @@ SECTION CLIENTI 2 0 0 FILE LF_PROVV GROUP CODAGE
END END
STRINGA 108 15 STRINGA 108 15
BEGIN BEGIN
SPECIAL STRINGA INTESTAZIONE "Importo maturato" "Importo maturato" KEY "flag saldato"
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
KEY "IMPORTO"
PROMPT 8 1 " SALDATA " PROMPT 8 1 " SALDATA "
END END
END // RATA END // RATA
@ -403,11 +420,11 @@ SECTION CLIENTI 2 0 0 FILE LF_PROVV GROUP CODAGE
MESSAGE ADD,304 MESSAGE ADD,304
GROUP G_TOTDOC GROUP G_TOTDOC
END END
NUMBER 205 7 NUMBER 205 6
BEGIN BEGIN
KEY "IMPORTO" KEY "IMPORTO"
PROMPT 5 1 "" PROMPT 5 1 ""
PICTURE "##@,@#%" PICTURE "##@,@#"
MESSAGE _NUMEXPR,#204/#203*100 MESSAGE _NUMEXPR,#204/#203*100
END END
NUMBER 206 15 NUMBER 206 15
@ -474,11 +491,11 @@ SECTION CLIENTI 2 0 0 FILE LF_PROVV GROUP CODAGE
MESSAGE ADD,404 MESSAGE ADD,404
GROUP G_TOTCLI GROUP G_TOTCLI
END END
NUMBER 305 7 NUMBER 305 6
BEGIN BEGIN
KEY "IMPORTO" KEY "IMPORTO"
PROMPT 5 1 "" PROMPT 5 1 ""
PICTURE "##@,@#%" PICTURE "##@,@#"
MESSAGE _NUMEXPR,#304/#303*100 MESSAGE _NUMEXPR,#304/#303*100
END END
NUMBER 306 15 NUMBER 306 15
@ -541,11 +558,11 @@ END // end clienti
PICTURE "##.###.###.###" PICTURE "##.###.###.###"
GROUP G_TOTAGE GROUP G_TOTAGE
END END
NUMBER 405 7 NUMBER 405 6
BEGIN BEGIN
KEY "IMPORTO" KEY "IMPORTO"
PROMPT 5 2 "" PROMPT 5 2 ""
PICTURE "##@,@#%" PICTURE "##@,@#"
MESSAGE _NUMEXPR,#404/#403*100 MESSAGE _NUMEXPR,#404/#403*100
GROUP G_TOTAGE GROUP G_TOTAGE
END END

View File

@ -3,4 +3,5 @@
#define F_RAGGRATE 103 #define F_RAGGRATE 103
#define F_RAGGDOC 104 #define F_RAGGDOC 104
#define F_RAGGCLI 105 #define F_RAGGCLI 105
#define F_FILTRO 106 #define F_FILTRO 106
#define F_DEFINITIVA 107

View File

@ -24,9 +24,18 @@ BEGIN
GROUP G_CODAGE GROUP G_CODAGE
END END
LIST F_DEFINITIVA 30
BEGIN
PROMPT 2 5 " Stampa "
ITEM "P|provvisoria"
MESSAGE ENABLE,F_FILTRO
ITEM "D|definitiva"
MESSAGE "D",F_FILTRO|DISABLE,F_FILTRO
END
LIST F_FILTRO 30 LIST F_FILTRO 30
BEGIN BEGIN
PROMPT 2 5 " Stampo " PROMPT 2 7 " Stampo "
ITEM "|tutte le provvigioni" ITEM "|tutte le provvigioni"
ITEM "D|solo le provv. da pagare" ITEM "D|solo le provv. da pagare"
ITEM "P|solo le provv. gia' pagate" ITEM "P|solo le provv. gia' pagate"
@ -34,21 +43,21 @@ END
BOOL F_RAGGCLI BOOL F_RAGGCLI
BEGIN BEGIN
PROMPT 2 7 "Raggruppo i clienti" PROMPT 2 9 "Raggruppo i clienti"
MESSAGE TRUE "X",F_RAGGDOC|DISABLE,F_RAGGDOC MESSAGE TRUE "X",F_RAGGDOC|DISABLE,F_RAGGDOC
MESSAGE FALSE ENABLE,F_RAGGDOC MESSAGE FALSE ENABLE,F_RAGGDOC
END END
BOOL F_RAGGDOC BOOL F_RAGGDOC
BEGIN BEGIN
PROMPT 2 9 "Raggruppo i documenti" PROMPT 2 11 "Raggruppo i documenti"
MESSAGE TRUE "X",F_RAGGRATE|DISABLE,F_RAGGRATE MESSAGE TRUE "X",F_RAGGRATE|DISABLE,F_RAGGRATE
MESSAGE FALSE ENABLE,F_RAGGRATE MESSAGE FALSE ENABLE,F_RAGGRATE
END END
BOOL F_RAGGRATE BOOL F_RAGGRATE
BEGIN BEGIN
PROMPT 2 11 "Raggruppo le rate" PROMPT 2 13 "Raggruppo le rate"
END END