aggiunta file programma "stampe di controllo"
git-svn-id: svn://10.65.10.50/trunk@4061 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
8f8009969c
commit
c2763f2977
593
ef/ef0600.cpp
Executable file
593
ef/ef0600.cpp
Executable file
@ -0,0 +1,593 @@
|
|||||||
|
#include <config.h>
|
||||||
|
#include <execp.h>
|
||||||
|
#include <mask.h>
|
||||||
|
#include <printapp.h>
|
||||||
|
#include <tabutil.h>
|
||||||
|
#include <utility.h>
|
||||||
|
#include <relation.h>
|
||||||
|
#include <real.h>
|
||||||
|
#include <printer.h>
|
||||||
|
|
||||||
|
#include <effetti.h>
|
||||||
|
#include <reffetti.h>
|
||||||
|
#include <clifo.h>
|
||||||
|
#include "ef0600.h"
|
||||||
|
|
||||||
|
enum pt {undefined = 0, scadenza = 1, banca = 2, distinta = 3};
|
||||||
|
|
||||||
|
class TPrint_effetti_app : public TPrintapp
|
||||||
|
{
|
||||||
|
pt _pr_type;
|
||||||
|
TRelation* _rel;
|
||||||
|
int _cur_1, _cur_2, _cur_3;
|
||||||
|
int _interline, i;
|
||||||
|
TString _ban, _cli, _val, _data_stampa, _ban_prec;
|
||||||
|
long _dist_prec;
|
||||||
|
TDate _scad_prec;
|
||||||
|
real _tot_data, _tot_mese, _tot_banca, _tot_distinta, _tot_stampa;
|
||||||
|
bool _prima_volta;
|
||||||
|
public:
|
||||||
|
virtual bool preprocess_page(int file, int counter);
|
||||||
|
virtual bool preprocess_print(int file, int counter);
|
||||||
|
virtual print_action postprocess_print(int file, int counter);
|
||||||
|
virtual void preprocess_header();
|
||||||
|
void header_scadenza();
|
||||||
|
void header_banca();
|
||||||
|
void header_distinta();
|
||||||
|
virtual bool user_create();
|
||||||
|
virtual bool user_destroy();
|
||||||
|
virtual bool set_print(int);
|
||||||
|
virtual void set_page (int file, int counter);
|
||||||
|
void set_scadenza();
|
||||||
|
void set_banca();
|
||||||
|
void set_distinta();
|
||||||
|
const char* get_field(int ln, const char* fn) {return current_cursor()->curr(ln).get(fn);}
|
||||||
|
const char* look_tab(const char* tabname, TString& cod,const char* fld="S0");
|
||||||
|
TPrint_effetti_app() : TPrintapp(), _ban(11), _ban_prec(11), _cli(60), _val(3){_rel = NULL; _interline = 1;}
|
||||||
|
};
|
||||||
|
|
||||||
|
void TPrint_effetti_app::preprocess_header()
|
||||||
|
{
|
||||||
|
reset_header();
|
||||||
|
const long firm = get_firm();
|
||||||
|
int j = 1;
|
||||||
|
TLocalisamfile ditte(LF_NDITTE);
|
||||||
|
ditte.zero();
|
||||||
|
ditte.put("CODDITTA", firm);
|
||||||
|
ditte.read();
|
||||||
|
if (ditte.bad()) ditte.zero();
|
||||||
|
TString s(ditte.get("RAGSOC"));
|
||||||
|
set_header(j, "Ditta: %ld %s@125gPag @#", firm, (const char*) s);
|
||||||
|
set_header(j++, "@102gData %s", (const char*) _data_stampa);
|
||||||
|
|
||||||
|
switch(_pr_type)
|
||||||
|
{
|
||||||
|
case scadenza:
|
||||||
|
header_scadenza();
|
||||||
|
break;
|
||||||
|
case banca:
|
||||||
|
header_banca();
|
||||||
|
break;
|
||||||
|
case distinta:
|
||||||
|
header_distinta();
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void TPrint_effetti_app::header_scadenza()
|
||||||
|
{
|
||||||
|
int j =1;
|
||||||
|
set_header(j, "@52gSTAMPA RI.BA. PER SCADENZA"); j++;
|
||||||
|
set_header(j++, (const char *)(TString(132).fill('-')));
|
||||||
|
set_header(j++, " Scadenza Banca Cliente N.Riba N.Dist Importo Val N.Rata St.Def. Fattura del. N.");
|
||||||
|
set_header(j, (const char *)(TString(132).fill('-')));
|
||||||
|
}
|
||||||
|
|
||||||
|
void TPrint_effetti_app::header_banca()
|
||||||
|
{
|
||||||
|
int j = 1;
|
||||||
|
set_header(j, "@45gSTAMPA RI.BA. PER BANCHE DI PRESENTAZIONE"); j++;
|
||||||
|
set_header(j++, (const char *)(TString(132).fill('-')));
|
||||||
|
set_header(j++, " Banca Scadenza Cliente N.Riba N.Dist Importo Val. N.Rata St.Def. Fattura del. N.");
|
||||||
|
set_header(j, (const char *)(TString(132).fill('-')));
|
||||||
|
}
|
||||||
|
|
||||||
|
void TPrint_effetti_app::header_distinta()
|
||||||
|
{
|
||||||
|
int j = 1;
|
||||||
|
set_header(j, "@55gSTAMPA RI.BA. PER DISTINTE"); j++;
|
||||||
|
set_header(j++, (const char *)(TString(132).fill('-')));
|
||||||
|
set_header(j++, " Distinta ");
|
||||||
|
set_header(j++, "@1gTipo Num. N.Riba Scadenza Banca Cliente Importo Val. N.Rata St.Def. Fattura del. N.");
|
||||||
|
set_header(j, (const char *)(TString(132).fill('-')));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
print_action TPrint_effetti_app::postprocess_print(int file, int counter)
|
||||||
|
{
|
||||||
|
TString s;
|
||||||
|
TPrintrow pr;
|
||||||
|
TPrinter& p = printer();
|
||||||
|
|
||||||
|
if (_tot_data != 0.0)
|
||||||
|
{
|
||||||
|
pr.put("-------------------------------------------",50);
|
||||||
|
p.print(pr);
|
||||||
|
pr.reset();
|
||||||
|
pr.put("Totale",52);
|
||||||
|
pr.put(_scad_prec.string(),60);
|
||||||
|
pr.put(_tot_data.string("###.###.##@,@@"),72);
|
||||||
|
p.print(pr);
|
||||||
|
_tot_data = 0.0;
|
||||||
|
pr.reset();
|
||||||
|
}
|
||||||
|
|
||||||
|
if(_tot_mese != 0.0)
|
||||||
|
{
|
||||||
|
pr.put("Totale ",50);
|
||||||
|
pr.put(itom(_scad_prec.month()),57);
|
||||||
|
pr.put(_tot_mese.string("###.###.##@,@@"),72);
|
||||||
|
p.print(pr);
|
||||||
|
_tot_mese = 0.0;
|
||||||
|
pr.reset();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_tot_banca != 0.0)
|
||||||
|
{
|
||||||
|
pr.put("Totale",50);
|
||||||
|
s = (look_tab("%BAN",_ban_prec));
|
||||||
|
if (s.empty())
|
||||||
|
s = "Nessuna Banca ";
|
||||||
|
s = s.left(20);
|
||||||
|
pr.put(s,57);
|
||||||
|
pr.put(_tot_banca.string("###.###.##@,@@"),72);
|
||||||
|
p.print(pr);
|
||||||
|
_tot_banca = 0.0;
|
||||||
|
pr.reset();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_tot_distinta != 0.0)
|
||||||
|
{
|
||||||
|
pr.put("Totale",50);
|
||||||
|
s << "Distinta " << _dist_prec;
|
||||||
|
if (_dist_prec == 0)
|
||||||
|
s = "Nessuna Distinta ";
|
||||||
|
pr.put(s,57);
|
||||||
|
pr.put(_tot_distinta.string("###.###.##@,@@"),72);
|
||||||
|
p.print(pr);
|
||||||
|
_tot_distinta = 0.0;
|
||||||
|
pr.reset();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_tot_stampa != 0.0)
|
||||||
|
{
|
||||||
|
pr.put("-----------------------------------------------------------------------------------------------------------------------------------",1);
|
||||||
|
p.print(pr);
|
||||||
|
pr.reset();
|
||||||
|
pr.put("Totale Ri.Ba. stampate",50);
|
||||||
|
pr.put(_tot_stampa.string("###.###.##@,@@"),72);
|
||||||
|
p.print(pr);
|
||||||
|
_tot_stampa = 0.0;
|
||||||
|
pr.put("-----------------------------------------------------------------------------------------------------------------------------------",1);
|
||||||
|
p.print(pr);
|
||||||
|
pr.reset();
|
||||||
|
p.print(pr);
|
||||||
|
}
|
||||||
|
|
||||||
|
return NEXT_PAGE;
|
||||||
|
}
|
||||||
|
|
||||||
|
void TPrint_effetti_app::set_page(int file, int counter)
|
||||||
|
{
|
||||||
|
switch(_pr_type)
|
||||||
|
{
|
||||||
|
case scadenza:
|
||||||
|
if (file == LF_EFFETTI)
|
||||||
|
set_scadenza();
|
||||||
|
break;
|
||||||
|
case banca:
|
||||||
|
if (file == LF_EFFETTI)
|
||||||
|
set_banca();
|
||||||
|
break;
|
||||||
|
case distinta:
|
||||||
|
if (file == LF_EFFETTI)
|
||||||
|
set_distinta();
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void TPrint_effetti_app::set_scadenza()
|
||||||
|
{
|
||||||
|
|
||||||
|
set_row(1,"@1g@s@13g#t@26g#t@50g@pn@59g@pn@72g@pn@88g#t@95g@pn@103g@s@111g@s@121g@pn",
|
||||||
|
FLD(LF_EFFETTI, EFF_DATASCAD),
|
||||||
|
&_ban,
|
||||||
|
&_cli,
|
||||||
|
FLD(LF_EFFETTI, EFF_NPROGTR, "#####@"),
|
||||||
|
FLD(LF_EFFETTI, EFF_NDIST, "#######@"),
|
||||||
|
FLD(LF_EFFETTI, EFF_IMPORTO, "###.###.##@,@@"),
|
||||||
|
&_val,
|
||||||
|
FLD(LF_REFFETTI, REFF_NRATA,"##@"),
|
||||||
|
FLD(LF_EFFETTI, EFF_EFFSTAMP),
|
||||||
|
FLD(LF_REFFETTI, REFF_DATAFATT),
|
||||||
|
FLD(LF_REFFETTI, REFF_NFATT,"######@"));
|
||||||
|
|
||||||
|
for( i = 0; i < _interline; i++) set_row(i+1," ");
|
||||||
|
}
|
||||||
|
|
||||||
|
void TPrint_effetti_app::set_banca()
|
||||||
|
{
|
||||||
|
set_row(1,"@1g#t@14g@s@26g#t@54g@pn@63g@pn@72g@pn@91g#t@98g@pn@106g@s@114g@s@124g@pn",
|
||||||
|
&_ban,
|
||||||
|
FLD(LF_EFFETTI, EFF_DATASCAD),
|
||||||
|
&_cli,
|
||||||
|
FLD(LF_EFFETTI, EFF_NPROGTR, "#####@"),
|
||||||
|
FLD(LF_EFFETTI, EFF_NDIST, "#######@"),
|
||||||
|
FLD(LF_EFFETTI, EFF_IMPORTO, "###.###.##@,@@"),
|
||||||
|
&_val,
|
||||||
|
FLD(LF_REFFETTI, REFF_NRATA,"##@"),
|
||||||
|
FLD(LF_EFFETTI, EFF_EFFSTAMP),
|
||||||
|
FLD(LF_REFFETTI, REFF_DATAFATT),
|
||||||
|
FLD(LF_REFFETTI, REFF_NFATT, "######@"));
|
||||||
|
|
||||||
|
for( i = 0; i < _interline; i++) set_row(i+1,"");
|
||||||
|
}
|
||||||
|
|
||||||
|
void TPrint_effetti_app::set_distinta()
|
||||||
|
{
|
||||||
|
set_row(1,"@3g@s@5g@pn@16g@pn@27g@s@41g#t@55g#t@72g@pn@91g#t@98g@pn@106g@s@114g@s@124g@pn",
|
||||||
|
FLD(LF_EFFETTI, EFF_TIPODIST),
|
||||||
|
FLD(LF_EFFETTI, EFF_NDIST, "#######@"),
|
||||||
|
FLD(LF_EFFETTI, EFF_NPROGTR, "#####@"),
|
||||||
|
FLD(LF_EFFETTI, EFF_DATASCAD),
|
||||||
|
&_ban,
|
||||||
|
&_cli,
|
||||||
|
FLD(LF_EFFETTI, EFF_IMPORTO, "###.###.##@,@@"),
|
||||||
|
&_val,
|
||||||
|
FLD(LF_REFFETTI, REFF_NRATA,"##@"),
|
||||||
|
FLD(LF_EFFETTI, EFF_EFFSTAMP),
|
||||||
|
FLD(LF_REFFETTI, REFF_DATAFATT),
|
||||||
|
FLD(LF_REFFETTI, REFF_NFATT, "######@"));
|
||||||
|
|
||||||
|
for( i = 0; i < _interline; i++) set_row(i+1,"");
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TPrint_effetti_app::preprocess_page(int file, int counter)
|
||||||
|
// no switch/case su file poichè c'è solo quello degli effetti
|
||||||
|
{
|
||||||
|
TString s;
|
||||||
|
TRectype & rec = current_cursor()->curr();
|
||||||
|
TDate scad = rec.get_date (EFF_DATASCAD);
|
||||||
|
TString ban = rec.get (EFF_CODABIP);
|
||||||
|
if (ban=="00000")
|
||||||
|
ban = "";
|
||||||
|
long dist = rec.get_long (EFF_NDIST);
|
||||||
|
char tipodist = rec.get_char(EFF_TIPODIST);
|
||||||
|
real importo = rec.get_real(EFF_IMPORTO);
|
||||||
|
TString year;
|
||||||
|
TPrintrow pr;
|
||||||
|
TPrinter& p = printer();
|
||||||
|
|
||||||
|
if (_prima_volta)
|
||||||
|
{
|
||||||
|
_prima_volta = FALSE;
|
||||||
|
switch(_pr_type)
|
||||||
|
{
|
||||||
|
case scadenza:
|
||||||
|
_scad_prec = scad;
|
||||||
|
year = _scad_prec.string();
|
||||||
|
year = year.right(4);
|
||||||
|
pr.put(itom(_scad_prec.month()),1);
|
||||||
|
pr.put(year,10);
|
||||||
|
p.print(pr);
|
||||||
|
pr.reset();
|
||||||
|
p.print(pr);
|
||||||
|
break;
|
||||||
|
case banca:
|
||||||
|
_scad_prec = scad;
|
||||||
|
_ban_prec = ban;
|
||||||
|
s = (look_tab("%BAN",_ban_prec));
|
||||||
|
if (s.empty())
|
||||||
|
s = "Nessuna Banca di Presentazione";
|
||||||
|
pr.put(s,1);
|
||||||
|
p.print(pr);
|
||||||
|
pr.reset();
|
||||||
|
p.print(pr);
|
||||||
|
break;
|
||||||
|
case distinta:
|
||||||
|
_scad_prec = scad;
|
||||||
|
_dist_prec = dist;
|
||||||
|
s << "Distinta " << dist << " ";
|
||||||
|
switch(tipodist)
|
||||||
|
{
|
||||||
|
case 'B':
|
||||||
|
s << " Salvo Buon Fine";
|
||||||
|
break;
|
||||||
|
case 'I':
|
||||||
|
s << " All'Incasso";
|
||||||
|
break;
|
||||||
|
case 'S':
|
||||||
|
s << " Allo Sconto";
|
||||||
|
break;
|
||||||
|
case 0:
|
||||||
|
s = "Nessuna Distinta";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
pr.put(s,1);
|
||||||
|
p.print(pr);
|
||||||
|
pr.reset();
|
||||||
|
p.print(pr);
|
||||||
|
s = "";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (scad !=_scad_prec)
|
||||||
|
{
|
||||||
|
pr.put("-------------------------------------------",50);
|
||||||
|
p.print(pr);
|
||||||
|
pr.reset();
|
||||||
|
pr.put("Totale",52);
|
||||||
|
pr.put(_scad_prec.string(),60);
|
||||||
|
pr.put(_tot_data.string("###.###.##@,@@"),72);
|
||||||
|
p.print(pr);
|
||||||
|
_tot_data = 0.0;
|
||||||
|
pr.reset();
|
||||||
|
|
||||||
|
if((scad.month() != _scad_prec.month())&&_pr_type == scadenza)
|
||||||
|
{
|
||||||
|
pr.put("Totale ",50);
|
||||||
|
pr.put(itom(_scad_prec.month()),57);
|
||||||
|
pr.put(_tot_mese.string("###.###.##@,@@"),72);
|
||||||
|
p.print(pr);
|
||||||
|
_tot_mese = 0.0;
|
||||||
|
pr.reset();
|
||||||
|
p.print(pr);
|
||||||
|
|
||||||
|
year = scad.string();
|
||||||
|
year = year.right(4);
|
||||||
|
pr.put(itom(scad.month()),1);
|
||||||
|
pr.put(year,10);
|
||||||
|
p.print(pr);
|
||||||
|
pr.reset();
|
||||||
|
p.print(pr);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
switch(_pr_type)
|
||||||
|
{
|
||||||
|
case scadenza:
|
||||||
|
_tot_mese += importo;
|
||||||
|
break;
|
||||||
|
case banca:
|
||||||
|
if (ban !=_ban_prec)
|
||||||
|
{
|
||||||
|
pr.put("Totale",50);
|
||||||
|
s = (look_tab("%BAN",_ban_prec));
|
||||||
|
if (s.empty())
|
||||||
|
s = "Nessuna Banca ";
|
||||||
|
s = s.left(20);
|
||||||
|
pr.put(s,57);
|
||||||
|
pr.put(_tot_banca.string("###.###.##@,@@"),72);
|
||||||
|
p.print(pr);
|
||||||
|
_tot_banca = 0.0;
|
||||||
|
pr.reset();
|
||||||
|
p.print(pr);
|
||||||
|
_ban_prec = ban;
|
||||||
|
s = (look_tab("%BAN",ban));
|
||||||
|
if (s.empty())
|
||||||
|
s = "Nessuna Banca di Presentazione";
|
||||||
|
pr.put(s,1);
|
||||||
|
p.print(pr);
|
||||||
|
pr.reset();
|
||||||
|
p.print(pr);
|
||||||
|
}
|
||||||
|
_tot_banca += importo;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case distinta:
|
||||||
|
if (dist !=_dist_prec)
|
||||||
|
{
|
||||||
|
pr.put("Totale",50);
|
||||||
|
s << "Distinta " << _dist_prec;
|
||||||
|
if (_dist_prec == 0)
|
||||||
|
s = "Nessuna Distinta";
|
||||||
|
pr.put(s,57);
|
||||||
|
pr.put(_tot_distinta.string("###.###.##@,@@"),72);
|
||||||
|
p.print(pr);
|
||||||
|
_tot_distinta = 0.0;
|
||||||
|
pr.reset();
|
||||||
|
p.print(pr);
|
||||||
|
_dist_prec = dist;
|
||||||
|
|
||||||
|
s = "";
|
||||||
|
s << "Distinta " << dist << " ";
|
||||||
|
switch(tipodist)
|
||||||
|
{
|
||||||
|
case 'B':
|
||||||
|
s <<" Salvo Buon Fine";
|
||||||
|
break;
|
||||||
|
case 'I':
|
||||||
|
s << " All'Incasso";
|
||||||
|
break;
|
||||||
|
case 'S':
|
||||||
|
s << " Allo Sconto";
|
||||||
|
break;
|
||||||
|
case 0:
|
||||||
|
s = "Nessuna Distinta ";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
pr.put(s,1);
|
||||||
|
p.print(pr);
|
||||||
|
pr.reset();
|
||||||
|
p.print(pr);
|
||||||
|
s = "";
|
||||||
|
}
|
||||||
|
_tot_distinta += importo;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
_scad_prec = scad;
|
||||||
|
_tot_data += importo;
|
||||||
|
_tot_stampa += importo ;
|
||||||
|
|
||||||
|
_ban = get_field(LF_EFFETTI, EFF_CODABIP);
|
||||||
|
if (_ban=="00000")
|
||||||
|
_ban = "";
|
||||||
|
s = get_field(LF_EFFETTI, EFF_CODCABP);
|
||||||
|
if (s=="00000")
|
||||||
|
s = "";
|
||||||
|
_ban << " " << s;
|
||||||
|
|
||||||
|
s = get_field(LF_EFFETTI, EFF_CODCF);
|
||||||
|
_cli = get_field(LF_CLIFO, CLI_RAGSOC);
|
||||||
|
s = _cli.mid(30,50); s.trim();
|
||||||
|
_cli = _cli.mid(0,30); _cli.trim();
|
||||||
|
_cli << " " << s;
|
||||||
|
|
||||||
|
s = get_field(LF_EFFETTI, EFF_CODVAL);
|
||||||
|
(s.empty())?_val = s:_val = "Lit.";
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool TPrint_effetti_app::preprocess_print(int file, int counter)
|
||||||
|
{
|
||||||
|
reset_print();
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
const char* TPrint_effetti_app::look_tab(const char* tabname, TString& cod,const char* fld)
|
||||||
|
{
|
||||||
|
TTable tab(tabname);
|
||||||
|
tab.curr().zero();
|
||||||
|
tab.curr().put("CODTAB",cod);
|
||||||
|
tab.read();
|
||||||
|
if (tab.bad()) tab.curr().zero();
|
||||||
|
return tab.curr().get(fld);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TPrint_effetti_app::set_print(int)
|
||||||
|
{
|
||||||
|
disable_links();
|
||||||
|
set_multiple_link(FALSE);
|
||||||
|
|
||||||
|
TMask mask("ef0600a.msk");
|
||||||
|
|
||||||
|
mask.run();
|
||||||
|
|
||||||
|
force_setpage(FALSE);
|
||||||
|
|
||||||
|
switch (mask.last_key())
|
||||||
|
{
|
||||||
|
case K_ESC:
|
||||||
|
case K_QUIT:
|
||||||
|
return FALSE;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
_pr_type = (pt) mask.get_int(RDB_TIPOST);
|
||||||
|
TDate data_stampa (mask.get(F_DATA_STAMPA));
|
||||||
|
_data_stampa = data_stampa.string();
|
||||||
|
|
||||||
|
TRectype from(current_cursor()->curr());
|
||||||
|
from.zero();
|
||||||
|
TRectype to(from);
|
||||||
|
|
||||||
|
TString cod_from, cod_to, filter;
|
||||||
|
filter = "";
|
||||||
|
|
||||||
|
switch(_pr_type)
|
||||||
|
{
|
||||||
|
case scadenza:
|
||||||
|
cod_from = mask.get(F_DA_DATA);
|
||||||
|
cod_to = mask.get(F_A_DATA);
|
||||||
|
from.put(EFF_DATASCAD,cod_from);
|
||||||
|
to.put(EFF_DATASCAD,cod_to);
|
||||||
|
select_cursor(_cur_1);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case banca:
|
||||||
|
cod_from = mask.get(F_DA_DATA2);
|
||||||
|
cod_to = mask.get(F_A_DATA2);
|
||||||
|
from.put(EFF_DATASCAD,cod_from);
|
||||||
|
to.put(EFF_DATASCAD,cod_to);
|
||||||
|
cod_from = mask.get(F_DABAN);
|
||||||
|
cod_to = mask.get(F_ABAN);
|
||||||
|
if (cod_from.empty()) cod_from = "00000"; // per selezionare tutte
|
||||||
|
if (cod_to.empty()) cod_to = "99999"; // le banche di presentazione
|
||||||
|
filter = "";
|
||||||
|
filter << "(CODABIP>=" << cod_from << ")&&(CODABIP<=" << cod_to << ")" ;
|
||||||
|
select_cursor(_cur_2);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case distinta:
|
||||||
|
cod_from = mask.get(F_DA_DATA3);
|
||||||
|
cod_to = mask.get(F_A_DATA3);
|
||||||
|
from.put(EFF_DATASCAD,cod_from);
|
||||||
|
to.put(EFF_DATASCAD,cod_to);
|
||||||
|
cod_from = mask.get(F_DADIST);
|
||||||
|
cod_to = mask.get(F_ADIST);
|
||||||
|
if (cod_from.empty()) cod_from = "00000000"; // per selezionare tutte
|
||||||
|
if (cod_to.empty()) cod_to = "99999999"; // le distinte
|
||||||
|
filter = "";
|
||||||
|
filter << "(NDIST>=" << cod_from << ") && (NDIST<=" << cod_to << ")" ;
|
||||||
|
cod_from = mask.get(F_DATIPODIST);
|
||||||
|
cod_to = mask.get(F_ATIPODIST);
|
||||||
|
if ((!cod_from.empty())&&(!cod_to.empty())&&(cod_from==cod_to)) // per selezionare un tipo
|
||||||
|
filter << "&&(TIPODIST==\"" << cod_from << "\")"; // di distinta
|
||||||
|
select_cursor(_cur_3);
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
current_cursor()->setfilter(filter,TRUE);
|
||||||
|
current_cursor()->setregion(from, to);
|
||||||
|
|
||||||
|
set_real_picture("###.###.##@,@@");
|
||||||
|
_prima_volta=TRUE;
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TPrint_effetti_app::user_create()
|
||||||
|
{
|
||||||
|
_rel = new TRelation(LF_EFFETTI);
|
||||||
|
_rel->add(LF_REFFETTI, "NPROGTR==NPROGTR");
|
||||||
|
_rel->add(LF_CLIFO, "TIPOCF=='C'|CODCF==CODCF");
|
||||||
|
|
||||||
|
_cur_1 = add_cursor(new TCursor(_rel,"",3));//STAMPA PER SCADENZA
|
||||||
|
|
||||||
|
TString ordine = "CODABIP|DATASCAD|NPROGTR";//STAMPA PER BANCA
|
||||||
|
_cur_2 = add_cursor(new TSorted_cursor(_rel,ordine,"",3));
|
||||||
|
|
||||||
|
ordine = "TIPODIST|NDIST|NRIGADIST|DATASCAD|NPROGTR";//STAMPA PER DISTINTA
|
||||||
|
_cur_3 = add_cursor(new TSorted_cursor(_rel,ordine,"",3));
|
||||||
|
|
||||||
|
add_file(LF_EFFETTI);
|
||||||
|
enable_print_menu();
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TPrint_effetti_app::user_destroy()
|
||||||
|
{
|
||||||
|
if (_rel)
|
||||||
|
delete _rel;
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
int ef0600(int argc, char* argv[])
|
||||||
|
{
|
||||||
|
TPrint_effetti_app app;
|
||||||
|
app.run(argc, argv, "Stampe Controllo Effetti");
|
||||||
|
return 0;
|
||||||
|
}
|
22
ef/ef0600.h
Executable file
22
ef/ef0600.h
Executable file
@ -0,0 +1,22 @@
|
|||||||
|
#ifndef __EF0600_H
|
||||||
|
#define __EF0600_H
|
||||||
|
|
||||||
|
// campi maschera ef0600a.uml
|
||||||
|
|
||||||
|
#define F_DATA_STAMPA 101
|
||||||
|
#define RDB_TIPOST 102
|
||||||
|
#define F_DA_DATA 103
|
||||||
|
#define F_A_DATA 104
|
||||||
|
#define F_DABAN 105
|
||||||
|
#define F_ABAN 106
|
||||||
|
#define F_DA_DATA2 107
|
||||||
|
#define F_A_DATA2 108
|
||||||
|
#define F_NUMBERRIGA 109
|
||||||
|
#define F_DATIPODIST 110
|
||||||
|
#define F_DADIST 111
|
||||||
|
#define F_ATIPODIST 112
|
||||||
|
#define F_ADIST 113
|
||||||
|
#define F_DA_DATA3 114
|
||||||
|
#define F_A_DATA3 115
|
||||||
|
|
||||||
|
#endif
|
208
ef/ef0600a.uml
Executable file
208
ef/ef0600a.uml
Executable file
@ -0,0 +1,208 @@
|
|||||||
|
#include "ef0600.h"
|
||||||
|
|
||||||
|
PAGE "Stampe di Controllo Effetti" -1 -1 60 13
|
||||||
|
|
||||||
|
DATE F_DATA_STAMPA
|
||||||
|
BEGIN
|
||||||
|
PROMPT 30 1 "Data di stampa "
|
||||||
|
FLAGS "A"
|
||||||
|
END
|
||||||
|
|
||||||
|
RADIOBUTTON RDB_TIPOST 24
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 1 "Stampa per "
|
||||||
|
ITEM "1|Scadenza"
|
||||||
|
MESSAGE SHOW,1@|HIDE,2@|HIDE,3@
|
||||||
|
ITEM "2|Banca"
|
||||||
|
MESSAGE SHOW,2@|HIDE,1@|HIDE,3@
|
||||||
|
ITEM "3|Distinta"
|
||||||
|
MESSAGE SHOW,3@|HIDE,1@|HIDE,2@
|
||||||
|
END
|
||||||
|
|
||||||
|
GROUPBOX DLG_NULL 55 3
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 6 "Stampa effetti per Data di scadenza"
|
||||||
|
GROUP 1
|
||||||
|
END
|
||||||
|
|
||||||
|
DATA F_DA_DATA
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 7 "Dalla Data "
|
||||||
|
GROUP 1
|
||||||
|
END
|
||||||
|
|
||||||
|
DATA F_A_DATA
|
||||||
|
BEGIN
|
||||||
|
PROMPT 30 7 "Alla Data "
|
||||||
|
GROUP 1
|
||||||
|
VALIDATE DATE_CMP_FUNC >= F_DA_DATA
|
||||||
|
WARNING "Data limite superiore non valida"
|
||||||
|
END
|
||||||
|
|
||||||
|
GROUPBOX DLG_NULL 55 4
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 6 "Stampa effetti per Banca di presentazione"
|
||||||
|
GROUP 2
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER F_DABAN 5
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 7 "Dalla Banca "
|
||||||
|
FLAGS "RZ"
|
||||||
|
GROUP 2
|
||||||
|
USE %BAN KEY 1 SELECT CODTAB ?= "?????"
|
||||||
|
INPUT CODTAB F_DABAN
|
||||||
|
DISPLAY "Codice ABI" CODTAB[1,5]
|
||||||
|
DISPLAY "Denominazione@50" S0
|
||||||
|
OUTPUT F_DABAN CODTAB[1,5]
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER F_ABAN 5
|
||||||
|
BEGIN
|
||||||
|
PROMPT 30 7 "Alla Banca "
|
||||||
|
FLAGS "RZ"
|
||||||
|
GROUP 2
|
||||||
|
USE %BAN KEY 1 SELECT CODTAB ?= "?????"
|
||||||
|
INPUT CODTAB F_ABAN
|
||||||
|
DISPLAY "Codice ABI" CODTAB[1,5]
|
||||||
|
DISPLAY "Denominazione@50" S0
|
||||||
|
OUTPUT F_ABAN CODTAB[1,5]
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
END
|
||||||
|
|
||||||
|
DATA F_DA_DATA2
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 8 "Dalla Data "
|
||||||
|
GROUP 2
|
||||||
|
END
|
||||||
|
|
||||||
|
DATA F_A_DATA2
|
||||||
|
BEGIN
|
||||||
|
PROMPT 30 8 "Alla Data "
|
||||||
|
GROUP 2
|
||||||
|
VALIDATE DATE_CMP_FUNC >= F_DA_DATA2
|
||||||
|
WARNING "Data limite superiore non valida"
|
||||||
|
END
|
||||||
|
|
||||||
|
GROUPBOX DLG_NULL 55 6
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 6 "Stampa effetti per Distinta"
|
||||||
|
GROUP 3
|
||||||
|
END
|
||||||
|
|
||||||
|
LIST F_NUMBERRIGA 10
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 60 "Numero Riga Distinta "
|
||||||
|
KEY 4
|
||||||
|
GROUP 3
|
||||||
|
ITEM "1|PRIMA RIGA"
|
||||||
|
FLAGS "D"
|
||||||
|
END
|
||||||
|
|
||||||
|
TEXT DLG_NULL
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 7 "Dalla Distinta "
|
||||||
|
GROUP 3
|
||||||
|
END
|
||||||
|
|
||||||
|
LIST F_DATIPODIST 19
|
||||||
|
BEGIN
|
||||||
|
PROMPT 4 8 " "
|
||||||
|
KEY 4
|
||||||
|
GROUP 3
|
||||||
|
ITEM " |** Nessuno **"
|
||||||
|
ITEM "I|All'incasso"
|
||||||
|
ITEM "B|Salvo buon fine"
|
||||||
|
ITEM "S|Allo sconto"
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER F_DADIST 7
|
||||||
|
BEGIN
|
||||||
|
PROMPT 4 9 " "
|
||||||
|
FLAGS "R"
|
||||||
|
GROUP 3
|
||||||
|
KEY 4
|
||||||
|
USE LF_EFFETTI KEY 4 SELECT NRIGADIST = 1
|
||||||
|
INPUT NDIST F_DADIST
|
||||||
|
INPUT TIPODIST F_DATIPODIST
|
||||||
|
INPUT NRIGADIST F_NUMBERRIGA
|
||||||
|
DISPLAY "Nr. distinta" NDIST
|
||||||
|
DISPLAY "Tipo distinta" TIPODIST
|
||||||
|
OUTPUT F_DADIST NDIST
|
||||||
|
OUTPUT F_DATIPODIST TIPODIST
|
||||||
|
OUTPUT F_NUMBERRIGA NRIGADIST
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
END
|
||||||
|
|
||||||
|
TEXT DLG_NULL
|
||||||
|
BEGIN
|
||||||
|
PROMPT 30 7 "Alla Distinta "
|
||||||
|
GROUP 3
|
||||||
|
END
|
||||||
|
|
||||||
|
LIST F_ATIPODIST 19
|
||||||
|
BEGIN
|
||||||
|
PROMPT 31 8 " "
|
||||||
|
GROUP 3
|
||||||
|
KEY 4
|
||||||
|
ITEM " |** Nessuno **"
|
||||||
|
ITEM "I|All'incasso"
|
||||||
|
ITEM "B|Salvo buon fine"
|
||||||
|
ITEM "S|Allo sconto"
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER F_ADIST 7
|
||||||
|
BEGIN
|
||||||
|
PROMPT 31 9 " "
|
||||||
|
FLAGS "R"
|
||||||
|
KEY 4
|
||||||
|
GROUP 3
|
||||||
|
USE LF_EFFETTI KEY 4 SELECT NRIGADIST = 1
|
||||||
|
INPUT NDIST F_ADIST
|
||||||
|
INPUT TIPODIST F_ATIPODIST
|
||||||
|
INPUT NRIGADIST F_NUMBERRIGA
|
||||||
|
DISPLAY "Nr. distinta" NDIST
|
||||||
|
DISPLAY "Tipo distinta" TIPODIST
|
||||||
|
OUTPUT F_ADIST NDIST
|
||||||
|
OUTPUT F_ATIPODIST TIPODIST
|
||||||
|
OUTPUT F_NUMBERRIGA NRIGADIST
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
//NUM_EXPR {#THIS_FIELD>=#F_DADIST}
|
||||||
|
//WARNING "Limite superiore non valido"
|
||||||
|
END
|
||||||
|
|
||||||
|
DATA F_DA_DATA3
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 10 "Dalla Data "
|
||||||
|
GROUP 3
|
||||||
|
END
|
||||||
|
|
||||||
|
DATA F_A_DATA3
|
||||||
|
BEGIN
|
||||||
|
PROMPT 30 10 "Alla Data "
|
||||||
|
GROUP 3
|
||||||
|
VALIDATE DATE_CMP_FUNC >= F_DA_DATA3
|
||||||
|
WARNING "Data limite superiore non valida"
|
||||||
|
END
|
||||||
|
|
||||||
|
BUTTON DLG_OK 9 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT -13 -1 ""
|
||||||
|
END
|
||||||
|
|
||||||
|
BUTTON DLG_CANCEL 9 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT -23 -1 ""
|
||||||
|
END
|
||||||
|
|
||||||
|
BUTTON DLG_QUIT 9 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT -33 -1 ""
|
||||||
|
END
|
||||||
|
|
||||||
|
ENDPAGE
|
||||||
|
ENDMASK
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user