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 <applicat.h>
#include <form.h>
#include <progind.h>
#include "provv.h"
#include "pr1300a.h"
class TStampa_schedeprovv : public TSkeleton_application
{
TMask * _m;
void riporta_pagamenti(TCursor &cur);
protected:
virtual bool create();
virtual bool destroy();
@ -13,70 +21,94 @@ protected:
bool TStampa_schedeprovv::create()
{
_m= new TMask ("pr1300a");
return TSkeleton_application::create();
}
bool TStampa_schedeprovv::destroy()
{
delete _m;
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()
{
TMask m("pr1300a");
TForm frm("pr1300a");
/*
TForm frm("pr1300a");
const TPrint_section& head = frm.section('H', odd_page);
const TPrint_section& foot = frm.section('F', odd_page);
//const TPrint_section& head = frm.section('H', odd_page);
//const TPrint_section& foot = frm.section('F', odd_page);
const int hh = head.height();
const int fh = foot.height();
const int fl = printer().formlen();
const int hh = 3;//head.height();
const int fh = 1;//foot.height();
const int fl = frm.height();
int rows[4]; // Righe orizzontali
rows[0] = hh-2; // Terzultima riga della testata
rows[1] = hh; // Ultima riga della testata
rows[2] = fl-fh+1; // Prima riga del footer
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
if (m.get(F_FILTRO).not_empty())
{
TString filter(PROV_SALDATA);
if (m.get(F_FILTRO)[0]=='P')
filter << "==\"X\"" ;
else
filter << "!=\"X\"" ;
frm.cursor()->setfilter(filter);
} else
frm.cursor()->setfilter("");
if (_m->get(F_FILTRO).not_empty())
{
TString filter(PROV_SALDATA);
if (_m->get(F_FILTRO)[0]=='P')
filter << "==\"X\"" ;
else
filter << "!=\"X\"" ;
frm.cursor()->setfilter(filter);
} else
frm.cursor()->setfilter("");
TRectype start(LF_PROVV),end(LF_PROVV);
if (m.get(F_DAAGE).not_empty())
start.put(PROV_CODAGE,m.get(F_DAAGE));
if (m.get(F_AAGE).not_empty())
end.put(PROV_CODAGE,m.get(F_AAGE));
if (_m->get(F_DAAGE).not_empty())
start.put(PROV_CODAGE,_m->get(F_DAAGE));
if (_m->get(F_AAGE).not_empty())
end.put(PROV_CODAGE,_m->get(F_AAGE));
frm.cursor()->setregion(start,end);
// abilita le sezioni dei totali
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,"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,"RATEDOC").show(!m.get_bool(F_RAGGRATE));
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,"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,"RATEDOC").show(!_m->get_bool(F_RAGGRATE));
frm.print();
if (_m->get(F_DEFINITIVA)[0]=='D')
{
riporta_pagamenti(*frm.cursor());
}
}
}

View File

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

View File

@ -3,4 +3,5 @@
#define F_RAGGRATE 103
#define F_RAGGDOC 104
#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
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
BEGIN
PROMPT 2 5 " Stampo "
PROMPT 2 7 " Stampo "
ITEM "|tutte le provvigioni"
ITEM "D|solo le provv. da pagare"
ITEM "P|solo le provv. gia' pagate"
@ -34,21 +43,21 @@ END
BOOL F_RAGGCLI
BEGIN
PROMPT 2 7 "Raggruppo i clienti"
PROMPT 2 9 "Raggruppo i clienti"
MESSAGE TRUE "X",F_RAGGDOC|DISABLE,F_RAGGDOC
MESSAGE FALSE ENABLE,F_RAGGDOC
END
BOOL F_RAGGDOC
BEGIN
PROMPT 2 9 "Raggruppo i documenti"
PROMPT 2 11 "Raggruppo i documenti"
MESSAGE TRUE "X",F_RAGGRATE|DISABLE,F_RAGGRATE
MESSAGE FALSE ENABLE,F_RAGGRATE
END
BOOL F_RAGGRATE
BEGIN
PROMPT 2 11 "Raggruppo le rate"
PROMPT 2 13 "Raggruppo le rate"
END