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:
alex 1994-08-23 12:53:59 +00:00
parent ec0c54497d
commit 5f96e2e4ea
7 changed files with 7833 additions and 7967 deletions

View File

@ -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;
}

View File

@ -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

File diff suppressed because it is too large Load Diff

View File

@ -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;
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -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)