Patch level : 2.0 600

Files correlati     : cm0.exe cm0100a.frm
Ricompilazione Demo : [ ]
Commento            :

Corretta stampa conti per commessa:
ora stampa la sezione D/A degli importi e d ei realtivi totali.


git-svn-id: svn://10.65.10.50/trunk@11487 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 2003-10-13 14:51:28 +00:00
parent 762355c267
commit 6c568d83a0
4 changed files with 79 additions and 37 deletions

View File

@ -110,7 +110,7 @@ bool TContixcdc_mask::on_field_event(TOperable_field& o, TField_event e, long jo
case F_DATAINI: case F_DATAINI:
if (e == fe_modify || e == fe_close) if (e == fe_modify || e == fe_close)
{ {
TDate dataini(field(F_DATAINI).get()); TDate dataini(get(F_DATAINI));
if (dataini.ok()) if (dataini.ok())
{ {
TDate datainies = cache().get("ESC", field(F_ANNO).get(), "D0"); TDate datainies = cache().get("ESC", field(F_ANNO).get(), "D0");
@ -122,7 +122,7 @@ bool TContixcdc_mask::on_field_event(TOperable_field& o, TField_event e, long jo
case F_DATAFIN: case F_DATAFIN:
if (e == fe_modify || fe_close) if (e == fe_modify || fe_close)
{ {
TDate datafin(field(F_DATAFIN).get()); TDate datafin(get(F_DATAFIN));
if (datafin.ok()) if (datafin.ok())
{ {
TDate datafines = cache().get("ESC", field(F_ANNO).get(), "D1"); TDate datafines = cache().get("ESC", field(F_ANNO).get(), "D1");
@ -186,12 +186,13 @@ protected:
void print_footer_fsc(); void print_footer_fsc();
void print_header_fsc(); void print_header_fsc();
void set_intestazione(); void set_intestazione();
void fill_importo(const TImporto& imp, short id_imp, short id_sez);
void fill_body(const TTotali& tot); //riempie il campo body con tutti i totali void fill_body(const TTotali& tot); //riempie il campo body con tutti i totali
void print_body(); //stampa effettivamente il body void print_body(); //stampa effettivamente il body
void set_field(int id, const real& val); //mette in un campo del body odd un valore numerico void set_field(int id, const real& val); //mette in un campo del body odd un valore numerico
void set_field(int id, const char* val); //mette in un campo del body odd una stringa void set_field(int id, const char* val); //mette in un campo del body odd una stringa
void print_specialsection(char s, pagetype pos); // stampa una sezione qualunque ( void print_specialsection(char s, pagetype pos); // stampa una sezione qualunque (
void aggiorna_totali(const TImporto importo, const TDate data); void aggiorna_totali(const TImporto& importo, const TDate& data);
public: public:
TContixCdc() {} TContixCdc() {}
@ -354,17 +355,36 @@ void TContixCdc::set_field(int id, const char* val)
_form->find_field('B', odd_page, id).set(val); _form->find_field('B', odd_page, id).set(val);
} }
void TContixCdc::fill_importo(const TImporto& importo, short id_imp, short id_sez)
{
if (!importo.is_zero())
{
TImporto imp(importo);
imp.normalize();
set_field(id_imp, imp.valore());
char sez[2] = { imp.sezione(), '\0' };
set_field(id_sez, sez);
}
else
{
set_field(id_imp, "");
set_field(id_sez, "");
}
}
void TContixCdc::fill_body(const TTotali& tot) void TContixCdc::fill_body(const TTotali& tot)
{ {
// riempie il body odd, contenente i totali; lo fa chiamando la set_field per ogni campo // riempie il body odd, contenente i totali; lo fa chiamando la set_field per ogni campo
set_field(FR_PROGPREC, tot._tot_progprec.valore()); fill_importo(tot._tot_progprec, FR_PROGPREC, FR_SEGNO_PROGPREC);
set_field(FR_PERIODO, tot._tot_periodo.valore()); fill_importo(tot._tot_periodo, FR_PERIODO, FR_SEGNO_PERIODO);
real tempval1 = tot._tot_progprec.valore()+tot._tot_periodo.valore();
set_field(FR_PROG, tempval1); TImporto tempval = tot._tot_progprec; tempval += tot._tot_periodo;
set_field(FR_SALDOATT, tot._tot_saldoatt.valore()); fill_importo(tempval, FR_PROG, FR_SEGNO_PROG);
fill_importo(tot._tot_saldoatt, FR_SALDOATT, FR_SEGNO_SALDOATT);
} }
void TContixCdc::aggiorna_totali(const TImporto importo, const TDate data) void TContixCdc::aggiorna_totali(const TImporto& importo, const TDate& data)
{ {
if (data < _dataini) if (data < _dataini)
_t_sottoc._tot_progprec+=importo; _t_sottoc._tot_progprec+=importo;
@ -425,8 +445,6 @@ void TContixCdc::main_loop()
if (dacdc.empty() && acdc.empty()) if (dacdc.empty() && acdc.empty())
filtro << " && " << "(CODCMS!=\"\")"; filtro << " && " << "(CODCMS!=\"\")";
TRectype darec(LF_RMOV), arec(LF_RMOV); TRectype darec(LF_RMOV), arec(LF_RMOV);
darec.zero();
arec.zero();
darec.put(RMV_GRUPPO, _mask->get_int(F_GRUPPOINI)); darec.put(RMV_GRUPPO, _mask->get_int(F_GRUPPOINI));
darec.put(RMV_CONTO, _mask->get_int(F_CONTOINI)); darec.put(RMV_CONTO, _mask->get_int(F_CONTOINI));
darec.put(RMV_SOTTOCONTO, _mask->get_long(F_SOTTOCINI)); darec.put(RMV_SOTTOCONTO, _mask->get_long(F_SOTTOCINI));
@ -474,7 +492,7 @@ void TContixCdc::main_loop()
_currgruppo = rmovrec.get_int(RMV_GRUPPO); _currgruppo = rmovrec.get_int(RMV_GRUPPO);
_currconto = rmovrec.get_int(RMV_CONTO); _currconto = rmovrec.get_int(RMV_CONTO);
TDate datareg = rmovrec.get_date(RMV_DATAREG); TDate datareg = rmovrec.get_date(RMV_DATAREG);
TImporto importo(rmovrec.get_char(RMV_SEZIONE), rmovrec.get_real(RMV_IMPORTO)); const TImporto importo(rmovrec.get_char(RMV_SEZIONE), rmovrec.get_real(RMV_IMPORTO));
if ((_oldcms != _currcms) || (_oldfsc != _currfsc) || (_oldgruppo != _currgruppo) || (_oldconto != _currconto) || (_oldsottoc != _currsottoc)) if ((_oldcms != _currcms) || (_oldfsc != _currfsc) || (_oldgruppo != _currgruppo) || (_oldconto != _currconto) || (_oldsottoc != _currsottoc))
{ {
print_sottoc(); print_sottoc();

View File

@ -21,3 +21,8 @@
#define FR_PERIODO 36 #define FR_PERIODO 36
#define FR_PROG 37 #define FR_PROG 37
#define FR_SALDOATT 38 #define FR_SALDOATT 38
#define FR_SEGNO_PROGPREC 45
#define FR_SEGNO_PERIODO 46
#define FR_SEGNO_PROG 47
#define FR_SEGNO_SALDOATT 48

View File

@ -36,7 +36,7 @@ END
NUMERO 4 7 NUMERO 4 7
BEGIN BEGIN
KEY "Nr. pagina" KEY "Nr. pagina"
PROMPT 120 1 "Pagina " PROMPT 120 1 "Pag. "
MESSAGE _PAGENO MESSAGE _PAGENO
END END
@ -96,49 +96,49 @@ SECTION HEADER ODD 5
STRINGA -1 STRINGA -1
BEGIN BEGIN
KEY "Intestazione stampa" KEY "Intestazione stampa"
PROMPT 1 2 "------------------------------------------------------------------------------------------------------------------------------------" PROMPT 1 1 "____________________________________________________________________________________________________________________________________"
END END
STRINGA FR_CMS 20 STRINGA FR_CMS 20
BEGIN BEGIN
KEY "Codice commessa" KEY "Codice commessa"
PROMPT 1 3 "@bCDC/Commessa " PROMPT 1 2 "@bCDC/Commessa "
END END
STRINGA FR_D_CMS 50 STRINGA FR_D_CMS 50
BEGIN BEGIN
KEY "Descrizione commessa" KEY "Descrizione commessa"
PROMPT 35 3 "@b" PROMPT 35 2 "@b"
END END
STRINGA -1 STRINGA -1
BEGIN BEGIN
KEY "Intestazione stampa" KEY "Intestazione stampa"
PROMPT 70 4 " Progr. prec." PROMPT 68 3 "Progr. prec."
END END
STRINGA -1 STRINGA -1
BEGIN BEGIN
KEY "Intestazione stampa" KEY "Intestazione stampa"
PROMPT 85 4 " Tot. periodo" PROMPT 85 3 "Tot. periodo"
END END
STRINGA -1 STRINGA -1
BEGIN BEGIN
KEY "Intestazione stampa" KEY "Intestazione stampa"
PROMPT 100 4 " Tot. progr." PROMPT 103 3 "Tot. progr."
END END
STRINGA -1 STRINGA -1
BEGIN BEGIN
KEY "Intestazione stampa" KEY "Intestazione stampa"
PROMPT 115 4 " Saldo attuale" PROMPT 118 3 "Saldo attuale"
END END
STRINGA -1 STRINGA -1
BEGIN BEGIN
KEY "Intestazione stampa" KEY "Intestazione stampa"
PROMPT 1 5 "------------------------------------------------------------------------------------------------------------------------------------" PROMPT 1 4 "____________________________________________________________________________________________________________________________________"
END END
END // section header odd END // section header odd
@ -166,52 +166,71 @@ SECTION BODY ODD 1
NUMERO FR_GRUPPO 3 NUMERO FR_GRUPPO 3
BEGIN BEGIN
KEY "Gruppo" KEY "Gruppo"
PROMPT 5 1 "" PROMPT 1 1 ""
END END
NUMERO FR_CONTO 3 NUMERO FR_CONTO 3
BEGIN BEGIN
KEY "Conto" KEY "Conto"
PROMPT 9 1 "" PROMPT 5 1 ""
END END
NUMERO FR_SOTTOC 6 NUMERO FR_SOTTOC 6
BEGIN BEGIN
KEY "Gruppo/Conto/Sottoconto" KEY "Gruppo/Conto/Sottoconto"
PROMPT 13 1 "" PROMPT 9 1 ""
END END
STRINGA FR_D_SOTTOC 47
STRINGA FR_D_SOTTOC 48
BEGIN BEGIN
KEY "Descrizione sottoconto" KEY "Descrizione sottoconto"
PROMPT 20 1 "" PROMPT 16 1 ""
END END
VALUTA FR_PROGPREC 14 VALUTA FR_PROGPREC 14
BEGIN BEGIN
PROMPT 70 1 "" PROMPT 66 1 ""
PICTURE "." PICTURE "."
END
STRINGA FR_SEGNO_PROGPREC 1
BEGIN
PROMPT 81 1 ""
END END
VALUTA FR_PERIODO 14 VALUTA FR_PERIODO 14
BEGIN BEGIN
PROMPT 85 1 "" PROMPT 83 1 ""
PICTURE "." PICTURE "."
END
STRINGA FR_SEGNO_PERIODO 1
BEGIN
PROMPT 98 1 ""
END END
VALUTA FR_PROG 14 VALUTA FR_PROG 14
BEGIN BEGIN
PROMPT 100 1 "" PROMPT 100 1 ""
PICTURE "." PICTURE "."
END END
VALUTA FR_SALDOATT 14 STRINGA FR_SEGNO_PROG 1
BEGIN BEGIN
PROMPT 115 1 "" PROMPT 115 1 ""
PICTURE "." END
VALUTA FR_SALDOATT 14
BEGIN
PROMPT 117 1 ""
PICTURE "."
END END
STRINGA FR_SEGNO_SALDOATT 1
BEGIN
PROMPT 132 1 ""
END
END // section body END // section body
END // form END // form

View File

@ -170,7 +170,7 @@ BEGIN
OUTPUT F_CONTOINI CONTO OUTPUT F_CONTOINI CONTO
OUTPUT F_SOTTOCINI SOTTOCONTO OUTPUT F_SOTTOCINI SOTTOCONTO
OUTPUT F_DESCRINI DESCR OUTPUT F_DESCRINI DESCR
CHECKTYPE NORMAL CHECKTYPE SEARCH
ADD RUN cg0 -0 ADD RUN cg0 -0
END END
@ -225,7 +225,7 @@ BEGIN
OUTPUT F_CONTOFIN CONTO OUTPUT F_CONTOFIN CONTO
OUTPUT F_SOTTOCFIN SOTTOCONTO OUTPUT F_SOTTOCFIN SOTTOCONTO
OUTPUT F_DESCRFIN DESCR OUTPUT F_DESCRFIN DESCR
CHECKTYPE NORMAL CHECKTYPE SEARCH
WARNING "Sottoconto inesistente o mancante" WARNING "Sottoconto inesistente o mancante"
ADD RUN cg0 -0 ADD RUN cg0 -0
END END