Pulizia stampe (cg1 - fase 1).
git-svn-id: svn://10.65.10.50/trunk@51 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
ec0c54497d
commit
5f96e2e4ea
58
cg/cg1.cpp
58
cg/cg1.cpp
@ -1,25 +1,33 @@
|
||||
#include <xvt.h>
|
||||
#include <checks.h>
|
||||
#include "cg1.h"
|
||||
|
||||
#define usage "Error - usage : %s -{0|1|2|3|4|5} [params]"
|
||||
|
||||
int main(int argc,char** argv)
|
||||
{
|
||||
const int n = (argc > 1) ? atoi(argv[1]+1) : -1;
|
||||
switch(n)
|
||||
{
|
||||
case 0: cg1100(argc,argv); break;
|
||||
case 1: cg1200(argc,argv); break;
|
||||
case 2: cg1300(argc,argv); break;
|
||||
case 3: cg1400(argc,argv); break;
|
||||
case 4: cg1500(argc,argv); break;
|
||||
// case 5: cg1600(argc,argv); break;
|
||||
case 6: cg1700(argc,argv); break;
|
||||
default: error_box(usage, argv[0]); break;
|
||||
}
|
||||
|
||||
return n < 0;
|
||||
}
|
||||
|
||||
|
||||
#include <xvt.h>
|
||||
#include <checks.h>
|
||||
#include "cg1.h"
|
||||
|
||||
#define usage "Error - usage : %s -{0|1|2|3|4|5} [params]"
|
||||
|
||||
int main(int argc,char** argv)
|
||||
{
|
||||
const int n = (argc > 1) ? atoi(argv[1]+1) : -1;
|
||||
switch(n)
|
||||
{
|
||||
case 0:
|
||||
cg1100(argc,argv); break;
|
||||
case 1:
|
||||
cg1200(argc,argv); break;
|
||||
case 2:
|
||||
cg1300(argc,argv); break;
|
||||
case 3:
|
||||
cg1400(argc,argv); break;
|
||||
case 4:
|
||||
cg1500(argc,argv); break;
|
||||
case 5:
|
||||
cg1600(argc,argv); break;
|
||||
case 6:
|
||||
cg1700(argc,argv); break;
|
||||
default:
|
||||
error_box(usage, argv[0]); break;
|
||||
}
|
||||
|
||||
return n < 0;
|
||||
}
|
||||
|
||||
|
||||
|
62
cg/cg1.h
62
cg/cg1.h
@ -1,31 +1,31 @@
|
||||
#ifndef __CG1_H
|
||||
#define __CG1_H
|
||||
|
||||
#ifdef MAIN
|
||||
#define extern
|
||||
#endif
|
||||
|
||||
#ifdef MAIN
|
||||
#undef extern
|
||||
#endif
|
||||
|
||||
#ifndef __STRINGS_H
|
||||
#include <strings.h>
|
||||
#endif
|
||||
|
||||
const MAXSTR = 128;
|
||||
static char __tmp [MAXSTR];
|
||||
|
||||
int cg1100(int argc, char* argv[]);
|
||||
int cg1200(int argc, char* argv[]);
|
||||
int cg1300(int argc, char* argv[]);
|
||||
int cg1400(int argc, char* argv[]);
|
||||
int cg1500(int argc, char* argv[]);
|
||||
//int cg1600(int argc, char* argv[]);
|
||||
int cg1700(int argc, char* argv[]);
|
||||
|
||||
#endif // __CG1_H
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef __CG1_H
|
||||
#define __CG1_H
|
||||
|
||||
#ifdef MAIN
|
||||
#define extern
|
||||
#endif
|
||||
|
||||
#ifdef MAIN
|
||||
#undef extern
|
||||
#endif
|
||||
|
||||
#ifndef __STRINGS_H
|
||||
#include <strings.h>
|
||||
#endif
|
||||
|
||||
const MAXSTR = 128;
|
||||
static char __tmp [MAXSTR];
|
||||
|
||||
int cg1100(int argc, char* argv[]);
|
||||
int cg1200(int argc, char* argv[]);
|
||||
int cg1300(int argc, char* argv[]);
|
||||
int cg1400(int argc, char* argv[]);
|
||||
int cg1500(int argc, char* argv[]);
|
||||
int cg1600(int argc, char* argv[]);
|
||||
int cg1700(int argc, char* argv[]);
|
||||
|
||||
#endif // __CG1_H
|
||||
|
||||
|
||||
|
||||
|
||||
|
1302
cg/cg1100.cpp
1302
cg/cg1100.cpp
File diff suppressed because it is too large
Load Diff
856
cg/cg1200.cpp
856
cg/cg1200.cpp
@ -1,413 +1,443 @@
|
||||
#include <printapp.h>
|
||||
#include <mask.h>
|
||||
#include <tabutil.h>
|
||||
#include <utility.h>
|
||||
|
||||
#include "cg1200a.h"
|
||||
#include "cg1200b.h"
|
||||
|
||||
enum pt { undefined = 0, elenco = 1, rubriche = 2, etichette = 3 };
|
||||
enum pw { clienti = 1, fornitori = 2, both = 3 };
|
||||
|
||||
bool mask2_reset_fields(TMask_field& mf, KEY k);
|
||||
|
||||
class CG1200_App : public TPrintapp
|
||||
{
|
||||
friend bool mask2_reset_fields(TMask_field& mf, KEY k);
|
||||
|
||||
pt _pr_type;
|
||||
pw _pr_what;
|
||||
TRelation* _rel;
|
||||
int _cur_c1, _cur_c2, _cur_f1, _cur_f2;
|
||||
int _sort;
|
||||
int _interline;
|
||||
bool _mov_only;
|
||||
TLocalisamfile* _comuni;
|
||||
TLocalisamfile* _saldi;
|
||||
|
||||
// etichette
|
||||
int _startrow, _rows_et, _cols_et, _startcol;
|
||||
|
||||
// variable field slots
|
||||
TString _piva;
|
||||
TString _telefono;
|
||||
TString _name;
|
||||
|
||||
public:
|
||||
|
||||
virtual bool preprocess_page(int counter);
|
||||
virtual bool preprocess_print(int counter);
|
||||
virtual print_action postprocess_print(int counter);
|
||||
virtual void user_create();
|
||||
virtual bool destroy();
|
||||
virtual bool set_print(int);
|
||||
|
||||
int ccli() { return _sort == 1 ? _cur_c1 : _cur_c2; }
|
||||
int cfor() { return _sort == 1 ? _cur_f1 : _cur_f2; }
|
||||
|
||||
TRectype& look_com(TString& cod);
|
||||
const char* look_tab(const char* tabname, TString& cod,
|
||||
const char* fld = "S0");
|
||||
const char* get_field(int ln, const char* fn)
|
||||
{ return current_cursor()->curr(ln).get(fn); }
|
||||
|
||||
void set_rows();
|
||||
void set_elenco();
|
||||
void set_rubriche();
|
||||
void set_etichette();
|
||||
|
||||
CG1200_App() : TPrintapp(), _piva(30), _telefono(50),
|
||||
_name(60)
|
||||
{
|
||||
_rel = NULL; _pr_type = undefined; _startrow = 2; _startcol = 3;
|
||||
_rows_et = 9; _cols_et = 40;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
/* -------------------------------------------------------------------- */
|
||||
/* ---------------------------- Code ---------------------------------- */
|
||||
/* -------------------------------------------------------------------- */
|
||||
|
||||
|
||||
TRectype& CG1200_App::look_com(TString& cod)
|
||||
{
|
||||
_comuni->curr().zero();
|
||||
_comuni->curr().put("COM",cod);
|
||||
_comuni->read();
|
||||
if (_comuni->bad())
|
||||
_comuni->curr().zero();
|
||||
return _comuni->curr();
|
||||
}
|
||||
|
||||
const char* CG1200_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 CG1200_App::preprocess_page(int counter)
|
||||
{
|
||||
if (_mov_only)
|
||||
{
|
||||
// se non movimentato
|
||||
_saldi->curr().zero();
|
||||
_saldi->curr().put("GRUPPO",get_field(LF_CLIFO,"GRUPPO"));
|
||||
_saldi->curr().put("CONTO",get_field(LF_CLIFO,"CONTO"));
|
||||
_saldi->curr().put("SOTTOCONTO",get_field(LF_CLIFO,"CODCF"));
|
||||
_saldi->read();
|
||||
if (_saldi->curr().get("GRUPPO") == get_field(LF_CLIFO,"GRUPPO") &&
|
||||
_saldi->curr().get("CONTO") == get_field(LF_CLIFO,"CONTO") &&
|
||||
_saldi->curr().get("SOTTOCONTO") == get_field(LF_CLIFO,"CODCF"))
|
||||
// OSTIA! e' MOVIMENTATO!
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
// set variable fields
|
||||
_piva = get_field(LF_CLIFO,"COFI");
|
||||
if (_piva.empty()) _piva = get_field(LF_CLIFO,"PAIV");
|
||||
_telefono = get_field(LF_CLIFO,"PTEL");
|
||||
if (!_telefono.empty()) _telefono << "/";
|
||||
_telefono << get_field(LF_CLIFO,"TEL");
|
||||
|
||||
_name = get_field(LF_CLIFO,"RAGSOC");
|
||||
|
||||
if (strcmp(get_field(LF_CLIFO,"TIPOAPER"),"F") == 0)
|
||||
{
|
||||
TString surname = _name.mid(30,50); surname.trim();
|
||||
_name = _name.mid(0,30); _name.trim();
|
||||
_name << " " << surname;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
print_action CG1200_App::postprocess_print(int counter)
|
||||
{
|
||||
static bool more = FALSE;
|
||||
if (_pr_what == both)
|
||||
{
|
||||
if (more)
|
||||
{
|
||||
more = FALSE;
|
||||
select_cursor(ccli());
|
||||
return NEXT_PAGE;
|
||||
}
|
||||
else
|
||||
{
|
||||
more = TRUE;
|
||||
select_cursor(cfor());
|
||||
return REPEAT_PAGE;
|
||||
}
|
||||
}
|
||||
return NEXT_PAGE;
|
||||
}
|
||||
|
||||
bool mask_ctrl_handler(TMask_field& mf, KEY k)
|
||||
{
|
||||
if (k == K_SPACE)
|
||||
{
|
||||
mf.mask().stop_run(mf.dlg());
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
// set printrows
|
||||
|
||||
void CG1200_App::set_rows()
|
||||
{
|
||||
switch(_pr_type)
|
||||
{
|
||||
case elenco:
|
||||
set_elenco();
|
||||
break;
|
||||
case rubriche:
|
||||
set_rubriche();
|
||||
break;
|
||||
case etichette:
|
||||
set_etichette();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void CG1200_App::set_elenco()
|
||||
{
|
||||
reset_print();
|
||||
reset_header();
|
||||
// intestazione
|
||||
set_header(1, "Ditta /*TBI*/@82gStudio /*TBI*/@102gData @<@125gPag @#");
|
||||
set_header(2, "Elenco %s",(_pr_what == both ? "Clienti+Fornitori" :
|
||||
(_pr_what == clienti ? "Clienti" : "Fornitori")));
|
||||
set_header(3, (const char *)(TString(132).fill('-')));
|
||||
set_header(4, "Codice Ragione sociale@55gIndirizzo@91gC.a.p.Localita'"
|
||||
"@117gPr Telefono");
|
||||
set_header(5,"@8gLuogo di nascita@29gData@40gProv. Nazione "
|
||||
"Partita IVA Codice fiscale@91gConto di costo/ricavo");
|
||||
set_header(6,"@55gCodice per allegato@90gPercipiente 770");
|
||||
set_header(7, (const char *)(TString(132).fill('-')));
|
||||
// body
|
||||
set_row(1,"@pn #s@55g@s@91g@s @s@117g@s #s",
|
||||
FLD(LF_CLIFO, "CODCF","@@@@@@"),
|
||||
(const char*)_name,
|
||||
FLD(LF_CLIFO, "INDCF"),
|
||||
FLD(LF_CLIFO, "CAPCF"),
|
||||
FLD(LF_COMUNI,"DENCOM"),
|
||||
FLD(LF_COMUNI,"PROVCOM"),
|
||||
(const char*)_telefono);
|
||||
set_row(2,"@54g#s@90g@2n @2n @pn",
|
||||
(const char *)_piva,
|
||||
FLD(LF_CLIFO,"GRUPPORIC"),
|
||||
FLD(LF_CLIFO,"CONTORIC"),
|
||||
FLD(LF_CLIFO,"SOTTOCRIC","@@@@@@"));
|
||||
|
||||
for(int i = 0; i < _interline; i++)
|
||||
set_row(i+3,"");
|
||||
}
|
||||
|
||||
void CG1200_App::set_rubriche()
|
||||
{
|
||||
reset_print();
|
||||
reset_header();
|
||||
// intestazione
|
||||
set_header(1, "Ditta /*TBI*/@82gStudio /*TBI*/@102gData @<@125gPag @#");
|
||||
set_header(2, "Rubrica %s",(_pr_what == both ? "Clienti+Fornitori" :
|
||||
(_pr_what == clienti ? "Clienti" : "Fornitori")));
|
||||
set_header(3, (const char *)(TString(132).fill('-')));
|
||||
set_header(4, "Codice C Ragione sociale@41gIndirizzo@77gCap@83gLocalita'"
|
||||
"@104gPr Partita iva Telefono");
|
||||
set_header(5, (const char *)(TString(132).fill('-')));
|
||||
// body
|
||||
set_row(1,"@pn #s@55g@s@91g@s @s@117g@s #s",
|
||||
FLD(LF_CLIFO,"CODCF","@@@@@@"),
|
||||
(const char *)_name,
|
||||
FLD(LF_CLIFO,"INDCF"),
|
||||
FLD(LF_CLIFO,"CAPCF"),
|
||||
FLD(LF_COMUNI,"DENCOM"),
|
||||
FLD(LF_COMUNI,"PROVCOM"),
|
||||
(const char*)_telefono);
|
||||
}
|
||||
|
||||
bool mask2_reset_fields(TMask_field& mf, KEY k)
|
||||
{
|
||||
if (k == K_SPACE)
|
||||
{
|
||||
CG1200_App* a = (CG1200_App*)MainApp();
|
||||
mf.mask().field(FLD_CGB_STARTROW).set(format("%d",a->_startrow));
|
||||
mf.mask().field(FLD_CGB_STARTCOL).set(format("%d",a->_startcol));
|
||||
mf.mask().field(FLD_CGB_ROWSET).set(format("%d",a->_rows_et));
|
||||
mf.mask().field(FLD_CGB_COLSET).set(format("%d",a->_cols_et));
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void CG1200_App::set_etichette()
|
||||
{
|
||||
reset_print();
|
||||
reset_header();
|
||||
TMask mask2("cg1200b.msk");
|
||||
|
||||
/* TBI read/save from - to config file */
|
||||
|
||||
mask2.set_handler(BUT_CGB_RESET, mask2_reset_fields);
|
||||
|
||||
mask2.field(FLD_CGB_ROWSET).set(format("%d",_rows_et));
|
||||
mask2.field(FLD_CGB_COLSET).set(format("%d",_cols_et));
|
||||
|
||||
mask2.field(FLD_CGB_STARTROW).set(format("%d",_startrow));
|
||||
mask2.field(FLD_CGB_STARTCOL).set(format("%d",_startcol));
|
||||
|
||||
// set defaults
|
||||
|
||||
mask2.run();
|
||||
|
||||
_startrow = atoi(mask2.get(FLD_CGB_STARTROW));
|
||||
_startcol = atoi(mask2.get(FLD_CGB_STARTCOL));
|
||||
_rows_et = atoi(mask2.get(FLD_CGB_ROWSET));
|
||||
_cols_et = atoi(mask2.get(FLD_CGB_COLSET));
|
||||
|
||||
for (int i = 1; i < _startrow; i++)
|
||||
set_row(i,"");
|
||||
|
||||
set_row(_startrow, format("@%dg#%ds",_startcol, _cols_et - _startcol),
|
||||
(const char*)_name);
|
||||
set_row(_startrow+1, format("@%dg@%ds",_startcol, _cols_et - _startcol),
|
||||
FLD(LF_CLIFO,"INDCF"));
|
||||
set_row(_startrow+2, format("@%dg@5s @%ds @2s",_startcol,
|
||||
_cols_et - _startcol - 9),
|
||||
FLD(LF_CLIFO,"CAPCF"),
|
||||
FLD(LF_COMUNI,"DENCOM"),
|
||||
FLD(LF_COMUNI,"PROVCOM"));
|
||||
|
||||
for (i = _startrow+3; i <= _rows_et; i++)
|
||||
set_row(i,"");
|
||||
}
|
||||
|
||||
bool CG1200_App::set_print(int)
|
||||
{
|
||||
TMask mask("cg1200a.msk");
|
||||
mask.set_handler(BUT_CG12_ELENCO, mask_ctrl_handler);
|
||||
mask.set_handler(BUT_CG12_RUBRICHE, mask_ctrl_handler);
|
||||
mask.set_handler(BUT_CG12_ETICHETTE, mask_ctrl_handler);
|
||||
mask.run();
|
||||
|
||||
// set print type
|
||||
switch (mask.last_key())
|
||||
{
|
||||
case K_ESC:
|
||||
return FALSE;
|
||||
break;
|
||||
case BUT_CG12_ELENCO:
|
||||
_pr_type = elenco;
|
||||
break;
|
||||
case BUT_CG12_ETICHETTE:
|
||||
_pr_type = etichette;
|
||||
break;
|
||||
case BUT_CG12_RUBRICHE:
|
||||
_pr_type = rubriche;
|
||||
break;
|
||||
}
|
||||
|
||||
_sort = atoi(mask.get(RDB_CG12_SORT));
|
||||
_pr_what = (pw)atoi(mask.get(RDB_CG12_TYPE));
|
||||
_interline = atoi(mask.get(LST_CG12_INTERLINE));
|
||||
_mov_only = mask.get(CHK_CG12_MOVIM) == "X";
|
||||
|
||||
TString cod_from(5), cod_to(5);
|
||||
TLocalisamfile* fl;
|
||||
|
||||
if (_pr_what == fornitori)
|
||||
select_cursor(cfor());
|
||||
else select_cursor(ccli());
|
||||
|
||||
if (_pr_what != both)
|
||||
{
|
||||
// filter
|
||||
if (_sort == 1)
|
||||
{
|
||||
cod_from = mask.get(_pr_what == clienti ? FLD_CLI_CODFR
|
||||
: FLD_FOR_CODFR);
|
||||
cod_to = mask.get(_pr_what == clienti ? FLD_CLI_CODTO
|
||||
: FLD_FOR_CODTO);
|
||||
}
|
||||
else
|
||||
{
|
||||
cod_from = mask.get(_pr_what == clienti ? FLD_CLI_RAGSOCFR
|
||||
: FLD_FOR_RAGSOCFR);
|
||||
cod_to = mask.get(_pr_what == clienti ? FLD_CLI_RAGSOCTO
|
||||
: FLD_FOR_RAGSOCTO);
|
||||
}
|
||||
if ((!cod_from.empty() || !cod_to.empty()) && _pr_what != both)
|
||||
{
|
||||
fl = current_cursor()->file(LF_CLIFO);
|
||||
TRectype tr1(fl->curr());
|
||||
TRectype tr2(fl->curr());
|
||||
tr1.zero(); tr2.zero();
|
||||
if (_sort == 1)
|
||||
{
|
||||
tr1.put("CODCF",cod_from);
|
||||
tr2.put("CODCF",cod_to);
|
||||
tr1.put("TIPOCF", _pr_what == clienti ? "C" : "F");
|
||||
tr2.put("TIPOCF", _pr_what == clienti ? "C" : "F");
|
||||
}
|
||||
else
|
||||
{
|
||||
tr1.put("RAGSOC",cod_from);
|
||||
tr2.put("RAGSOC",cod_to);
|
||||
}
|
||||
current_cursor()->setregion(cod_from.empty() ? NULL : &tr1,
|
||||
cod_to.empty() ? NULL : &tr2);
|
||||
}
|
||||
}
|
||||
|
||||
// initialize (non dovrebbe servire)
|
||||
(*current_cursor()) = 0l;
|
||||
|
||||
// set initial print rows & headers
|
||||
set_rows();
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
bool CG1200_App::preprocess_print(int counter)
|
||||
{
|
||||
if (_pr_type == undefined)
|
||||
return set_print(counter);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void CG1200_App::user_create()
|
||||
{
|
||||
// set relation and cursors
|
||||
_rel = new TRelation(LF_CLIFO);
|
||||
_rel->add(LF_COMUNI, "COM=COMCF");
|
||||
_comuni = _rel->lfile(LF_COMUNI);
|
||||
_saldi = new TLocalisamfile(LF_SALDI); _saldi->setkey(2);
|
||||
_cur_c1 = add_cursor(new TCursor(_rel,"TIPOCF=\"C\"",1));
|
||||
_cur_c2 = add_cursor(new TCursor(_rel,"TIPOCF=\"C\"",2));
|
||||
_cur_f1 = add_cursor(new TCursor(_rel,"TIPOCF=\"F\"",1));
|
||||
_cur_f2 = add_cursor(new TCursor(_rel,"TIPOCF=\"F\"",2));
|
||||
add_file(LF_CLIFO);
|
||||
enable_print_menu();
|
||||
}
|
||||
|
||||
bool CG1200_App::destroy()
|
||||
{
|
||||
if (_rel)
|
||||
delete _rel;
|
||||
delete _saldi;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
int cg1200(int argc, char* argv[])
|
||||
{
|
||||
CG1200_App app;
|
||||
app.run(argc, argv, "Stampe Clienti/Fornitori");
|
||||
return 0;
|
||||
}
|
||||
#include <printapp.h>
|
||||
#include <mask.h>
|
||||
#include <tabutil.h>
|
||||
#include <utility.h>
|
||||
#include <mailbox.h>
|
||||
#include <execp.h>
|
||||
|
||||
#include <clifo.h>
|
||||
#include <saldi.h>
|
||||
#include <comuni.h>
|
||||
#include "cg1200a.h"
|
||||
#include "cg1200b.h"
|
||||
|
||||
enum pt { undefined = 0, elenco = 1, rubriche = 2, etichette = 3 };
|
||||
enum pw { clienti = 1, fornitori = 2, both = 3 };
|
||||
|
||||
bool mask2_reset_fields(TMask_field& mf, KEY k);
|
||||
|
||||
class CG1200_App : public TPrintapp
|
||||
{
|
||||
friend bool mask2_reset_fields(TMask_field& mf, KEY k);
|
||||
|
||||
pt _pr_type;
|
||||
pw _pr_what;
|
||||
TRelation* _rel;
|
||||
int _cur_c1, _cur_c2, _cur_f1, _cur_f2;
|
||||
int _sort;
|
||||
int _interline;
|
||||
bool _mov_only;
|
||||
TLocalisamfile* _comuni;
|
||||
TLocalisamfile* _saldi;
|
||||
|
||||
// etichette
|
||||
int _startrow, _rows_et, _cols_et, _startcol;
|
||||
|
||||
// variable field slots
|
||||
TString _piva;
|
||||
TString _telefono;
|
||||
TString _name;
|
||||
|
||||
public:
|
||||
|
||||
virtual bool preprocess_page(int counter);
|
||||
virtual bool preprocess_print(int counter);
|
||||
virtual print_action postprocess_print(int counter);
|
||||
virtual void user_create();
|
||||
virtual bool destroy();
|
||||
virtual bool set_print(int);
|
||||
|
||||
int ccli() { return _sort == 1 ? _cur_c1 : _cur_c2; }
|
||||
int cfor() { return _sort == 1 ? _cur_f1 : _cur_f2; }
|
||||
|
||||
TRectype& look_com(TString& cod);
|
||||
const char* look_tab(const char* tabname, TString& cod,
|
||||
const char* fld = "S0");
|
||||
const char* get_field(int ln, const char* fn)
|
||||
{ return current_cursor()->curr(ln).get(fn); }
|
||||
|
||||
void set_rows();
|
||||
void set_elenco();
|
||||
void set_rubriche();
|
||||
void set_etichette();
|
||||
void process_link(int id, const char* txt);
|
||||
|
||||
CG1200_App() : TPrintapp(), _piva(30), _telefono(50),
|
||||
_name(60)
|
||||
{
|
||||
_rel = NULL; _pr_type = undefined; _startrow = 2; _startcol = 3;
|
||||
_rows_et = 9; _cols_et = 40;
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
|
||||
/* -------------------------------------------------------------------- */
|
||||
/* ---------------------------- Code ---------------------------------- */
|
||||
/* -------------------------------------------------------------------- */
|
||||
|
||||
|
||||
void CG1200_App::process_link(int id, const char* txt)
|
||||
{
|
||||
TString ss = "1|";
|
||||
switch (_pr_what)
|
||||
{
|
||||
case clienti :
|
||||
ss << "C|"; break;
|
||||
case fornitori :
|
||||
ss << "F|"; break;
|
||||
case both :
|
||||
default :
|
||||
break;
|
||||
}
|
||||
ss << txt;
|
||||
TMessage fs(cmd2name("cg0","1"), MSG_LN, ss);
|
||||
TMailbox m;
|
||||
m.send(fs);
|
||||
TExternal_app cg0("cg -1");
|
||||
if (cg0.run()) beep();
|
||||
}
|
||||
|
||||
TRectype& CG1200_App::look_com(TString& cod)
|
||||
{
|
||||
_comuni->curr().zero();
|
||||
_comuni->curr().put("COM",cod);
|
||||
_comuni->read();
|
||||
if (_comuni->bad())
|
||||
_comuni->curr().zero();
|
||||
return _comuni->curr();
|
||||
}
|
||||
|
||||
const char* CG1200_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 CG1200_App::preprocess_page(int counter)
|
||||
{
|
||||
if (_mov_only)
|
||||
{
|
||||
// se non movimentato
|
||||
_saldi->curr().zero();
|
||||
_saldi->curr().put(SLD_GRUPPO,get_field(LF_CLIFO,CLI_GRUPPO));
|
||||
_saldi->curr().put(SLD_CONTO,get_field(LF_CLIFO, CLI_CONTO));
|
||||
_saldi->curr().put(SLD_SOTTOCONTO,get_field(LF_CLIFO,CLI_CODCF));
|
||||
_saldi->read();
|
||||
if (_saldi->curr().get(SLD_GRUPPO) == get_field(LF_CLIFO, CLI_GRUPPO) &&
|
||||
_saldi->curr().get(SLD_CONTO) == get_field(LF_CLIFO,CLI_CONTO) &&
|
||||
_saldi->curr().get(SLD_SOTTOCONTO) == get_field(LF_CLIFO,CLI_CODCF))
|
||||
// OSTIA! e' MOVIMENTATO!
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
// set variable fields
|
||||
_piva = get_field(LF_CLIFO, CLI_COFI);
|
||||
if (_piva.empty()) _piva = get_field(LF_CLIFO, CLI_PAIV);
|
||||
_telefono = get_field(LF_CLIFO, CLI_PTEL);
|
||||
if (!_telefono.empty()) _telefono << "/";
|
||||
_telefono << get_field(LF_CLIFO, CLI_TEL);
|
||||
|
||||
_name = get_field(LF_CLIFO, CLI_RAGSOC);
|
||||
|
||||
if (strcmp(get_field(LF_CLIFO, CLI_TIPOAPER),"F") == 0)
|
||||
{
|
||||
TString surname = _name.mid(30,50); surname.trim();
|
||||
_name = _name.mid(0,30); _name.trim();
|
||||
_name << " " << surname;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
print_action CG1200_App::postprocess_print(int counter)
|
||||
{
|
||||
static bool more = FALSE;
|
||||
if (_pr_what == both)
|
||||
{
|
||||
if (more)
|
||||
{
|
||||
more = FALSE;
|
||||
select_cursor(ccli());
|
||||
return NEXT_PAGE;
|
||||
}
|
||||
else
|
||||
{
|
||||
more = TRUE;
|
||||
select_cursor(cfor());
|
||||
return REPEAT_PAGE;
|
||||
}
|
||||
}
|
||||
return NEXT_PAGE;
|
||||
}
|
||||
|
||||
bool mask_ctrl_handler(TMask_field& mf, KEY k)
|
||||
{
|
||||
if (k == K_SPACE)
|
||||
{
|
||||
mf.mask().stop_run(mf.dlg());
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
// set printrows
|
||||
|
||||
void CG1200_App::set_rows()
|
||||
{
|
||||
switch(_pr_type)
|
||||
{
|
||||
case elenco:
|
||||
set_elenco();
|
||||
break;
|
||||
case rubriche:
|
||||
set_rubriche();
|
||||
break;
|
||||
case etichette:
|
||||
set_etichette();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void CG1200_App::set_elenco()
|
||||
{
|
||||
reset_print();
|
||||
reset_header();
|
||||
// intestazione
|
||||
set_header(1, "Ditta /*TBI*/@82gStudio /*TBI*/@102gData @<@125gPag @#");
|
||||
set_header(2, "Elenco %s",(_pr_what == both ? "Clienti+Fornitori" :
|
||||
(_pr_what == clienti ? "Clienti" : "Fornitori")));
|
||||
set_header(3, (const char *)(TString(132).fill('-')));
|
||||
set_header(4, "Codice Ragione sociale@55gIndirizzo@91gC.a.p.Localita'"
|
||||
"@117gPr Telefono");
|
||||
set_header(5,"@8gLuogo di nascita@29gData@40gProv. Nazione "
|
||||
"Partita IVA Codice fiscale@91gConto di costo/ricavo");
|
||||
set_header(6,"@55gCodice per allegato@90gPercipiente 770");
|
||||
set_header(7, (const char *)(TString(132).fill('-')));
|
||||
// body
|
||||
set_row(1,"$[r]@pn$[n} #s@55g@s@91g@s @s@117g@s #s",
|
||||
FLD(LF_CLIFO, CLI_CODCF,"@@@@@@"),
|
||||
(const char*)_name,
|
||||
FLD(LF_CLIFO, CLI_INDCF),
|
||||
FLD(LF_CLIFO, CLI_CAPCF),
|
||||
FLD(LF_COMUNI,COM_DENCOM),
|
||||
FLD(LF_COMUNI,COM_PROVCOM),
|
||||
(const char*)_telefono);
|
||||
set_row(2,"@54g#s@90g@2n @2n @pn",
|
||||
(const char *)_piva,
|
||||
FLD(LF_CLIFO,CLI_GRUPPORIC),
|
||||
FLD(LF_CLIFO,CLI_CONTORIC),
|
||||
FLD(LF_CLIFO, CLI_SOTTOCRIC,"@@@@@@"));
|
||||
|
||||
for(int i = 0; i < _interline; i++)
|
||||
set_row(i+3,"");
|
||||
}
|
||||
|
||||
void CG1200_App::set_rubriche()
|
||||
{
|
||||
reset_print();
|
||||
reset_header();
|
||||
// intestazione
|
||||
set_header(1, "Ditta /*TBI*/@82gStudio /*TBI*/@102gData @<@125gPag @#");
|
||||
set_header(2, "Rubrica %s",(_pr_what == both ? "Clienti+Fornitori" :
|
||||
(_pr_what == clienti ? "Clienti" : "Fornitori")));
|
||||
set_header(3, (const char *)(TString(132).fill('-')));
|
||||
set_header(4, "Codice C Ragione sociale@41gIndirizzo@77gCap@83gLocalita'"
|
||||
"@104gPr Partita iva Telefono");
|
||||
set_header(5, (const char *)(TString(132).fill('-')));
|
||||
// body
|
||||
set_row(1,"$[r]@pn$[n] #s@55g@s@91g@s @s@117g@s #s",
|
||||
FLD(LF_CLIFO,CLI_CODCF,"@@@@@@"),
|
||||
(const char *)_name,
|
||||
FLD(LF_CLIFO,CLI_INDCF),
|
||||
FLD(LF_CLIFO, CLI_CAPCF),
|
||||
FLD(LF_COMUNI, COM_DENCOM),
|
||||
FLD(LF_COMUNI, COM_PROVCOM),
|
||||
(const char*)_telefono);
|
||||
}
|
||||
|
||||
bool mask2_reset_fields(TMask_field& mf, KEY k)
|
||||
{
|
||||
if (k == K_SPACE)
|
||||
{
|
||||
CG1200_App* a = (CG1200_App*)MainApp();
|
||||
mf.mask().field(FLD_CGB_STARTROW).set(format("%d",a->_startrow));
|
||||
mf.mask().field(FLD_CGB_STARTCOL).set(format("%d",a->_startcol));
|
||||
mf.mask().field(FLD_CGB_ROWSET).set(format("%d",a->_rows_et));
|
||||
mf.mask().field(FLD_CGB_COLSET).set(format("%d",a->_cols_et));
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void CG1200_App::set_etichette()
|
||||
{
|
||||
reset_print();
|
||||
reset_header();
|
||||
TMask mask2("cg1200b.msk");
|
||||
|
||||
/* TBI read/save from - to config file */
|
||||
|
||||
mask2.set_handler(BUT_CGB_RESET, mask2_reset_fields);
|
||||
|
||||
mask2.field(FLD_CGB_ROWSET).set(format("%d",_rows_et));
|
||||
mask2.field(FLD_CGB_COLSET).set(format("%d",_cols_et));
|
||||
|
||||
mask2.field(FLD_CGB_STARTROW).set(format("%d",_startrow));
|
||||
mask2.field(FLD_CGB_STARTCOL).set(format("%d",_startcol));
|
||||
|
||||
// set defaults
|
||||
|
||||
mask2.run();
|
||||
|
||||
_startrow = atoi(mask2.get(FLD_CGB_STARTROW));
|
||||
_startcol = atoi(mask2.get(FLD_CGB_STARTCOL));
|
||||
_rows_et = atoi(mask2.get(FLD_CGB_ROWSET));
|
||||
_cols_et = atoi(mask2.get(FLD_CGB_COLSET));
|
||||
|
||||
for (int i = 1; i < _startrow; i++)
|
||||
set_row(i,"");
|
||||
|
||||
set_row(_startrow, format("@%dg#%ds",_startcol, _cols_et - _startcol),
|
||||
(const char*)_name);
|
||||
set_row(_startrow+1, format("@%dg@%ds",_startcol, _cols_et - _startcol),
|
||||
FLD(LF_CLIFO, CLI_INDCF));
|
||||
set_row(_startrow+2, format("@%dg@5s @%ds @2s",_startcol,
|
||||
_cols_et - _startcol - 9),
|
||||
FLD(LF_CLIFO, CLI_CAPCF),
|
||||
FLD(LF_COMUNI, COM_DENCOM),
|
||||
FLD(LF_COMUNI, COM_PROVCOM));
|
||||
|
||||
for (i = _startrow+3; i <= _rows_et; i++)
|
||||
set_row(i,"");
|
||||
}
|
||||
|
||||
bool CG1200_App::set_print(int)
|
||||
{
|
||||
TMask mask("cg1200a.msk");
|
||||
mask.set_handler(BUT_CG12_ELENCO, mask_ctrl_handler);
|
||||
mask.set_handler(BUT_CG12_RUBRICHE, mask_ctrl_handler);
|
||||
mask.set_handler(BUT_CG12_ETICHETTE, mask_ctrl_handler);
|
||||
mask.run();
|
||||
|
||||
// set print type
|
||||
switch (mask.last_key())
|
||||
{
|
||||
case K_ESC:
|
||||
return FALSE;
|
||||
break;
|
||||
case BUT_CG12_ELENCO:
|
||||
_pr_type = elenco;
|
||||
break;
|
||||
case BUT_CG12_ETICHETTE:
|
||||
_pr_type = etichette;
|
||||
break;
|
||||
case BUT_CG12_RUBRICHE:
|
||||
_pr_type = rubriche;
|
||||
break;
|
||||
}
|
||||
|
||||
_sort = atoi(mask.get(RDB_CG12_SORT));
|
||||
_pr_what = (pw)atoi(mask.get(RDB_CG12_TYPE));
|
||||
if (_pr_what != both && _pr_type != rubriche)
|
||||
enable_link("Collegamento Archivio clienti e fornitori : ", 'r');
|
||||
_interline = atoi(mask.get(LST_CG12_INTERLINE));
|
||||
_mov_only = mask.get(CHK_CG12_MOVIM) == "X";
|
||||
|
||||
TString cod_from(5), cod_to(5);
|
||||
TLocalisamfile* fl;
|
||||
|
||||
if (_pr_what == fornitori)
|
||||
select_cursor(cfor());
|
||||
else select_cursor(ccli());
|
||||
|
||||
if (_pr_what != both)
|
||||
{
|
||||
// filter
|
||||
if (_sort == 1)
|
||||
{
|
||||
cod_from = mask.get(_pr_what == clienti ? FLD_CLI_CODFR
|
||||
: FLD_FOR_CODFR);
|
||||
cod_to = mask.get(_pr_what == clienti ? FLD_CLI_CODTO
|
||||
: FLD_FOR_CODTO);
|
||||
}
|
||||
else
|
||||
{
|
||||
cod_from = mask.get(_pr_what == clienti ? FLD_CLI_RAGSOCFR
|
||||
: FLD_FOR_RAGSOCFR);
|
||||
cod_to = mask.get(_pr_what == clienti ? FLD_CLI_RAGSOCTO
|
||||
: FLD_FOR_RAGSOCTO);
|
||||
}
|
||||
if ((!cod_from.empty() || !cod_to.empty()) && _pr_what != both)
|
||||
{
|
||||
fl = current_cursor()->file(LF_CLIFO);
|
||||
TRectype tr1(fl->curr());
|
||||
TRectype tr2(fl->curr());
|
||||
tr1.zero(); tr2.zero();
|
||||
if (_sort == 1)
|
||||
{
|
||||
tr1.put(CLI_CODCF,cod_from);
|
||||
tr2.put(CLI_CODCF,cod_to);
|
||||
tr1.put(CLI_TIPOCF, _pr_what == clienti ? "C" : "F");
|
||||
tr2.put(CLI_TIPOCF, _pr_what == clienti ? "C" : "F");
|
||||
}
|
||||
else
|
||||
{
|
||||
tr1.put(CLI_RAGSOC,cod_from);
|
||||
tr2.put(CLI_RAGSOC,cod_to);
|
||||
}
|
||||
current_cursor()->setregion(cod_from.empty() ? NULL : &tr1,
|
||||
cod_to.empty() ? NULL : &tr2);
|
||||
}
|
||||
}
|
||||
|
||||
// initialize (non dovrebbe servire)
|
||||
(*current_cursor()) = 0l;
|
||||
|
||||
// set initial print rows & headers
|
||||
set_rows();
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
bool CG1200_App::preprocess_print(int counter)
|
||||
{
|
||||
if (_pr_type == undefined)
|
||||
return set_print(counter);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void CG1200_App::user_create()
|
||||
{
|
||||
// set relation and cursors
|
||||
_rel = new TRelation(LF_CLIFO);
|
||||
_rel->add(LF_COMUNI, "COM=COMCF");
|
||||
_comuni = _rel->lfile(LF_COMUNI);
|
||||
_saldi = new TLocalisamfile(LF_SALDI); _saldi->setkey(2);
|
||||
_cur_c1 = add_cursor(new TCursor(_rel,"TIPOCF=\"C\"",1));
|
||||
_cur_c2 = add_cursor(new TCursor(_rel,"TIPOCF=\"C\"",2));
|
||||
_cur_f1 = add_cursor(new TCursor(_rel,"TIPOCF=\"F\"",1));
|
||||
_cur_f2 = add_cursor(new TCursor(_rel,"TIPOCF=\"F\"",2));
|
||||
add_file(LF_CLIFO);
|
||||
enable_print_menu();
|
||||
}
|
||||
|
||||
bool CG1200_App::destroy()
|
||||
{
|
||||
if (_rel)
|
||||
delete _rel;
|
||||
delete _saldi;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
int cg1200(int argc, char* argv[])
|
||||
{
|
||||
CG1200_App app;
|
||||
app.run(argc, argv, "Stampe Clienti/Fornitori");
|
||||
return 0;
|
||||
}
|
||||
|
6242
cg/cg1500.cpp
6242
cg/cg1500.cpp
File diff suppressed because it is too large
Load Diff
7276
cg/cg1600.cpp
7276
cg/cg1600.cpp
File diff suppressed because it is too large
Load Diff
@ -50,9 +50,9 @@ $(EP)cg0500a.msk : cg0500a.uml
|
||||
|
||||
$(O)/cg1.o: cg1.cpp $(I10) $(I24) $(I32)
|
||||
|
||||
$(O)/cg1100.o: cg1100.cpp $(I6) $(I10) $(I24) $(I27) $(I33) cg1100.h
|
||||
$(O)/cg1100.o: cg1100.cpp $(I6) $(I10) $(I24) $(I27) $(I33) $(I47) $(I48) cg1100.h $(IP)pconti.h
|
||||
|
||||
$(O)/cg1200.o: cg1200.cpp $(I6) $(I10) $(I24) $(I27) $(I33) cg1200a.h
|
||||
$(O)/cg1200.o: cg1200.cpp $(I6) $(I10) $(I24) $(I27) $(I33) $(I47) $(I48) cg1200a.h $(IP)saldi.h $(IP)clifo.h $(IP)comuni.h
|
||||
|
||||
$(O)/cg1300.o: cg1200.cpp $(I24) $(I31) $(I33) $(I51)
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user