Patch level : 12.00 1414
Files correlati : sc2.exe sc2300.msk Commento : Sampa codici analitica sulla stampa scaduto
This commit is contained in:
parent
f1095a9a9a
commit
d399fa5e3f
@ -75,10 +75,16 @@ class TScad_mask : public TSelection_ext_mask
|
|||||||
_fas_end;
|
_fas_end;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
const TToken_string & get_anal_filter() const;
|
|
||||||
int insert_anal_fields(TMask& m, int page, int lf, int& y, short& dlg, short& dlgd);
|
int insert_anal_fields(TMask& m, int page, int lf, int& y, short& dlg, short& dlgd);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
short cdc_start() const { return _cdc_start; }
|
||||||
|
short cdc_end() const { return _cdc_end; }
|
||||||
|
short cms_start() const { return _cms_start; }
|
||||||
|
short cms_end() const { return _cms_end; }
|
||||||
|
short fas_start() const { return _fas_start; }
|
||||||
|
short fas_end() const { return _fas_end; }
|
||||||
|
const TToken_string & get_anal_filter() const;
|
||||||
TScad_mask();
|
TScad_mask();
|
||||||
virtual ~TScad_mask() = default;
|
virtual ~TScad_mask() = default;
|
||||||
};
|
};
|
||||||
@ -253,7 +259,6 @@ int TScad_mask::insert_anal_fields(TMask& m, int page, int lf, int& y,
|
|||||||
TEdit_field& dfld = m.efield(dlgd + i);
|
TEdit_field& dfld = m.efield(dlgd + i);
|
||||||
|
|
||||||
dfld.set_field(EMPTY_STRING); // Toglie campi che fan saltare gli output!
|
dfld.set_field(EMPTY_STRING); // Toglie campi che fan saltare gli output!
|
||||||
|
|
||||||
}
|
}
|
||||||
y += h + 1;
|
y += h + 1;
|
||||||
dlg += h; dlgd += h;
|
dlg += h; dlgd += h;
|
||||||
@ -288,10 +293,10 @@ struct _LineTotal : public TObject //Oggetto di base per i TAssoc_array dei tot
|
|||||||
class TStampaScaduto : public TPrintapp
|
class TStampaScaduto : public TPrintapp
|
||||||
{
|
{
|
||||||
TRelation *_rel1, *_rel2; // Relazioni di lavoro...
|
TRelation *_rel1, *_rel2; // Relazioni di lavoro...
|
||||||
int _cur1, _cur2, // Identificatori dei cursori di lavoro...
|
int _cur1, _cur2, // Identificatori dei cursori di lavoro...
|
||||||
_cur3, _cur4;
|
_cur3, _cur4;
|
||||||
|
|
||||||
TSelection_ext_mask *_m;
|
TScad_mask *_m;
|
||||||
|
|
||||||
tipo_st _tipost; // Tipo di stampa impostato
|
tipo_st _tipost; // Tipo di stampa impostato
|
||||||
bool _end_printed,
|
bool _end_printed,
|
||||||
@ -311,6 +316,8 @@ class TStampaScaduto : public TPrintapp
|
|||||||
TDecoder _anal;
|
TDecoder _anal;
|
||||||
TToken_string _anal_filter;
|
TToken_string _anal_filter;
|
||||||
bool _select_analitica;
|
bool _select_analitica;
|
||||||
|
bool _st_analitica;
|
||||||
|
|
||||||
|
|
||||||
static TString80 _last_game;
|
static TString80 _last_game;
|
||||||
static bool fil_function(const TRelation *);
|
static bool fil_function(const TRelation *);
|
||||||
@ -776,16 +783,103 @@ bool TStampaScaduto::preprocess_page(int file, int counter)
|
|||||||
(_tipost == clienti && !_buonfin.empty());
|
(_tipost == clienti && !_buonfin.empty());
|
||||||
if (to_print)
|
if (to_print)
|
||||||
{
|
{
|
||||||
if (curr.get_int(PART_NRIGA) == 1)
|
if (curr.get_int(PART_NRIGA) == 1)
|
||||||
{
|
{
|
||||||
if (_pending_clifo)
|
if (_pending_clifo)
|
||||||
{
|
{
|
||||||
set_page_clifoco(nriga); // Setta le righe per stampare le informazioni del cli/fo/conto
|
set_page_clifoco(nriga); // Setta le righe per stampare le informazioni del cli/fo/conto
|
||||||
set_row(++nriga,"");
|
set_row(++nriga, "");
|
||||||
nriga++;
|
nriga++;
|
||||||
_pending_clifo = false;
|
_pending_clifo = false;
|
||||||
}
|
}
|
||||||
set_page_part(nriga);
|
set_page_part(nriga);
|
||||||
|
}
|
||||||
|
if (_st_analitica && r > 0) //Skip next partita if no fatture!
|
||||||
|
{
|
||||||
|
TRiga_partite& rp = p.riga(r);
|
||||||
|
const TString& numregcg = rp.get(PART_NREG);
|
||||||
|
const long numreg = atol(_anal.decode(numregcg));
|
||||||
|
|
||||||
|
if (numreg > 0)
|
||||||
|
{
|
||||||
|
TAnal_mov anal_mov(numreg);
|
||||||
|
TRecord_array & rows = anal_mov.body();
|
||||||
|
TAssoc_array cods;
|
||||||
|
int nrows = rows.rows();
|
||||||
|
|
||||||
|
for (int r = 1; r <= nrows; r++)
|
||||||
|
{
|
||||||
|
const TRectype & row = rows[r];
|
||||||
|
TToken_string cod(row.get(RMOVANA_CODCMS));
|
||||||
|
int pos = 12;
|
||||||
|
|
||||||
|
cod.add(row.get(RMOVANA_CODCCOSTO));
|
||||||
|
cod.add(row.get(RMOVANA_CODFASE));
|
||||||
|
if (!cods.is_key(cod))
|
||||||
|
{
|
||||||
|
cods.add(cod);
|
||||||
|
++nriga;
|
||||||
|
if (_m->cms_start() > 0)
|
||||||
|
{
|
||||||
|
for (short dlg = _m->cms_start(); dlg <= _m->cms_end(); dlg++)
|
||||||
|
{
|
||||||
|
TString format;
|
||||||
|
int len = _m->field(dlg).size();
|
||||||
|
TFieldref fld(*_m->field(dlg).field());
|
||||||
|
|
||||||
|
fld.set_name(RMOVANA_CODCMS);
|
||||||
|
|
||||||
|
const TString val = fld.read(row);
|
||||||
|
|
||||||
|
format << "@" << pos << "g%s";
|
||||||
|
set_row(nriga, format, (const char *)val);
|
||||||
|
if (len < (int)strlen(_m->field(dlg).prompt()))
|
||||||
|
len = strlen(_m->field(dlg).prompt());
|
||||||
|
pos += len + 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (_m->cdc_start() > 0)
|
||||||
|
{
|
||||||
|
for (short dlg = _m->cdc_start(); dlg <= _m->cdc_end(); dlg++)
|
||||||
|
{
|
||||||
|
TString format;
|
||||||
|
int len = _m->field(dlg).size();
|
||||||
|
TFieldref fld(*_m->field(dlg).field());
|
||||||
|
|
||||||
|
fld.set_name(RMOVANA_CODCCOSTO);
|
||||||
|
|
||||||
|
const TString val = fld.read(row);
|
||||||
|
|
||||||
|
|
||||||
|
format << "@" << pos << "g%s";
|
||||||
|
set_row(nriga, format, (const char *)val);
|
||||||
|
if (len < (int)strlen(_m->field(dlg).prompt()))
|
||||||
|
len = strlen(_m->field(dlg).prompt());
|
||||||
|
pos += len + 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (_m->fas_start() > 0)
|
||||||
|
{
|
||||||
|
for (short dlg = _m->fas_start(); dlg <= _m->fas_end(); dlg++)
|
||||||
|
{
|
||||||
|
TString format;
|
||||||
|
int len = _m->field(dlg).size();
|
||||||
|
TFieldref fld(*_m->field(dlg).field());
|
||||||
|
|
||||||
|
fld.set_name(RMOVANA_CODFASE);
|
||||||
|
|
||||||
|
const TString val = fld.read(row);
|
||||||
|
|
||||||
|
format << "@" << pos << "g%s";
|
||||||
|
set_row(nriga, format, (const char *)val);
|
||||||
|
if (len < (int)strlen(_m->field(dlg).prompt()))
|
||||||
|
len = strlen(_m->field(dlg).prompt());
|
||||||
|
pos += len + 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -816,7 +910,7 @@ print_action TStampaScaduto::postprocess_page(int file, int counter)
|
|||||||
|
|
||||||
void TStampaScaduto::on_firm_change()
|
void TStampaScaduto::on_firm_change()
|
||||||
{
|
{
|
||||||
if (_m != NULL)
|
if (_m != nullptr)
|
||||||
{
|
{
|
||||||
const bool valuta = ini_get_bool(CONFIG_DITTA, "cg", "GesVal");
|
const bool valuta = ini_get_bool(CONFIG_DITTA, "cg", "GesVal");
|
||||||
_m->enable(F_VALUTA, valuta);
|
_m->enable(F_VALUTA, valuta);
|
||||||
@ -851,9 +945,9 @@ bool TStampaScaduto::user_create()
|
|||||||
|
|
||||||
bool TStampaScaduto::user_destroy()
|
bool TStampaScaduto::user_destroy()
|
||||||
{
|
{
|
||||||
if (_rel1) delete _rel1;
|
safe_delete(_rel1);
|
||||||
if (_rel2) delete _rel2;
|
safe_delete(_rel2);
|
||||||
if (_m) delete _m;
|
safe_delete(_m);
|
||||||
_t.destroy();
|
_t.destroy();
|
||||||
_s_date.destroy();
|
_s_date.destroy();
|
||||||
return true;
|
return true;
|
||||||
@ -872,8 +966,9 @@ bool TStampaScaduto::set_print(int)
|
|||||||
if (rt)
|
if (rt)
|
||||||
{
|
{
|
||||||
_anal_filter = _m->get_anal_filter();
|
_anal_filter = _m->get_anal_filter();
|
||||||
_select_analitica = (dongle().active(CAAUT) || dongle().active(CMAUT)) && _anal_filter.full();
|
_st_analitica = (dongle().active(CAAUT) || dongle().active(CMAUT));
|
||||||
|
_select_analitica = _st_analitica && _anal_filter.full();
|
||||||
|
_st_analitica &= _m->get_bool(F_ANALITICA);
|
||||||
_m->update_assoc();
|
_m->update_assoc();
|
||||||
reset_files();
|
reset_files();
|
||||||
reset_print();
|
reset_print();
|
||||||
@ -1081,7 +1176,6 @@ void TStampaScaduto::print_header()
|
|||||||
o = 4;
|
o = 4;
|
||||||
}
|
}
|
||||||
set_header (soh++,FR("@73gAl %s Operazioni al %s"),(const char*)limscad, (const char*)limop);
|
set_header (soh++,FR("@73gAl %s Operazioni al %s"),(const char*)limscad, (const char*)limop);
|
||||||
rw.fill('-');
|
|
||||||
set_header(soh++, (const char *) rw);
|
set_header(soh++, (const char *) rw);
|
||||||
set_header(soh++,FR("CODICE@18gC O G N O M E E N O M E "));
|
set_header(soh++,FR("CODICE@18gC O G N O M E E N O M E "));
|
||||||
set_header(soh++,FR("Riferim.@12gNumero@20gNumero@27gData@50gResiduo@102g"
|
set_header(soh++,FR("Riferim.@12gNumero@20gNumero@27gData@50gResiduo@102g"
|
||||||
@ -1091,14 +1185,59 @@ void TStampaScaduto::print_header()
|
|||||||
"@50gDocumento@67gNon Scaduto@86g%s@112g%s@129g%s@148g%s@167g%s@185g%s@204g%s@223g%s"),
|
"@50gDocumento@67gNon Scaduto@86g%s@112g%s@129g%s@148g%s@167g%s@185g%s@204g%s@223g%s"),
|
||||||
(const char*)s1,scaglioni[0],scaglioni[1+o],scaglioni[2+o],
|
(const char*)s1,scaglioni[0],scaglioni[1+o],scaglioni[2+o],
|
||||||
scaglioni[3+o],scaglioni[4+o],(const char*) s2, (const char*) s3);
|
scaglioni[3+o],scaglioni[4+o],(const char*) s2, (const char*) s3);
|
||||||
set_header(soh++,(const char *)rw);
|
if (_st_analitica)
|
||||||
|
{
|
||||||
|
int pos = 12;
|
||||||
|
|
||||||
|
rw.zap();
|
||||||
|
if (_m->cms_start() > 0)
|
||||||
|
{
|
||||||
|
|
||||||
|
for (short dlg = _m->cms_start(); dlg <= _m->cms_end(); dlg++)
|
||||||
|
{
|
||||||
|
rw << "@" << pos << "g" << _m->field(dlg).prompt();
|
||||||
|
int len = _m->field(dlg).size();
|
||||||
|
|
||||||
|
if (len < (int) strlen(_m->field(dlg).prompt()))
|
||||||
|
len = strlen(_m->field(dlg).prompt());
|
||||||
|
pos += len + 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (_m->cdc_start() > 0)
|
||||||
|
{
|
||||||
|
for (short dlg = _m->cdc_start(); dlg <= _m->cdc_end(); dlg++)
|
||||||
|
{
|
||||||
|
rw << "@" << pos << "g" << _m->field(dlg).prompt();
|
||||||
|
int len = _m->field(dlg).size();
|
||||||
|
|
||||||
|
if (len < (int) strlen(_m->field(dlg).prompt()))
|
||||||
|
len = strlen(_m->field(dlg).prompt());
|
||||||
|
pos += len + 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (_m->fas_start() > 0)
|
||||||
|
{
|
||||||
|
for (short dlg = _m->fas_start(); dlg <= _m->fas_end(); dlg++)
|
||||||
|
{
|
||||||
|
rw << "@" << pos << "g" << _m->field(dlg).prompt();
|
||||||
|
int len = _m->field(dlg).size();
|
||||||
|
|
||||||
|
if (len < (int) strlen(_m->field(dlg).prompt()))
|
||||||
|
len = strlen(_m->field(dlg).prompt());
|
||||||
|
pos += len + 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
set_header(soh++, rw);
|
||||||
|
}
|
||||||
|
rw.zap();
|
||||||
|
rw.fill('-');
|
||||||
|
set_header(soh++,(const char *)rw);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case altri: // Piano dei conti
|
case altri: // Piano dei conti
|
||||||
{
|
{
|
||||||
set_header(soh++,FR("@79g** SCADUTO **"));
|
set_header(soh++,FR("@79g** SCADUTO **"));
|
||||||
set_header (soh++,FR("@73gAl %s Operazioni al %s"),(const char*)limscad, (const char*)limop);
|
set_header (soh++,FR("@73gAl %s Operazioni al %s"),(const char*)limscad, (const char*)limop);
|
||||||
rw.fill('-');
|
|
||||||
set_header(soh++, (const char *) rw);
|
set_header(soh++, (const char *) rw);
|
||||||
set_header(soh++,FR("CONTO@18gD E S C R I Z I O N E"));
|
set_header(soh++,FR("CONTO@18gD E S C R I Z I O N E"));
|
||||||
set_header(soh++,FR("Riferim.@12gNumero@20gNumero@27gData@50gResiduo@102g"
|
set_header(soh++,FR("Riferim.@12gNumero@20gNumero@27gData@50gResiduo@102g"
|
||||||
@ -1107,8 +1246,56 @@ void TStampaScaduto::print_header()
|
|||||||
"@50gDocumento@67gNon Scaduto@112g%s@129g%s@148g%s@167g%s@185g%s"),
|
"@50gDocumento@67gNon Scaduto@112g%s@129g%s@148g%s@167g%s@185g%s"),
|
||||||
scaglioni[0],scaglioni[5],scaglioni[6],
|
scaglioni[0],scaglioni[5],scaglioni[6],
|
||||||
scaglioni[7],scaglioni[8]);
|
scaglioni[7],scaglioni[8]);
|
||||||
set_header(soh++,(const char *)rw);
|
if (_st_analitica)
|
||||||
break;
|
{
|
||||||
|
int pos = 12;
|
||||||
|
|
||||||
|
rw.zap();
|
||||||
|
if (_m->cms_start() > 0)
|
||||||
|
{
|
||||||
|
|
||||||
|
for (short dlg = _m->cms_start(); dlg <= _m->cms_end(); dlg++)
|
||||||
|
{
|
||||||
|
rw << "@" << pos << "g" << _m->field(dlg).prompt();
|
||||||
|
int len = _m->field(dlg).size();
|
||||||
|
|
||||||
|
if (len < (int) strlen(_m->field(dlg).prompt()))
|
||||||
|
len = strlen(_m->field(dlg).prompt());
|
||||||
|
pos += len + 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (_m->cdc_start() > 0)
|
||||||
|
{
|
||||||
|
for (short dlg = _m->cdc_start(); dlg <= _m->cdc_end(); dlg++)
|
||||||
|
{
|
||||||
|
rw << "@" << pos << "g" << _m->field(dlg).prompt();
|
||||||
|
int len = _m->field(dlg).size();
|
||||||
|
|
||||||
|
if (len < (int) strlen(_m->field(dlg).prompt()))
|
||||||
|
len = strlen(_m->field(dlg).prompt());
|
||||||
|
pos += len + 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (_m->fas_start() > 0)
|
||||||
|
{
|
||||||
|
for (short dlg = _m->fas_start(); dlg <= _m->fas_end(); dlg++)
|
||||||
|
{
|
||||||
|
rw << "@" << pos << "g" << _m->field(dlg).prompt();
|
||||||
|
int len = _m->field(dlg).size();
|
||||||
|
|
||||||
|
if (len < (int) strlen(_m->field(dlg).prompt()))
|
||||||
|
len = strlen(_m->field(dlg).prompt());
|
||||||
|
pos += len + 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
set_header(soh++, FR("@12gDocum.@20gProt.@27gDocumento@38gValuta"
|
||||||
|
"@50gDocumento@67gNon Scaduto")
|
||||||
|
);
|
||||||
|
}
|
||||||
|
rw.zap();
|
||||||
|
rw.fill('-');
|
||||||
|
set_header(soh++, (const char *)rw);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
@ -1157,7 +1344,7 @@ void TStampaScaduto::set_page(int file, int counter)
|
|||||||
|
|
||||||
TStampaScaduto::TStampaScaduto() : _note("", 200), _anal(LF_MOVANA, MOVANA_NUMREG, 3)
|
TStampaScaduto::TStampaScaduto() : _note("", 200), _anal(LF_MOVANA, MOVANA_NUMREG, 3)
|
||||||
{
|
{
|
||||||
_rel1=_rel2=NULL;
|
_rel1=_rel2=nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
int sc2300(int argc, char** argv)
|
int sc2300(int argc, char** argv)
|
||||||
|
|||||||
@ -8,6 +8,7 @@
|
|||||||
#define F_GIORNI 106
|
#define F_GIORNI 106
|
||||||
#define F_VALUTA 107
|
#define F_VALUTA 107
|
||||||
#define F_NOTE 108
|
#define F_NOTE 108
|
||||||
|
#define F_ANALITICA 109
|
||||||
|
|
||||||
#define SCAD_ANAL0 150
|
#define SCAD_ANAL0 150
|
||||||
#define SCAD_DESANAL0 175
|
#define SCAD_DESANAL0 175
|
||||||
|
|||||||
@ -72,6 +72,12 @@ BEGIN
|
|||||||
HELP "Selezionare se si vuole la stampa delle note delle scadenze"
|
HELP "Selezionare se si vuole la stampa delle note delle scadenze"
|
||||||
END
|
END
|
||||||
|
|
||||||
|
BOOLEAN F_ANALITICA
|
||||||
|
BEGIN
|
||||||
|
PROMPT 23 8 "Stampa analitica"
|
||||||
|
HELP "Selezionare se si vuole dei codici di analitica"
|
||||||
|
END
|
||||||
|
|
||||||
RADIOBUTTON SC_CLIFO 20
|
RADIOBUTTON SC_CLIFO 20
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 10 "Selezione"
|
PROMPT 1 10 "Selezione"
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user