1301 lines
38 KiB
Plaintext
Executable File
1301 lines
38 KiB
Plaintext
Executable File
#include <printapp.h>
|
|
#include <iostream.h>
|
|
#include <mask.h>
|
|
#include <lffiles.h>
|
|
#include <stdio.h>
|
|
#include <urldefid.h>
|
|
#include <tabutil.h>
|
|
#include <utility.h>
|
|
|
|
#include "ba6100a.h"
|
|
#include "ba6100b.h"
|
|
|
|
#define M_SET_PRINTER MENU_FILE + 1100
|
|
#define M_PRINT MENU_FILE + 1101
|
|
#define MENU_TYPE MENU_FILE + 1102
|
|
|
|
enum pt { undefined = 0, elenco = 1, schede = 2, rubriche = 3, etichette = 4 };
|
|
enum pw { anafis = 0, anagiu = 1, nditte = 2 };
|
|
enum in { residenza = 1, domfisc = 2, corrispondenza = 3 };
|
|
|
|
bool mask_reset_fields(TMask_field& mf, KEY k);
|
|
|
|
class BA6100_App : public TPrintapp
|
|
{
|
|
friend bool mask_reset_fields(TMask_field& mf, KEY k);
|
|
|
|
pt _pr_type;
|
|
pw _pr_what;
|
|
TRelation* _rel_fis;
|
|
TRelation* _rel_giu;
|
|
TRelation* _rel_dit;
|
|
int _cfis1, _cgiu1, _cdit1;
|
|
int _cfis2, _cgiu2, _cdit2;
|
|
int _sort;
|
|
bool _inclditte;
|
|
TLocalisamfile* _comuni;
|
|
// settings etichette
|
|
in _ind_what;
|
|
int _ind_row, _ind_col, _rows_et, _cols_et;
|
|
int _piv_row, _piv_col, _cod_row, _cod_col;
|
|
bool _is_piv, _is_cod;
|
|
bool* _frpos;
|
|
|
|
public:
|
|
|
|
virtual bool preprocess_page(int counter);
|
|
virtual print_action postprocess_page(int counter);
|
|
virtual bool preprocess_print(int counter);
|
|
virtual void set_linked_print(int link);
|
|
virtual bool create();
|
|
virtual bool destroy();
|
|
virtual bool set_print();
|
|
|
|
int cfis() { return _sort == 1 ? _cfis1 : _cfis2; }
|
|
int cgiu() { return _sort == 1 ? _cgiu1 : _cgiu2; }
|
|
int cdit() { return _sort == 1 ? _cdit1 : _cdit2; }
|
|
|
|
TRectype& look_com(const char* cod);
|
|
const char* look_tab(const char* tabname, const char* cod,
|
|
const char* fld = "S0");
|
|
|
|
// bel casino, le schede
|
|
void set_scheda_anagiu();
|
|
void set_scheda_anafis();
|
|
void set_scheda_ditta();
|
|
void set_scheda_attiv();
|
|
void set_scheda_registro();
|
|
void set_scheda_unloc();
|
|
void set_scheda_socio();
|
|
void preprocess_etichette();
|
|
// print_action postprocess_scheda_ditta();
|
|
|
|
const char* get_field(int ln, const char* fn)
|
|
{ return current_cursor()->curr(ln).get(fn); }
|
|
|
|
void set_rows();
|
|
|
|
BA6100_App() : TPrintapp()
|
|
{
|
|
_rel_fis = _rel_giu = _rel_dit = NULL;
|
|
_pr_type = undefined; _pr_what = anafis;
|
|
_inclditte = FALSE; _more = FALSE;
|
|
/* TBI leggi configurazione per etichette */
|
|
_ind_what = residenza;
|
|
_rows_et = 9; _cols_et = 40;
|
|
_is_piv = TRUE; _is_cod = FALSE;
|
|
_piv_row = 7; _cod_row = 2; _ind_row = 3;
|
|
_piv_col = _ind_col = 3; _cod_col = 6;
|
|
_frpos = NULL; _to_skip = nothing;
|
|
_was_match = TRUE;
|
|
}
|
|
};
|
|
|
|
TRectype& BA6100_App::look_com(const char* cod)
|
|
{
|
|
_comuni->curr().zero();
|
|
_comuni->curr().put("COM",cod);
|
|
_comuni->read();
|
|
if (_comuni->bad())
|
|
_comuni->curr().zero();
|
|
return _comuni->curr();
|
|
}
|
|
|
|
const char* BA6100_App::look_tab(const char* tabname, const char* 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 BA6100_App::preprocess_page(int counter)
|
|
{
|
|
if (_pr_type == rubriche)
|
|
{
|
|
// vale per ditte, anagiu, anafis
|
|
reset_row(3); reset_row(4);
|
|
TString com = current_cursor()->curr(LF_ANAG).get("COMRES");
|
|
if (com.empty())
|
|
com = current_cursor()->curr(LF_ANAG).get("COMRF");
|
|
TString phone = current_cursor()->curr(LF_ANAG).get("PTELRF");
|
|
phone.trim();
|
|
if (!phone.empty()) phone << '/';
|
|
phone << current_cursor()->curr(LF_ANAG).get("TELRF");
|
|
|
|
TRectype cc = look_com(com);
|
|
TString a = cc.get("DENCOM");
|
|
TString b = cc.get("CAPCOM");
|
|
TString c = cc.get("PROVCOM");
|
|
|
|
set_row(3,"@32g%-24S CAP %5S PR %2S", (const char*)a, (const char *)b,
|
|
(const char*)c);
|
|
set_row(4,"@32gTel. %-36S", (const char *)phone);
|
|
if (_pr_what == anagiu)
|
|
set_row(4,"@56g Rif @12S", FLD(LF_ANAGGIU,"PERRIF"));
|
|
}
|
|
else if (_pr_type == etichette)
|
|
preprocess_etichette();
|
|
return TRUE;
|
|
}
|
|
|
|
void BA6100_App::set_linked_print(int link)
|
|
{
|
|
if (_pr_type == elenco && link == LF_NDITTE)
|
|
{
|
|
reset_row(1);
|
|
set_row(1,"@55g@pN@5j@50S",
|
|
FLD(LF_NDITTE,"CODDITTA","@@@@"),
|
|
FLD(LF_NDITTE,"RAGSOC"));
|
|
}
|
|
else if (_pr_type == schede)
|
|
switch(link)
|
|
{
|
|
case LF_NDITTE:
|
|
set_scheda_ditta();
|
|
break;
|
|
case LF_
|
|
}
|
|
}
|
|
|
|
|
|
print_action BA6100_App::postprocess_page(int counter)
|
|
{
|
|
if (_pr_type == elenco)
|
|
{
|
|
switch(_pr_what)
|
|
{
|
|
case anafis:
|
|
case anagiu:
|
|
|
|
reset_row(1);
|
|
// resetta e stampa solo la ditta
|
|
// del caSo
|
|
if (current_cursor()->file(LF_NDITTE)->good() && _was_match)
|
|
{
|
|
return REPEAT_PAGE;
|
|
}
|
|
else
|
|
{
|
|
if (_pr_what == anafis)
|
|
set_row(1,"@pn@3j@S @S@55g@pN@S",
|
|
FLD(LF_ANAG,"CODANAGR","@@@@@"),
|
|
FLD(LF_ANAG,"RAGSOC",0,29),
|
|
FLD(LF_ANAG,"RAGSOC",30,50),
|
|
FLD(LF_NDITTE,"CODDITTA","#####"),
|
|
FLD(LF_NDITTE,"RAGSOC"));
|
|
else
|
|
set_row(1,"@pN@3j@50S@55g@pN@S",
|
|
FLD(LF_ANAG,"CODANAGR","@@@@@"),
|
|
FLD(LF_ANAG,"RAGSOC"),
|
|
FLD(LF_NDITTE,"CODDITTA","#####"),
|
|
FLD(LF_NDITTE,"RAGSOC"));
|
|
|
|
return NEXT_PAGE;
|
|
}
|
|
break;
|
|
case nditte:
|
|
break;
|
|
}
|
|
}
|
|
else if (_pr_type == schede)
|
|
{
|
|
|
|
if ((_pr_what == anagiu && _inclditte) ||
|
|
(_pr_what == anafis && _inclditte))
|
|
{
|
|
if (_to_skip != nothing)
|
|
_was_match = current_cursor()->next_match(_to_skip);
|
|
|
|
// stampata l'anagrafica deve stampare tutte le ditte, e
|
|
// per ciascuna tutte le unita' locali ecc.
|
|
if (!_more && current_cursor()->file(LF_NDITTE)->good()
|
|
&& _was_match)
|
|
{
|
|
set_scheda_ditta();
|
|
_more = TRUE;
|
|
return REPEAT_PAGE;
|
|
}
|
|
if (_more)
|
|
{
|
|
postprocess_scheda_ditta();
|
|
return REPEAT_PAGE;
|
|
}
|
|
if (!_more)
|
|
{
|
|
if (_pr_what == anafis)
|
|
set_scheda_anafis();
|
|
else
|
|
set_scheda_anagiu();
|
|
_to_skip = nothing;
|
|
_was_match = TRUE;
|
|
return NEXT_PAGE;
|
|
}
|
|
}
|
|
else if (_pr_what == nditte)
|
|
return postprocess_scheda_ditta();
|
|
}
|
|
return NEXT_PAGE;
|
|
}
|
|
|
|
print_action BA6100_App::postprocess_scheda_ditta()
|
|
{
|
|
if (current_cursor()->file(LF_ATTIV)->good() && _was_match)
|
|
{
|
|
set_scheda_attiv();
|
|
_to_skip = attiv;
|
|
return REPEAT_PAGE;
|
|
}
|
|
else if (current_cursor()->file(LF_UNLOC)->good() && _was_match)
|
|
{
|
|
set_scheda_unloc();
|
|
_to_skip = unloc;
|
|
return REPEAT_PAGE;
|
|
}
|
|
// idem per libri sociali (TBI)
|
|
else
|
|
{
|
|
set_scheda_ditta();
|
|
_was_match = current_cursor()->next_match(LF_NDITTE);
|
|
_to_skip = nothing;
|
|
_more = FALSE;
|
|
}
|
|
return NEXT_PAGE;
|
|
}
|
|
|
|
bool mask_ctrl_handler(TMask_field& mf, KEY k)
|
|
{
|
|
if (k == K_SPACE)
|
|
mf.mask().stop_run(mf.dlg());
|
|
return TRUE;
|
|
}
|
|
|
|
|
|
bool mask_reset_fields(TMask_field& mf, KEY k)
|
|
{
|
|
if (k == K_SPACE)
|
|
{
|
|
BA6100_App* a = (BA6100_App*)MainApp();
|
|
mf.mask().field(FLD_BA6B_INDROW).set(format("%d",a->_ind_row));
|
|
mf.mask().field(FLD_BA6B_INDCOL).set(format("%d",a->_ind_col));
|
|
mf.mask().field(FLD_BA6B_PIVROW).set(format("%d",a->_piv_row));
|
|
mf.mask().field(FLD_BA6B_PIVCOL).set(format("%d",a->_piv_col));
|
|
mf.mask().field(FLD_BA6B_CODROW).set(format("%d",a->_cod_row));
|
|
mf.mask().field(FLD_BA6B_CODCOL).set(format("%d",a->_cod_col));
|
|
mf.mask().field(FLD_BA6B_TOTROW).set(format("%d",a->_rows_et));
|
|
mf.mask().field(FLD_BA6B_TOTCOL).set(format("%d",a->_cols_et));
|
|
mf.mask().field(CHK_BA6B_PIVA).set(a->_is_piv ? "X" : " ");
|
|
mf.mask().field(CHK_BA6B_CODICE).set(a->_is_cod ?"X": " ");
|
|
}
|
|
return TRUE;
|
|
}
|
|
|
|
// le quattro che seguono vengono chiamate se necessario ad ogni
|
|
// pagina stampata
|
|
|
|
void BA6100_App::set_scheda_anagiu()
|
|
{
|
|
reset_print();
|
|
set_row(1,"SCHEDA SOCIETA'");
|
|
set_row(2,"");
|
|
set_row(3,"@bCodice@r@15g@u@pn@25g@r@bRag.Sociale @r@u@50s",
|
|
FLD(LF_ANAG,"CODANAGR","@@@@@"),
|
|
FLD(LF_ANAG,"RAGSOC"));
|
|
set_row(4,"@25g@bEvent. sigla@r@40g@u@20s",
|
|
FLD(LF_ANAGGIU,"SIGLA"));
|
|
set_row(5,"Oggetto soc.@15g@60s",
|
|
FLD(LF_ANAGGIU,"OGGSOC"));
|
|
set_row(6,"Codice Fiscale@20g@16s@46gPartita IVA @12s",
|
|
FLD(LF_ANAG,"COFI"),
|
|
FLD(LF_ANAG,"PAIV"));
|
|
set_row(7,"Riferimento@15g@20s", FLD(LF_ANAGGIU,"PERRIF"));
|
|
set_row(8,"");
|
|
|
|
set_row(9,"Sede legale@20gIndirizzo @35s",
|
|
FLD(LF_ANAG,"INDRES"));
|
|
TString com = current_cursor()->curr(LF_ANAG).get("COMRES");
|
|
TRectype& cc = look_com(com);
|
|
TString a = cc.get("DENCOM");
|
|
TString b = cc.get("CAPCOM");
|
|
TString c = cc.get("PROVCOM");
|
|
set_row(10,"@20gComune %-24s@53gProvincia %2s@68gCAP %5s",
|
|
(const char*)a,
|
|
(const char*)c,
|
|
(const char*)b
|
|
);
|
|
set_row(11,"@20gTelefono @u@10s@r/@u@30s@r",
|
|
FLD(LF_ANAG,"PTELRF"),
|
|
FLD(LF_ANAG,"TELRF"));
|
|
set_row(12,"");
|
|
|
|
set_row(13,"Domicilio fiscale@20gIndirizzo @35s",
|
|
FLD(LF_ANAG,"INDRF"));
|
|
com = current_cursor()->curr(LF_ANAG).get("COMRF");
|
|
cc = look_com(com);
|
|
a = cc.get("DENCOM");
|
|
b = cc.get("CAPCOM");
|
|
c = cc.get("PROVCOM");
|
|
set_row(14,"@20gComune %-24s@53gProvincia %2s@68gCAP %5s",
|
|
(const char*)a,
|
|
(const char*)c,
|
|
(const char*)b
|
|
);
|
|
|
|
set_row(15,"");
|
|
set_row(16,"Corrispondenza@20gIndirizzo @35s",
|
|
FLD(LF_ANAG,"INDCORR"));
|
|
|
|
com = current_cursor()->curr(LF_ANAG).get("COMCORR");
|
|
cc = look_com(com);
|
|
a = cc.get("DENCOM");
|
|
b = cc.get("CAPCOM");
|
|
c = cc.get("PROVCOM");
|
|
|
|
set_row(17,"@20gComune %-24s@53gProvincia %2s@68gCAP %5s",
|
|
(const char*)a,
|
|
(const char*)c,
|
|
(const char*)b
|
|
);
|
|
|
|
com = current_cursor()->curr(LF_ANAG).get("STATOCORR");
|
|
if (com.empty())
|
|
a = "Italia";
|
|
else { a = look_tab("%STA",com,"S0"); }
|
|
|
|
set_row(18,"@20gStato %s",(const char*)a);
|
|
set_row(19,"");
|
|
set_row(20,"Telex@20g@u@10s@r/@u@30s@r",
|
|
FLD(LF_ANAG,"PTLEXRF"),
|
|
FLD(LF_ANAG,"TLEXRFX"));
|
|
set_row(21,"Telefax@20g@u@10s@r/@u@30s@r",
|
|
FLD(LF_ANAG,"PFAXRF"),
|
|
FLD(LF_ANAG,"FAXRF"));
|
|
set_row(22,"");
|
|
set_row(23,"Ufficio imposte@20gNumero @pn",
|
|
FLD(LF_ANAG,"UFFIIDD","@@@"));
|
|
|
|
com = current_cursor()->curr(LF_ANAG).get("UFFIIDD");
|
|
a = look_tab("%UID",com,"S6");
|
|
c = look_tab("%UID",com,"S4");
|
|
cc = look_com(a);
|
|
a = cc.get("DENCOM");
|
|
b = cc.get("PROVCOM");
|
|
|
|
set_row(24,"@20gComune %-24s@53gProvincia %2s",
|
|
(const char*)a,
|
|
(const char*)b);
|
|
set_row(25,"");
|
|
set_row(26,"Esattoria@20gC/C n. %-20s",(const char*)c);
|
|
set_row(27,"@20gComune %-24s@53gProvincia %2s",
|
|
(const char*)a,
|
|
(const char*)b);
|
|
set_row(28,"@20gCodice contribuente @10s",
|
|
FLD(LF_ANAG,"CODCONTR"));
|
|
set_row(29,""); set_row(30,"");
|
|
|
|
// dati atto costitutivo etc
|
|
set_row(31,"Dati atto costitutivo e statuto"); set_row(32,"");
|
|
set_row(33,"Estremi@20g@60s", FLD(LF_ANAGGIU,"ESTROMOL"));
|
|
set_row(34,"Omologa@25g@ld@41gData iscrizione@70g@ld",
|
|
FLD(LF_ANAGGIU,"DATAOMOL"),
|
|
FLD(LF_ANAGGIU,"DATAISCRIZ"));
|
|
set_row(35,"Data costituzione@25g@ld@41gDurata sino@70g@ld",
|
|
FLD(LF_ANAGGIU,"DATACOST"),
|
|
FLD(LF_ANAGGIU,"DATASCAD"));
|
|
set_row(36,"Termine appr. bilancio@25g@d@41gApprovazione bilancio@70g@d",
|
|
FLD(LF_ANAGGIU,"DATATAPPBI"),
|
|
FLD(LF_ANAGGIU,"DATAAPPBIL"));
|
|
set_row(37,"Scad.org.amministrativo@25g@d@41gScadenza collegio "
|
|
"sindacale@70g@d",
|
|
FLD(LF_ANAGGIU,"DATASORAMM"),
|
|
FLD(LF_ANAGGIU,"DATASCSIND"));
|
|
// set_row(38,"Fine esercizio@25g@d", FLD(LF_ANAGGIU,"???"));
|
|
set_row(39,"");
|
|
set_row(40,"@5gCapit.sociale@24gCapit.versato@47g"
|
|
"Fatturato@65gN.azioni@74gValore");
|
|
set_row(41,"@pn @pn @pn @61g@n @pn",
|
|
FLD(LF_ANAGGIU,"CAPSOC","###.###.###.###.###"),
|
|
FLD(LF_ANAGGIU,"CAPVER","###.###.###.###.###"),
|
|
FLD(LF_ANAGGIU,"FATT","###.###.###.###.###"),
|
|
FLD(LF_ANAGGIU,"NAZIONI"),
|
|
FLD(LF_ANAGGIU,"VALNOM","###.###.###.###"));
|
|
set_row(42,"");
|
|
|
|
set_row(43,"Dati Statistici@20gNon residente@61g@f",
|
|
FLD(LF_ANAG,"SOGGNRES"));
|
|
set_row(44,"@20gEventi naturali eccezionali@61g@s",
|
|
FLD(LF_ANAG,"EVECC"));
|
|
set_row(45,"@20gResidente in zone terremotate@61g@f",
|
|
FLD(LF_ANAG,"RESZTERR"));
|
|
// *TBI* traduzione natura giuridica
|
|
set_row(46,"@20gNatura giuridica@61g@s",
|
|
FLD(LF_ANAGGIU,"NATGIU"));
|
|
set_row(47,"@20gStato societa'@51g@20,rt",
|
|
FLD(LF_ANAGGIU,"STATOSOC"));
|
|
set_row(48,"@20gSituazione societa'@51g@20,rt",
|
|
FLD(LF_ANAGGIU,"SITSOC"));
|
|
|
|
set_row(49,"");
|
|
a = look_tab("%SST",current_cursor()->curr(LF_ANAG).get("CODSTAT1"),"S0");
|
|
set_row(50,"@20gSigla stat.1 @pn %-50s",
|
|
FLD(LF_ANAG,"CODSTAT1","@@@@@@@"), (const char*)a);
|
|
a = look_tab("%SST",current_cursor()->curr(LF_ANAG).get("CODSTAT2"),"S0");
|
|
set_row(51,"@20gSigla stat.2 @pn %-50s",
|
|
FLD(LF_ANAG,"CODSTAT2","@@@@@@@"), (const char*)a);
|
|
a = look_tab("%SST",current_cursor()->curr(LF_ANAG).get("CODSTAT3"),"S0");
|
|
set_row(52,"@20gSigla stat.3 @pn %-50s",
|
|
FLD(LF_ANAG,"CODSTAT3","@@@@@@@"), (const char*)a);
|
|
|
|
// NOTE
|
|
set_row(53,"");
|
|
set_row(54,"Note attivato storico");
|
|
set_row(55,"@6g@70s",FLD(LF_ANAGGIU,"NOTE1"));
|
|
set_row(56,"@6g@70s",FLD(LF_ANAGGIU,"NOTE2"));
|
|
set_row(57,"@6g@70s",FLD(LF_ANAGGIU,"NOTE3"));
|
|
set_row(58,"@6g@70s",FLD(LF_ANAGGIU,"NOTE4"));
|
|
set_row(59,"@6g@70s",FLD(LF_ANAGGIU,"NOTE5"));
|
|
|
|
for (int i = 60; i <= printer().formlen(); i++)
|
|
set_row(i, "");
|
|
}
|
|
|
|
void BA6100_App::set_scheda_anafis()
|
|
{
|
|
reset_print();
|
|
set_row(1,"SCHEDA PERSONA FISICA");
|
|
set_row(2,"");
|
|
set_row(3,"@bCodice @r@u@pn@20g@r@bCognome @r@u@S",
|
|
FLD(LF_ANAG,"CODANAGR","@@@@@"),
|
|
FLD(LF_ANAG,"RAGSOC",0,29));
|
|
set_row(4,"@20g@bNome @r@u@s",
|
|
FLD(LF_ANAG,"RAGSOC",30,50));
|
|
set_row(5,"");
|
|
set_row(6,"Codice Fiscale@20g@s@46gPartita IVA @s",
|
|
FLD(LF_ANAG,"COFI"),
|
|
FLD(LF_ANAG,"PAIV"));
|
|
set_row(7,"Data di nascita@20g@ld@32g@t@46gNazionalita' @s",
|
|
FLD(LF_ANAGFIS,"DATANASC"),
|
|
FLD(LF_ANAGFIS,"SESSO"),
|
|
FLD(LF_ANAGFIS,"NAZION"));
|
|
set_row(8,"");
|
|
set_row(9,"Residenza@20gIndirizzo @s",
|
|
FLD(LF_ANAG,"INDRES"));
|
|
|
|
TString com = current_cursor()->curr(LF_ANAG).get("COMRES");
|
|
TRectype& cc = look_com(com);
|
|
TString a = cc.get("DENCOM");
|
|
TString b = cc.get("CAPCOM");
|
|
TString c = cc.get("PROVCOM");
|
|
|
|
set_row(10,"@20gComune %s@53gProvincia %s@68gCAP %s",
|
|
(const char*)a,
|
|
(const char*)c,
|
|
(const char*)b
|
|
);
|
|
|
|
set_row(11,"@20gTelefono @u@s@r/@u@s@r",
|
|
FLD(LF_ANAG,"PTELRF"),
|
|
FLD(LF_ANAG,"TELRF"));
|
|
set_row(12,"");
|
|
set_row(13,"Domicilio fiscale@20gIndirizzo @s",
|
|
FLD(LF_ANAG,"INDRF"));
|
|
|
|
com = current_cursor()->curr(LF_ANAG).get("COMRF");
|
|
cc = look_com(com);
|
|
a = cc.get("DENCOM");
|
|
b = cc.get("CAPCOM");
|
|
c = cc.get("PROVCOM");
|
|
|
|
set_row(14,"@20gComune %s@53gProvincia %s@68gCAP %s",
|
|
(const char*)a,
|
|
(const char*)c,
|
|
(const char*)b
|
|
);
|
|
|
|
set_row(15,"");
|
|
set_row(16,"Corrispondenza@20gIndirizzo @s",
|
|
FLD(LF_ANAG,"INDCORR"));
|
|
|
|
com = current_cursor()->curr(LF_ANAG).get("COMCORR");
|
|
cc = look_com(com);
|
|
a = cc.get("DENCOM");
|
|
b = cc.get("CAPCOM");
|
|
c = cc.get("PROVCOM");
|
|
|
|
set_row(17,"@20gComune %s@53gProvincia %s@68gCAP %s",
|
|
(const char*)a,
|
|
(const char*)c,
|
|
(const char*)b
|
|
);
|
|
|
|
com = current_cursor()->curr(LF_ANAG).get("STATOCORR");
|
|
if (com.empty())
|
|
a = "Italia";
|
|
else { a = look_tab("%STA",com,"S0"); }
|
|
|
|
set_row(18,"@20gStato %s",(const char*)a);
|
|
set_row(19,"");
|
|
set_row(20,"Telex@20g@u@s@r/@u@s@r",
|
|
FLD(LF_ANAG,"PTLEXRF"),
|
|
FLD(LF_ANAG,"TLEXRFX"));
|
|
set_row(21,"Telefax@20g@u@s@r/@u@s@r",
|
|
FLD(LF_ANAG,"PFAXRF"),
|
|
FLD(LF_ANAG,"FAXRF"));
|
|
set_row(22,"");
|
|
set_row(23,"Ufficio imposte@20gNumero @pn",
|
|
FLD(LF_ANAG,"UFFIIDD","@@@"));
|
|
|
|
com = current_cursor()->curr(LF_ANAG).get("UFFIIDD");
|
|
a = look_tab("%UID",com,"S6");
|
|
c = look_tab("%UID",com,"S4");
|
|
cc = look_com(a);
|
|
a = cc.get("DENCOM");
|
|
b = cc.get("PROVCOM");
|
|
|
|
set_row(24,"@20gComune %s@53gProvincia %s",
|
|
(const char*)a,
|
|
(const char*)b);
|
|
set_row(25,"");
|
|
set_row(26,"Esattoria@20gC/C n. %s",(const char*)c);
|
|
set_row(27,"@20gComune %s@53gProvincia %s",
|
|
(const char*)a,
|
|
(const char*)b);
|
|
set_row(28,"@20gCodice contribuente @s",
|
|
FLD(LF_ANAG,"CODCONTR"));
|
|
set_row(29,"");
|
|
|
|
// cerca coniuge
|
|
com = current_cursor()->curr(LF_ANAGFIS).get("CODCONIUGE");
|
|
TLocalisamfile* af = current_cursor()->file(LF_ANAG);
|
|
TRecnotype last = af->recno();
|
|
af->curr().zero();
|
|
int k = af->getkey();
|
|
af->setkey(1);
|
|
af->curr().put("CODANAGR",com);
|
|
|
|
a = af->curr().get("RAGSOC");
|
|
b = a.sub(25); a = a.left(25);
|
|
set_row(30,"Coniuge @pn@20gCognome %s",
|
|
FLD(LF_ANAGFIS,"CODCONIUGE","@@@@@"),
|
|
(const char*)a);
|
|
set_row(31,"@20gNome %s", (const char*)b);
|
|
|
|
af->setkey(k);
|
|
af->readat(last);
|
|
|
|
set_row(32,"Dati Statistici@20gNon residente@61g@f",
|
|
FLD(LF_ANAG,"SOGGNRES"));
|
|
set_row(33,"@20gEventi naturali eccezionali@61g@s",
|
|
FLD(LF_ANAG,"EVECC"));
|
|
set_row(34,"@20gResidente in zone terremotate@61g@f",
|
|
FLD(LF_ANAG,"RESZTERR"));
|
|
set_row(35,"@20gStato civile@61g@t",
|
|
FLD(LF_ANAGFIS,"STATCIV"));
|
|
set_row(36,"@20gData variazione stato civile@56g@d",
|
|
FLD(LF_ANAGFIS,"DVARSCIV"));
|
|
set_row(37,"@20gTitolo di studio@61g@t",
|
|
FLD(LF_ANAGFIS,"TITSTU"));
|
|
// set_row(37,"@20gProvincia lavoro dipendente@61g@s");
|
|
set_row(38,""); set_row(39,""); set_row(40,""); set_row(41,"");
|
|
|
|
a = look_tab("%SST",
|
|
current_cursor()->curr(LF_ANAG).get("CODSTAT1"),"S0");
|
|
set_row(42,"@20gSigla stat.1 @pn %s",
|
|
FLD(LF_ANAG,"CODSTAT1","@@@@@@@"), (const char*)a);
|
|
a = look_tab("%SST",current_cursor()->curr(LF_ANAG).get("CODSTAT2"),"S0");
|
|
set_row(43,"@20gSigla stat.2 @pn ",
|
|
FLD(LF_ANAG,"CODSTAT2","@@@@@@@"), (const char*)a);
|
|
a = look_tab("%SST",current_cursor()->curr(LF_ANAG).get("CODSTAT3"),"S0");
|
|
set_row(44,"@20gSigla stat.3 @pn ",
|
|
FLD(LF_ANAG,"CODSTAT3","@@@@@@@"), (const char*)a);
|
|
|
|
for (int i = 45; i <= printer().formlen(); i++)
|
|
set_row(i, "");
|
|
}
|
|
|
|
void BA6100_App::set_scheda_ditta()
|
|
{
|
|
reset_print();
|
|
set_row(1,"@bSCHEDA DITTA @r@u@pn@r@20g@bDenominaz. sociale @r@u@s",
|
|
FLD(LF_NDITTE,"CODDITTA","@@@@@"),
|
|
FLD(LF_NDITTE,"RAGSOC"));
|
|
set_row(2,"Albo artigiani@20gIscrizione all'albo @f@55gnum. @s",
|
|
FLD(LF_NDITTE,"ARTIG"),
|
|
FLD(LF_NDITTE,"NISCRAA"));
|
|
TString a =
|
|
look_com(current_cursor()->curr(LF_NDITTE).get("COMAA")).get("DENCOM");
|
|
set_row(3,"@20gLocalita' %s@55gData @d",
|
|
(const char*)a,
|
|
FLD(LF_NDITTE,"DATAISCRAA"));
|
|
set_row(4,"Attivita'");
|
|
set_row(5,"prevalente@20gCod. @pn Desc. %s",
|
|
FLD(LF_NDITTE,"CODATTPREV","@@@@@"),
|
|
look_tab("%AIS",current_cursor()->curr(LF_NDITTE).get("CODATTPREV"),
|
|
"S0"));
|
|
// set_row(6,"@20gGestione piu' attivita'");
|
|
set_row(6,"@20gFrequenza versamenti@54g@t",
|
|
FLD(LF_NDITTE,"FREQVIVA"));
|
|
set_row(7,"@20gTenuta contabilita' ordinaria@54g@f",
|
|
FLD(LF_NDITTE,"CONTORD"));
|
|
set_row(8,"@20gDatore di lavoro@54g@t",
|
|
FLD(LF_NDITTE,"DATLAV"));
|
|
set_row(9,"@20gData inizio attivita'@54g@d",
|
|
FLD(LF_NDITTE,"DINIZIOATT"));
|
|
set_row(10,"Altri dati@20gRiferimento @u@s@r @55gTel. @u@s@r/@u@s@r",
|
|
FLD(LF_NDITTE,"PERRIF"),
|
|
FLD(LF_NDITTE,"PTEL"),
|
|
FLD(LF_NDITTE,"TEL"));
|
|
set_row(11,"@20gGestione magazzino @f",
|
|
FLD(LF_NDITTE,"REGMAG"));
|
|
set_row(12,"@20gNumero unita' locali @n@55gNum.enasarco @s",
|
|
FLD(LF_NDITTE,"NULC"),
|
|
FLD(LF_NDITTE,"NENASARCO"));
|
|
set_row(13,"");
|
|
/* TBI: banca di appoggio */
|
|
set_row(14,"Stato@20g@t",FLD(LF_NDITTE,"STATOSOC"));
|
|
set_row(15,""); set_row(16,"");
|
|
}
|
|
|
|
void BA6100_App::set_scheda_attiv()
|
|
{
|
|
reset_print();
|
|
set_row(1,"@bATTIVITA'@r @pn@20g@bDescrizione:@r %s",
|
|
FLD(LF_ATTIV,"CODATT","@@@@@"),
|
|
look_tab("%AIS",current_cursor()->curr(LF_ATTIV).get("CODATT"),
|
|
"S0"));
|
|
set_row(2,"@20gRegime agricolo@67g@f",
|
|
FLD(LF_ATTIV,"REGAGR"));
|
|
set_row(3,"@20gRegime speciale agenzie di viaggio (art.74ter)@67g@f",
|
|
FLD(LF_ATTIV,"REG74TER"));
|
|
set_row(4,"@20gAttivita' stagionale@67g@f",
|
|
FLD(LF_ATTIV,"ATTSTAG"));
|
|
set_row(5,"@20gAttivita' esercitata in piu' luoghi@67g@f",
|
|
FLD(LF_ATTIV,"ESLUOGHID"));
|
|
set_row(6,"@20gData inizio attivita'@60g@d",
|
|
FLD(LF_NDITTE,"DINIZIOATT"));
|
|
set_row(7,"@20gData variazione attivita'@60g@d",
|
|
FLD(LF_ATTIV,"DATAVARIVA"));
|
|
set_row(8,"@20gData cessazione attivita'@60g@d",
|
|
FLD(LF_ATTIV,"DCESSATT"));
|
|
set_row(9,"@20g@bCONSERVAZIONE SCRITTURE CONTABILI@r");
|
|
|
|
// cerca depositario
|
|
TString com = get_field(LF_ATTIV,"CODANGRDS");
|
|
TString a = get_field(LF_ATTIV,"TIPOADS");
|
|
TLocalisamfile* af = current_cursor()->file(LF_ANAG);
|
|
TRecnotype last = af->recno();
|
|
af->curr().zero();
|
|
int k = af->getkey();
|
|
af->setkey(1);
|
|
af->curr().put("CODANAGR",com);
|
|
af->curr().put("TIPOA",a);
|
|
|
|
TString b = af->curr().get("RAGSOC");
|
|
com = af->curr().get("INDRF");
|
|
if (com.empty()) com = af->curr().get("INDRES");
|
|
TString c = af->curr().get("COMRF");
|
|
if (c.empty) c = af->curr().get("COMRES");
|
|
TRectype& cm = look_com(a);
|
|
af->readat(last);
|
|
af->setkey(k);
|
|
|
|
set_row(10,"Depositario@20gCodice @pn (%s): %s",
|
|
FLD(LF_ATTIV,"CODANGRDS"),
|
|
c == 'F' ? "p.f." : "p.g.",
|
|
(const char*)b);
|
|
set_row(11,"@20gIndirizzo %s", (const char*)c);
|
|
a = cm.get("DENCOM"); b = cm.get("PROVCOM"); c = cm.get("CAPCOM");
|
|
set_row(12,"@20gComune %s@53gProvincia %s@68gC.a.p. %s",
|
|
(const char*)a, (const char*)b, (const char*)c);
|
|
set_row(13,"@20gTenuta scritture parziali@68g@f",
|
|
FLD(LF_ATTIV,"TSCRPARZ"));
|
|
set_row(14,"Luogo@20gIndirizzo @s @s",
|
|
FLD(LF_ATTIV,"INDCS"),
|
|
FLD(LF_ATTIV,"CAPCS"));
|
|
cm = look_com(get_field(LF_ATTIV,"COMCS"));
|
|
set_row(15,"@20gComune %s@53gProvincia %s@68gC.a.p. %s");
|
|
set_row(16,"@20gTelefono ");
|
|
set_row(17,""); set_row(18,"");
|
|
}
|
|
|
|
void BA6100_App::set_scheda_registro()
|
|
{
|
|
reset_print();
|
|
/* TBI */
|
|
}
|
|
|
|
void BA6100_App::set_scheda_unloc()
|
|
{
|
|
reset_print();
|
|
set_row(1,"@bUNITA' LOCALE@20gCodice @r@u@pn@r",
|
|
FLD(LF_UNLOC,"CODULC","@@@"));
|
|
set_row(2,"@20g@bIndirizzo@r@u@s@r@68g@bNumero @r@u@@s@",
|
|
FLD(LF_UNLOC,"INDULC"),
|
|
FLD(LF_UNLOC,"CIVULC"));
|
|
TRectype& cc = look_com(get_field(LF_UNLOC,"COMULC"));
|
|
TString a = cc.get("DENCOM");
|
|
TString b = cc.get("PROVCOM");
|
|
TString c = cc.get("CAPCOM");
|
|
set_row(3,"@20g@bComune@r@4j@u%s@r@53g@bProvincia@r @u%s@r@68g@b"
|
|
"C.a.p.@r @u%s",
|
|
(const char*)a, (const char*)b, (const char*)c);
|
|
set_row(4,"");
|
|
set_row(5,"C.C.I.A.A.@20gNumero@30g@pn",
|
|
FLD(LF_UNLOC,"NUMCCIAA","@@@@@@@"));
|
|
cc = look_com(get_field(LF_UNLOC,"COMCCIAA"));
|
|
a = cc.get("DENCOM");
|
|
set_row(6,"@20gComune@30g%s@53gN. Meccanografico @n",
|
|
(const char*)a,
|
|
FLD(LF_UNLOC,"NUMMECC"));
|
|
set_row(7,"@20gData iscrizione @d@48gData ultima variazione @d",
|
|
FLD(LF_UNLOC,"DATAICCIAA"),
|
|
FLD(LF_UNLOC,"DATAVCCIAA"));
|
|
set_row(8,"");
|
|
set_row(9,"Autorizzazioni@20gN. R.E.C. @30g@pn@41gComunale n. @pn "
|
|
"PS n. @pn Altre @s",
|
|
FLD(LF_UNLOC,"NUMREC","@@@@@@@"),
|
|
FLD(LF_UNLOC,"AUTCOM","@@@@@"),
|
|
FLD(LF_UNLOC,"AUTPS","@@@@@@@"),
|
|
FLD(LF_UNLOC,"ALTAUT"));
|
|
set_row(10,"");
|
|
set_row(11,"Posizioni@20gINPS n.@30g@s INAIL n. @s",
|
|
FLD(LF_UNLOC,"POSINPS"),
|
|
FLD(LF_UNLOC,"POSINAIL"));
|
|
set_row(12,"");
|
|
set_row(13,"Tribunale@20gRegistro@30g@pn@44gVolume@52g@pn@64Fascicolo @pn",
|
|
FLD(LF_UNLOC,"REGTRIB","@@@@@@@@@"),
|
|
FLD(LF_UNLOC,"VOLTRIB","@@@@@@@"),
|
|
FLD(LF_UNLOC,"FASCTRIB","@@@@@"));
|
|
set_row(14,"");
|
|
set_row(15,"Locali destinati");
|
|
set_row(16,"all'attivita'@20gMq.Locali @pn Di cui a magazzino @pn",
|
|
FLD(LF_UNLOC,"MQULC","@@@@@"),
|
|
FLD(LF_UNLOC,"MQULCMAG","@@@@@"));
|
|
set_row(17,""); set_row(18,"");
|
|
}
|
|
|
|
void BA6100_App::preprocess_etichette()
|
|
{
|
|
int namerow = 0;
|
|
TString cod, cofi, name, surname, address, cap, prov, com, civ, stato;
|
|
|
|
// everything goes into strings
|
|
name = get_field(LF_ANAG,"RAGSOC");
|
|
cod = get_field(LF_ANAG,"CODANAGR");
|
|
cofi = get_field(LF_ANAG,"COFI");
|
|
TRectype& cc = look_com(get_field(LF_ANAG,"COMCORR"));
|
|
if (cofi.empty())
|
|
cofi = get_field(LF_ANAG,"PAIV");
|
|
|
|
if (_pr_what == anafis)
|
|
{
|
|
surname = name.mid(30,50); surname.trim();
|
|
name = name.mid(0,30); name.trim();
|
|
}
|
|
switch (_ind_what)
|
|
{
|
|
case corrispondenza:
|
|
address = get_field(LF_ANAG,"INDCORR");
|
|
civ = get_field(LF_ANAG,"CIVCORR");
|
|
stato = look_tab("%STA",get_field(LF_ANAG,"STATOCORR"));
|
|
cap = get_field(LF_ANAG,"CAPCORR");
|
|
com = cc.get("DENCOM");
|
|
prov = cc.get("PROVCOM");
|
|
if (cap.empty())
|
|
cap = cc.get("CAPCOM");
|
|
if (!address.empty())
|
|
break;
|
|
// else fall down
|
|
case domfisc:
|
|
address = get_field(LF_ANAG,"INDRF");
|
|
civ = get_field(LF_ANAG,"CIVRF");
|
|
stato = look_tab("%STA",get_field(LF_ANAG,"STATORF"));
|
|
cap = get_field(LF_ANAG,"CAPRF");
|
|
cc = look_com(get_field(LF_ANAG,"COMRF"));
|
|
com = cc.get("DENCOM");
|
|
prov = cc.get("PROVCOM");
|
|
if (cap.empty())
|
|
cap = cc.get("CAPCOM");
|
|
if (!address.empty())
|
|
break;
|
|
// else fall down
|
|
case residenza:
|
|
address = get_field(LF_ANAG,"INDRES");
|
|
civ = get_field(LF_ANAG,"CIVRES");
|
|
stato = look_tab("%STA",get_field(LF_ANAG,"STATORES"));
|
|
cap = get_field(LF_ANAG,"CAPRES");
|
|
cc = look_com(get_field(LF_ANAG,"COMRES"));
|
|
com = cc.get("DENCOM");
|
|
prov = cc.get("PROVCOM");
|
|
if (cap.empty())
|
|
cap = cc.get("CAPCOM");
|
|
break;
|
|
}
|
|
|
|
if (_is_piv)
|
|
{
|
|
reset_row(_piv_row);
|
|
set_row(_piv_row, TString(format("@%dg%%s", _piv_col)),
|
|
(const char*)cofi);
|
|
_frpos[_piv_row - 1] = TRUE;
|
|
}
|
|
if (_is_cod)
|
|
{
|
|
reset_row(_cod_row);
|
|
set_row(_cod_row, TString(format("@%dg%%s", _cod_col)),
|
|
(const char*)cod);
|
|
_frpos[_cod_row - 1] = TRUE;
|
|
}
|
|
|
|
// name goes in first free row
|
|
for (int i = 0; i < _rows_et; i++)
|
|
{
|
|
if (!_frpos[i])
|
|
{ if (namerow == 0) namerow = i; }
|
|
}
|
|
|
|
namerow++; reset_row(namerow);
|
|
|
|
if (_pr_what == anagiu)
|
|
{
|
|
reset_row (namerow);
|
|
set_row(namerow,TString(format("@%dg%%s",_ind_col)),
|
|
(const char*)name);
|
|
}
|
|
else
|
|
{
|
|
reset_row(namerow);
|
|
set_row(namerow,TString(format("@%dg%%s %%s %%s",_ind_col)),
|
|
get_field(LF_ANAGFIS,"SESSO") == "M" ? "Sig." : "Sig.ra",
|
|
(const char*)name,
|
|
(const char*)surname);
|
|
}
|
|
|
|
reset_row(_ind_row); reset_row(_ind_row+1);
|
|
|
|
set_row(_ind_row,TString(format("@%dg%%s %%s", _ind_col)),
|
|
(const char*)address,
|
|
(const char*)civ);
|
|
set_row(_ind_row+1, TString(format("@%dg%%s %%s %%s", _ind_col)),
|
|
(const char*)cap,
|
|
(const char*)com,
|
|
(const char*)prov);
|
|
|
|
if (!stato.empty())
|
|
{
|
|
// print state on first free row
|
|
for (i = _ind_row+1; i < _rows_et; i++)
|
|
if (!_frpos[i] && i != (namerow - 1))
|
|
{
|
|
reset_row(i+1);
|
|
set_row(i+1, TString(format("@%dg%%s", _ind_col)),
|
|
(const char*)stato);
|
|
}
|
|
}
|
|
}
|
|
|
|
// set invariant printrows
|
|
|
|
void BA6100_App::set_rows()
|
|
{
|
|
TString sep(132);
|
|
sep.fill('-');
|
|
reset_print();
|
|
reset_header();
|
|
if (_pr_type == elenco)
|
|
{
|
|
switch(_pr_what)
|
|
{
|
|
case anafis:
|
|
case anagiu:
|
|
set_header(1,"ELENCO PERSONE %s@82gStudio@96gData"
|
|
"@101g @< @110g Pag. @#", _pr_what == anafis ? "FISICHE" :
|
|
"GIURIDICHE");
|
|
set_header(2,(const char*)sep);
|
|
set_header(3,"Codice@57gCodice");
|
|
set_header(4,"Anagr. Ragione sociale/cognome e nome@57gDitta"
|
|
"@66gDenominazione sociale");
|
|
set_header(5,(const char*)sep);
|
|
set_header(6,"");
|
|
select_cursor(_pr_what == anafis ? cfis() : cgiu());
|
|
if (_pr_what == anafis)
|
|
set_row(1,"@pN@4j@S @S@55g@pN@S",
|
|
FLD(LF_ANAG,"CODANAGR","@@@@@"),
|
|
FLD(LF_ANAG,"RAGSOC",0,29),
|
|
FLD(LF_ANAG,"RAGSOC",30,50),
|
|
FLD(LF_NDITTE,"CODDITTA","#####"),
|
|
FLD(LF_NDITTE,"RAGSOC"));
|
|
else
|
|
set_row(1,"@pN@4j@50S@55g@pN@S",
|
|
FLD(LF_ANAG,"CODANAGR","@@@@@"),
|
|
FLD(LF_ANAG,"RAGSOC"),
|
|
FLD(LF_NDITTE,"CODDITTA","#####"),
|
|
FLD(LF_NDITTE,"RAGSOC"));
|
|
break;
|
|
case nditte:
|
|
set_header(1,"ELENCO DITTE@82gStudio@96gData"
|
|
"@101g @< @110 @#");
|
|
set_header(2,(const char*)sep);
|
|
set_header(3,"Codice@50gT");
|
|
set_header(4,"Anagr. Denominazione sociale@50gP Codice"
|
|
"@61gRagione sociale/Cognome e nome");
|
|
set_header(5,(const char*)sep);
|
|
set_header(6,"");
|
|
select_cursor(cdit());
|
|
set_row(1,"@pN@10g@S@50g@S@ @pN@3j@S",
|
|
FLD(LF_NDITTE,"CODDITTA","@@@@"),
|
|
FLD(LF_NDITTE,"RAGSOC"),
|
|
FLD(LF_NDITTE,"TIPOA"),
|
|
FLD(LF_ANAG, "CODANAGR", "@@@@@"),
|
|
FLD(LF_ANAG, "RAGSOC"));
|
|
break;
|
|
}
|
|
set_row(2,"");
|
|
}
|
|
else if (_pr_type == rubriche)
|
|
{
|
|
switch (_pr_what)
|
|
{
|
|
case anafis:
|
|
case anagiu:
|
|
set_header(1,"RUBRICA PERSONE %s@40gStudio@53gData @< pag. @#",
|
|
_pr_what == anagiu ? "GIURIDICHE" : "FISICHE");
|
|
set_header(2,(const char*)sep);
|
|
set_header(3,"Codice Cognome e nome");
|
|
set_header(4,(const char*)sep);
|
|
set_header(5,"");
|
|
select_cursor(_pr_what == anafis ? cfis() : cgiu());
|
|
if (_pr_what == anafis)
|
|
set_row(1,"@b@pN@r@3j@S @S",
|
|
FLD(LF_ANAG,"CODANAGR","@@@@@"),
|
|
FLD(LF_ANAG,"RAGSOC",0,29),
|
|
FLD(LF_ANAG,"RAGSOC",30,50));
|
|
else
|
|
set_row(1,"@b@pN@r@4j@50S",
|
|
FLD(LF_ANAG,"CODANAGR","@@@@@"),
|
|
FLD(LF_ANAG,"RAGSOC"));
|
|
set_row(2,"@32g@35S", FLD(LF_ANAG,"INDRES"));
|
|
// 3 and 4 are page-dependent
|
|
break;
|
|
case nditte:
|
|
set_header(1,"RUBRICA DITTE@40gStudio@53gData @< pag. @#");
|
|
set_header(2,(const char*)sep);
|
|
set_header(3,"Codice Cognome e nome");
|
|
set_header(4,(const char*)sep);
|
|
set_header(5,"");
|
|
select_cursor(cdit());
|
|
set_row(1,"@b@pN@r@3j@50S",
|
|
FLD(LF_NDITTE,"CODDITTA","@@@@@"),
|
|
FLD(LF_NDITTE,"RAGSOC"));
|
|
set_row(2,"@32g@s", FLD(LF_ANAG,"INDRES"));
|
|
// 3 and 4 are page-dependent
|
|
set_row(3,""); set_row(4,"");
|
|
break;
|
|
}
|
|
set_row(5,"");
|
|
}
|
|
else if (_pr_type == schede)
|
|
{
|
|
switch(_pr_what)
|
|
{
|
|
case anafis:
|
|
select_cursor(cfis());
|
|
set_scheda_anafis();
|
|
break;
|
|
case anagiu:
|
|
select_cursor(cgiu());
|
|
set_scheda_anagiu();
|
|
break;
|
|
case nditte:
|
|
select_cursor(cdit());
|
|
set_scheda_ditta();
|
|
break;
|
|
}
|
|
}
|
|
else if (_pr_type == etichette)
|
|
{
|
|
select_cursor(_pr_what == anafis ? cfis() : cgiu());
|
|
for (int i = 2; i <= _rows_et; i++)
|
|
set_row(i, "");
|
|
}
|
|
}
|
|
|
|
bool BA6100_App::set_print()
|
|
{
|
|
TMask mask("ba6100a.msk");
|
|
mask.set_handler(BUT_BA6_ELENCO, mask_ctrl_handler);
|
|
mask.set_handler(BUT_BA6_SCHEDE, mask_ctrl_handler);
|
|
mask.set_handler(BUT_BA6_ETICHETTE, mask_ctrl_handler);
|
|
mask.set_handler(BUT_BA6_RUBRICHE, mask_ctrl_handler);
|
|
mask.run();
|
|
|
|
// set print type
|
|
switch (mask.last_key())
|
|
{
|
|
case K_ESC:
|
|
return FALSE;
|
|
break;
|
|
case BUT_BA6_ELENCO:
|
|
_pr_type = elenco;
|
|
break;
|
|
case BUT_BA6_SCHEDE:
|
|
_pr_type = schede;
|
|
break;
|
|
case BUT_BA6_ETICHETTE:
|
|
_pr_type = etichette;
|
|
if (_pr_what != nditte)
|
|
{
|
|
// set additionals
|
|
TMask mask2("ba6100b.msk");
|
|
|
|
mask2.set_handler(BUT_BA6B_RESET, mask_reset_fields);
|
|
|
|
mask2.field(FLD_BA6B_INDROW).set(format("%d",_ind_row));
|
|
mask2.field(FLD_BA6B_INDCOL).set(format("%d",_ind_col));
|
|
mask2.field(FLD_BA6B_PIVROW).set(format("%d",_piv_row));
|
|
mask2.field(FLD_BA6B_PIVCOL).set(format("%d",_piv_col));
|
|
mask2.field(FLD_BA6B_CODROW).set(format("%d",_cod_row));
|
|
mask2.field(FLD_BA6B_CODCOL).set(format("%d",_cod_col));
|
|
mask2.field(FLD_BA6B_TOTROW).set(format("%d",_rows_et));
|
|
mask2.field(FLD_BA6B_TOTCOL).set(format("%d",_cols_et));
|
|
mask2.field(CHK_BA6B_PIVA).set(_is_piv ? "X" : " ");
|
|
mask2.field(CHK_BA6B_CODICE).set(_is_cod ?"X": " ");
|
|
|
|
mask2.run();
|
|
|
|
_ind_what = (in)atoi(mask2.get(RDB_BA6B_INDIR));
|
|
_ind_row = atoi(mask2.get(FLD_BA6B_INDROW));
|
|
_piv_row = atoi(mask2.get(FLD_BA6B_PIVROW));
|
|
_cod_row = atoi(mask2.get(FLD_BA6B_CODROW));
|
|
_rows_et = atoi(mask2.get(FLD_BA6B_TOTROW));
|
|
_ind_col = atoi(mask2.get(FLD_BA6B_INDCOL));
|
|
_piv_col = atoi(mask2.get(FLD_BA6B_PIVCOL));
|
|
_cod_col = atoi(mask2.get(FLD_BA6B_CODCOL));
|
|
_cols_et = atoi(mask2.get(FLD_BA6B_TOTCOL));
|
|
|
|
_is_piv = mask2.get(CHK_BA6B_PIVA) == "X";
|
|
_is_cod = mask2.get(CHK_BA6B_CODICE) == "X";
|
|
|
|
if (_frpos) delete _frpos;
|
|
_frpos = new bool[_rows_et];
|
|
memset(_frpos,FALSE,sizeof(_frpos));
|
|
_frpos[_ind_row-1] = TRUE;
|
|
_frpos[_ind_row] = TRUE;
|
|
if (_is_piv) _frpos[_piv_row-1] = TRUE;
|
|
if (_is_cod) _frpos[_cod_row-1] = TRUE;
|
|
|
|
for (int jk = 0; jk < _rows_et; jk++)
|
|
if (!_frpos[jk]) set_row(jk+1,"");
|
|
|
|
/* TBI save settings */
|
|
}
|
|
break;
|
|
case BUT_BA6_RUBRICHE:
|
|
_pr_type = rubriche;
|
|
break;
|
|
}
|
|
_pr_what = atoi(mask.get(RDB_BA6_TYPE));
|
|
_sort = atoi(mask.get(RDB_BA6_SORT));
|
|
_inclditte = (bool)(mask.get(CHK_BA6_INCLDI) == "X");
|
|
|
|
TString cod_from(5), cod_to(5);
|
|
TLocalisamfile* fl;
|
|
|
|
switch(_pr_what)
|
|
{
|
|
case anafis:
|
|
case anagiu:
|
|
select_cursor(_pr_what == anafis ? cfis() : cgiu());
|
|
if (_sort == 1)
|
|
{
|
|
cod_from = mask.get(_pr_what == anafis ? FLD_ANF_CODFR
|
|
: FLD_ANG_CODFR);
|
|
cod_to = mask.get(_pr_what == anafis ? FLD_ANF_CODTO
|
|
: FLD_ANG_CODTO);
|
|
}
|
|
else
|
|
{
|
|
cod_from = mask.get(_pr_what == anafis ? FLD_ANF_RAGSOCFR
|
|
: FLD_ANG_RAGSOCFR);
|
|
cod_to = mask.get(_pr_what == anafis ? FLD_ANF_RAGSOCTO
|
|
: FLD_ANG_RAGSOCTO);
|
|
}
|
|
if (!cod_from.empty() || !cod_to.empty())
|
|
{
|
|
fl = current_cursor()->file(LF_ANAG);
|
|
TRectype tr1(fl->curr());
|
|
TRectype tr2(fl->curr());
|
|
tr1.zero(); tr2.zero();
|
|
if (_sort == 1)
|
|
{
|
|
tr1.put("CODANAGR",cod_from);
|
|
tr2.put("CODANAGR",cod_to);
|
|
tr1.put("TIPOA", _pr_what == anafis ? "F" : "G");
|
|
tr2.put("TIPOA", _pr_what == anafis ? "F" : "G");
|
|
}
|
|
else
|
|
{
|
|
tr1.put("RAGSOC",cod_from);
|
|
tr2.put("RAGSOC",cod_to);
|
|
}
|
|
current_cursor()->setregion(cod_from.empty() ? NULL : &tr1,
|
|
cod_to.empty() ? NULL : &tr2);
|
|
}
|
|
break;
|
|
case nditte:
|
|
select_cursor(cdit());
|
|
if (_sort == 1)
|
|
{
|
|
cod_from = mask.get(FLD_DITTE_CODFR);
|
|
cod_to = mask.get(FLD_DITTE_CODTO);
|
|
}
|
|
else
|
|
{
|
|
cod_from = mask.get(FLD_DITTE_RAGSOCFR);
|
|
cod_to = mask.get(FLD_DITTE_RAGSOCTO);
|
|
}
|
|
if (!cod_from.empty() || !cod_to.empty())
|
|
{
|
|
fl = current_cursor()->file(LF_NDITTE);
|
|
TRectype tr1(fl->curr());
|
|
TRectype tr2(fl->curr());
|
|
tr1.zero(); tr2.zero();
|
|
if (_sort == 1)
|
|
{
|
|
tr1.put("CODDITTA",cod_from);
|
|
tr2.put("CODDITTA",cod_to);
|
|
}
|
|
else
|
|
{
|
|
tr1.put("RAGSOC",cod_from);
|
|
tr2.put("RAGSOC",cod_to);
|
|
}
|
|
current_cursor()->setregion(cod_from.empty() ? NULL : &tr1,
|
|
cod_to.empty() ? NULL : &tr2);
|
|
}
|
|
break;
|
|
}
|
|
// initialize (non dovrebbe servire)
|
|
(*current_cursor()) = 0l;
|
|
|
|
// set initial print rows & headers
|
|
set_rows();
|
|
return TRUE;
|
|
}
|
|
|
|
bool BA6100_App::preprocess_print(int counter)
|
|
{
|
|
_was_match = TRUE;
|
|
if (_pr_type == undefined)
|
|
return set_print();
|
|
return TRUE;
|
|
}
|
|
|
|
bool BA6100_App::create()
|
|
{
|
|
TToken_string rxp(40);
|
|
TPrintapp::create();
|
|
|
|
// setup relation
|
|
_rel_fis = new TRelation(LF_ANAG);
|
|
_rel_giu = new TRelation(LF_ANAG);
|
|
_rel_dit = new TRelation(LF_NDITTE);
|
|
|
|
rxp.add("CODANAGR=CODANAGR");
|
|
|
|
_rel_fis->add(LF_ANAGFIS,rxp);
|
|
_rel_giu->add(LF_ANAGGIU,rxp);
|
|
|
|
rxp.add("TIPOA=TIPOA");
|
|
|
|
_rel_fis->add(LF_NDITTE, rxp, 4);
|
|
_rel_giu->add(LF_NDITTE, rxp, 4);
|
|
_rel_dit->add(LF_ANAG, rxp);
|
|
|
|
// add unloc & attiv
|
|
rxp = "CODDITTA=CODDITTA";
|
|
|
|
_rel_fis->add(LF_ATTIV, rxp, 1, LF_NDITTE);
|
|
_rel_fis->add(LF_UNLOC, rxp, 1, LF_NDITTE);
|
|
_rel_giu->add(LF_ATTIV, rxp, 1, LF_NDITTE);
|
|
_rel_giu->add(LF_UNLOC, rxp, 1, LF_NDITTE);
|
|
_rel_dit->add(LF_ATTIV, rxp, 1);
|
|
_rel_dit->add(LF_UNLOC, rxp, 1);
|
|
|
|
_cfis1 = add_cursor(new TCursor(_rel_fis, "TIPOA=\"F\"" , 1));
|
|
_cgiu1 = add_cursor(new TCursor(_rel_giu, "TIPOA=\"G\"" , 1));
|
|
_cdit1 = add_cursor(new TCursor(_rel_dit, "", 1));
|
|
_cfis2 = add_cursor(new TCursor(_rel_fis, "TIPOA=\"F\"" , 2));
|
|
_cgiu2 = add_cursor(new TCursor(_rel_giu, "TIPOA=\"G\"" , 2));
|
|
_cdit2 = add_cursor(new TCursor(_rel_dit, "", 2));
|
|
|
|
_comuni = new TLocalisamfile(LF_COMUNI);
|
|
|
|
// set translated field values
|
|
set_translation(LF_ANAGFIS,"STATCIV","1","Celibe/Nubile");
|
|
set_translation(LF_ANAGFIS,"STATCIV","2","Coniugato/a");
|
|
set_translation(LF_ANAGFIS,"STATCIV","3","Vedovo/a");
|
|
set_translation(LF_ANAGFIS,"STATCIV","4","Separato/a");
|
|
set_translation(LF_ANAGFIS,"STATCIV","5","Divorziato/a");
|
|
set_translation(LF_ANAGFIS,"STATCIV","6","Deceduto/a");
|
|
set_translation(LF_ANAGFIS,"STATCIV","7","Tutelato/a");
|
|
set_translation(LF_ANAGFIS,"STATCIV","8","Figlio/a minore");
|
|
set_translation(LF_ANAGFIS,"TITSTU", "1" ,"Nessuno");
|
|
set_translation(LF_ANAGFIS,"TITSTU", "2" ,"Lic. Elem.");
|
|
set_translation(LF_ANAGFIS,"TITSTU", "3" ,"Lic. Media");
|
|
set_translation(LF_ANAGFIS,"TITSTU", "4" ,"Diploma");
|
|
set_translation(LF_ANAGFIS,"TITSTU", "5" ,"Laurea");
|
|
set_translation(LF_ANAGFIS,"SESSO", "M", "Maschio");
|
|
set_translation(LF_ANAGFIS,"SESSO", "F", "Femmina");
|
|
set_translation(LF_NDITTE,"FREQVIVA","M","Mensile");
|
|
set_translation(LF_NDITTE,"FREQVIVA","T","Trimestrale");
|
|
set_translation(LF_NDITTE,"DATLAV","1","Si");
|
|
set_translation(LF_NDITTE,"DATLAV","2","No");
|
|
set_translation(LF_NDITTE,"DATLAV","3","Lavoro Agricolo");
|
|
set_translation(LF_NDITTE,"STATOSOC","1","Normale attivita'");
|
|
set_translation(LF_NDITTE,"STATOSOC","2","Liquidazione cessata attivita'");
|
|
set_translation(LF_NDITTE,"STATOSOC","3",
|
|
"Fallimento o Liquidazione coatta amm.");
|
|
set_translation(LF_NDITTE,"STATOSOC","4","Estinto");
|
|
set_translation(LF_ANAGGIU,"STATOSOC","1","Normale attivita'");
|
|
set_translation(LF_ANAGGIU,"STATOSOC","2","Liquidazione cessata attivita'");
|
|
set_translation(LF_ANAGGIU,"STATOSOC","3",
|
|
"Fallimento o Liquidazione coatta amm.");
|
|
set_translation(LF_ANAGGIU,"STATOSOC","4","Estinto");
|
|
set_translation(LF_ANAGGIU,"SITSOC","1","Inizio");
|
|
set_translation(LF_ANAGGIU,"SITSOC","2","Liquidazione");
|
|
set_translation(LF_ANAGGIU,"SITSOC","3","Termine liquidazione");
|
|
set_translation(LF_ANAGGIU,"SITSOC","4","Estinzione");
|
|
set_translation(LF_ANAGGIU,"SITSOC","5","Trasf. IRPEG");
|
|
set_translation(LF_ANAGGIU,"SITSOC","6","Normale");
|
|
|
|
set_fillchar('_');
|
|
set_wait_threshold(0);
|
|
enable_print_menu();
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
bool BA6100_App::destroy()
|
|
{
|
|
if (_rel_fis) delete _rel_fis;
|
|
if (_rel_giu) delete _rel_giu;
|
|
if (_rel_dit) delete _rel_dit;
|
|
if (_frpos) delete _frpos;
|
|
|
|
delete _comuni;
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
|
|
int ba6100(int argc, char* argv[])
|
|
{
|
|
BA6100_App app;
|
|
app.run(argc, argv, "Stampe Anagrafiche");
|
|
return 0;
|
|
}
|