Patch level : 10.0 430

Files correlati     : sc2.exe
Ricompilazione Demo : [ ]
Commento

Bug 0001422

stampa previsione incassi e pagamenti suddiviso in fasce, si richiede di poter scegliere gli intervalli di scadenza che costituiscono la fascia, per esempio a loro interessa la fascia composta da 30 gg; 90 GG; 180 gg; 360gg. Gli intermedi non li vogliono vedere


git-svn-id: svn://10.65.10.50/trunk@19371 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
alex 2009-10-04 23:17:25 +00:00
parent 5ba3a2cac4
commit 04d14fdf02
3 changed files with 38 additions and 37 deletions

View File

@ -37,7 +37,7 @@ TPRSC_recordset::TPRSC_recordset(const TString_array & colnames) : TAS400_record
/////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////
#define NUMERO_FASCE 9 #define NUMERO_FASCE 9
#define LIMITI {0, 30, 60, 90, 120, 150, 180, 210, 240, 270} // #define LIMITI {0, 30, 60, 90, 120, 150, 180, 210, 240, 270}
enum tipo_st {clienti=0, fornitori=1}; enum tipo_st {clienti=0, fornitori=1};
@ -111,6 +111,7 @@ class TProspettoScadenze : public TPrintapp
static TString _last_game; static TString _last_game;
static bool fil_function(const TRelation *); static bool fil_function(const TRelation *);
TString_array _colnames; TString_array _colnames;
int _limiti[NUMERO_FASCE];
public: public:
virtual bool preprocess_page(int file, int counter); virtual bool preprocess_page(int file, int counter);
@ -514,11 +515,18 @@ bool TProspettoScadenze::open_print()
_s_date.add(new TDate); _s_date.add(new TDate);
_ns_date.add(new TDate); _ns_date.add(new TDate);
} }
int limiti[NUMERO_FASCE + 1] = LIMITI;
for (int j = 0; j <= _sfasce; j++) for (int j = 0; j <= _sfasce; j++)
(TDate &)_s_date[j] = _limscad - (const long) limiti[j]; {
TDate & d = (TDate &)_s_date[j];
d = _limscad;
d.addmonth(-_limiti[j]);
}
for (int k = 0; k <= _nsfasce; k++) for (int k = 0; k <= _nsfasce; k++)
(TDate &)_ns_date[k] = _limscad + (const long) limiti[k]; {
TDate & d = (TDate &)_ns_date[k];
d = _limscad;
d.addmonth(_limiti[k]);
}
_anno.cut(0);_numdoc.cut(0);_protiva.cut(0);_datadoc.cut(0); _anno.cut(0);_numdoc.cut(0);_protiva.cut(0);_datadoc.cut(0);
_codval.cut(0);_cod.cut(0); _des.cut(0); _cod_pre.cut(0); _codval.cut(0);_cod.cut(0); _des.cut(0); _cod_pre.cut(0);
for (int it=0; it < _t.items(); it++) for (int it=0; it < _t.items(); it++)
@ -573,17 +581,17 @@ bool TProspettoScadenze::open_print()
_colnames.destroy(); _colnames.destroy();
if (_sinfasce) if (_sinfasce)
{ {
_colnames.add(format("Scaduto > %3d gg", limiti[_sfasce])); _colnames.add(format("Scaduto > %3d gg", _limiti[_sfasce] * 30));
for (int i = _sfasce; i > 0; i--) for (int i = _sfasce; i > 0; i--)
_colnames.add(format("Scaduto <= %3d gg", limiti[i])); _colnames.add(format("Scaduto <= %3d gg", _limiti[i] * 30));
} }
else else
_colnames.add("Scaduto"); _colnames.add("Scaduto");
if (_nsinfasce) if (_nsinfasce)
{ {
for (int i = 1; i <= _nsfasce; i++) for (int i = 1; i <= _nsfasce; i++)
_colnames.add(format("A Scadere <= %3d gg", limiti[i])); _colnames.add(format("A Scadere <= %3d gg", _limiti[i] * 30));
_colnames.add(format("A Scadere > %3d gg", limiti[_nsfasce])); _colnames.add(format("A Scadere > %3d gg", _limiti[_nsfasce] * 30));
} }
else else
_colnames.add("A Scadere"); _colnames.add("A Scadere");
@ -710,6 +718,12 @@ bool TProspettoScadenze::set_print(int)
KEY k = _m->run(); KEY k = _m->run();
_excel = k != K_ENTER; _excel = k != K_ENTER;
print = k != K_QUIT; print = k != K_QUIT;
int nmesi = _m->get_int(F_NMESI);
if (nmesi == 0)
nmesi = 1;
for (int i = 0; i <= NUMERO_FASCE; i++)
_limiti[i] = i * nmesi;
_start = true; _start = true;
} }
_stvaluta = _m->get_bool(F_VALUTA); _stvaluta = _m->get_bool(F_VALUTA);
@ -968,17 +982,16 @@ void TProspettoScadenze::print_header()
meno.fill('-', last_column); meno.fill('-', last_column);
set_header(soh++,(const char *)meno); set_header(soh++,(const char *)meno);
set_header(soh,"CODICE@8gC O G N O M E E N O M E "); set_header(soh,"CODICE@8gC O G N O M E E N O M E ");
int limiti[NUMERO_FASCE + 1] = LIMITI;
int pos = 40; int pos = 40;
rw.cut(0); rw.cut(0);
if (_sinfasce) if (_sinfasce)
{ {
rw << format("@%dg >%3d gg", pos, limiti[_sfasce]); rw << format("@%dg >%3d gg", pos, _limiti[_sfasce] * 30);
pos += 11; pos += 11;
for (int i = _sfasce; i > 0; i--) for (int i = _sfasce; i > 0; i--)
{ {
rw << format("@%dg <= %3d gg", pos, limiti[i] ); rw << format("@%dg <= %3d gg", pos, _limiti[i] * 30);
pos += 11; pos += 11;
} }
set_header(soh, format("@%dg%s", 40+((pos-40)/2), "SCADUTO")); set_header(soh, format("@%dg%s", 40+((pos-40)/2), "SCADUTO"));
@ -994,10 +1007,10 @@ void TProspettoScadenze::print_header()
{ {
for (int i = 1; i <= _nsfasce; i++) for (int i = 1; i <= _nsfasce; i++)
{ {
rw << format("@%dg <= %3d gg", pos, limiti[i]); rw << format("@%dg <= %3d gg", pos, _limiti[i] * 30);
pos = pos + 11; pos = pos + 11;
} }
rw << format("@%dg >%3d gg", pos, limiti[_nsfasce]); rw << format("@%dg >%3d gg", pos, _limiti[_nsfasce] * 30);
pos = pos + 11; pos = pos + 11;
set_header(soh, format("@%dg%s", pos_ascad+((pos-pos_ascad)/2)-5, "A SCADERE")); set_header(soh, format("@%dg%s", pos_ascad+((pos-pos_ascad)/2)-5, "A SCADERE"));
} }

View File

@ -11,3 +11,4 @@
#define F_SCADFASCE 202 #define F_SCADFASCE 202
#define F_ASCADINFASCE 203 #define F_ASCADINFASCE 203
#define F_ASCADFASCE 204 #define F_ASCADFASCE 204
#define F_NMESI 205

View File

@ -185,48 +185,35 @@ BEGIN
FLAGS "D" FLAGS "D"
END END
NUMBER F_NMESI 2
BEGIN
PROMPT 2 16 "Mesi per fascia "
END
BOOLEAN F_SCADINFASCE BOOLEAN F_SCADINFASCE
BEGIN BEGIN
PROMPT 2 16 "Scaduto suddiviso in fasce" PROMPT 2 17 "Scaduto suddiviso in fasce"
HELP "Selezionare se si vuole la stampa scaduto suddiviso in fasce" HELP "Selezionare se si vuole la stampa scaduto suddiviso in fasce"
MESSAGE TRUE ENABLE,F_SCADFASCE MESSAGE TRUE ENABLE,F_SCADFASCE
MESSAGE FALSE RESET,F_SCADFASCE|DISABLE,F_SCADFASCE MESSAGE FALSE RESET,F_SCADFASCE|DISABLE,F_SCADFASCE
END END
LISTBOX F_SCADFASCE 3 NUMBER F_SCADFASCE 1
BEGIN BEGIN
PROMPT 35 16 "Fino alla fascia " PROMPT 35 17 "Fino alla fascia "
ITEM "0|0"
ITEM "1|30"
ITEM "2|60"
ITEM "3|90"
ITEM "4|120"
ITEM "5|150"
ITEM "6|180"
ITEM "7|210"
ITEM "8|240"
END END
BOOLEAN F_ASCADINFASCE BOOLEAN F_ASCADINFASCE
BEGIN BEGIN
PROMPT 2 17 "A scadere suddiviso in fasce" PROMPT 2 18 "A scadere suddiviso in fasce"
HELP "Selezionare se si vuole la stampa a scadere suddiviso in fasce" HELP "Selezionare se si vuole la stampa a scadere suddiviso in fasce"
MESSAGE TRUE ENABLE,F_ASCADFASCE MESSAGE TRUE ENABLE,F_ASCADFASCE
MESSAGE FALSE RESET,F_ASCADFASCE|DISABLE,F_ASCADFASCE MESSAGE FALSE RESET,F_ASCADFASCE|DISABLE,F_ASCADFASCE
END END
LISTBOX F_ASCADFASCE 3 NUMBER F_ASCADFASCE 1
BEGIN BEGIN
PROMPT 35 17 "Fino alla fascia " PROMPT 35 18 "Fino alla fascia "
ITEM "0|0"
ITEM "1|30"
ITEM "2|60"
ITEM "3|90"
ITEM "4|120"
ITEM "5|150"
ITEM "6|180"
ITEM "7|210"
ITEM "8|240"
NUM_EXPR {#F_SCADFASCE+#F_ASCADFASCE < 10} NUM_EXPR {#F_SCADFASCE+#F_ASCADFASCE < 10}
WARNING "E' possibile selezionare massimo 9 fasce in totale" WARNING "E' possibile selezionare massimo 9 fasce in totale"
END END