567 lines
		
	
	
		
			16 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			567 lines
		
	
	
		
			16 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
// **********************************************************************
 | 
						|
// Stampa anagrafiche
 | 
						|
// Control code
 | 
						|
// ***********************************************************************
 | 
						|
#include <progind.h>
 | 
						|
#include <mailbox.h>                    
 | 
						|
#include <execp.h>
 | 
						|
 | 
						|
#include "ba6100.h"
 | 
						|
 | 
						|
// ------- utils --------------------------------------------
 | 
						|
 | 
						|
 | 
						|
TRectype& TAnaprint_app::look_com(const char* cod)
 | 
						|
{
 | 
						|
  _comuni->curr().zero();
 | 
						|
  if (*cod)
 | 
						|
  {
 | 
						|
    _comuni->curr().put("COM",cod);
 | 
						|
    _comuni->read();
 | 
						|
    if (_comuni->bad()) 
 | 
						|
      _comuni->curr().zero();
 | 
						|
  }
 | 
						|
  return _comuni->curr();
 | 
						|
}
 | 
						|
 | 
						|
const char* TAnaprint_app::look_tab(const char* tabname, const char* cod, 
 | 
						|
                                    const char* fld)
 | 
						|
{
 | 
						|
  if (*cod == 0) return "";
 | 
						|
  TTable tab(tabname);
 | 
						|
  tab.curr().zero();
 | 
						|
  tab.curr().put("CODTAB",cod);
 | 
						|
  tab.read();
 | 
						|
  if (tab.bad()) tab.curr().zero();
 | 
						|
  return tab.curr().get(fld);
 | 
						|
}
 | 
						|
 | 
						|
// link 
 | 
						|
 | 
						|
void TAnaprint_app::process_link(int id, const char* txt)
 | 
						|
{                                         
 | 
						|
  if (id == _ana_link)
 | 
						|
  {
 | 
						|
    TString80 ss = "1|"; ss << txt;
 | 
						|
    TMessage fs(cmd2name("ba4","-1"), MSG_LN, ss);
 | 
						|
    TMailbox m;
 | 
						|
    m.send(fs);              
 | 
						|
    TExternal_app ba4(_pr_what == anafis ? "ba4 -1 F" : "ba4 -1 G");
 | 
						|
    if (ba4.run()) beep();
 | 
						|
  }                          
 | 
						|
  else if (id == _dit_link)
 | 
						|
  {
 | 
						|
    TString80 ss = "1|"; ss << txt << "|" << txt;
 | 
						|
    TMessage fs(cmd2name("ba4","-2"), MSG_LN, ss);
 | 
						|
    fs.send();           
 | 
						|
    TExternal_app ba4("ba4 -2");
 | 
						|
    if (ba4.run()) beep();
 | 
						|
  }
 | 
						|
}                                                        
 | 
						|
 | 
						|
// ---- here we go -------------------------------------------------
 | 
						|
 | 
						|
void TAnaprint_app::set_page(int file, int cnt)
 | 
						|
{
 | 
						|
  switch(file)
 | 
						|
  {
 | 
						|
  case LF_ANAG:
 | 
						|
  case LF_NDITTE:
 | 
						|
    if (_pr_type == elenco)
 | 
						|
    {
 | 
						|
      if (_pr_what != nditte && file == LF_NDITTE)
 | 
						|
      {
 | 
						|
        set_row(1,"@50g$[r]@pN$[n]@66g@S", FLD(LF_NDITTE,"CODDITTA","@@@@@"),
 | 
						|
                FLD(LF_NDITTE,"RAGSOC"));
 | 
						|
        set_row(2,"");
 | 
						|
      }
 | 
						|
      else 
 | 
						|
        set_elenco();   
 | 
						|
    } 
 | 
						|
    else  if (_pr_type == rubriche)  set_rubriche();
 | 
						|
    else  if (_pr_type == schede)    
 | 
						|
    {
 | 
						|
      if (_pr_what != nditte && file == LF_NDITTE) 
 | 
						|
        set_scheda_ditta();
 | 
						|
      else 
 | 
						|
        set_schede();     
 | 
						|
    }
 | 
						|
    else  if (_pr_type == etichette) set_etichette();
 | 
						|
    break;
 | 
						|
  case LF_ATTIV:
 | 
						|
    set_scheda_attiv();
 | 
						|
    break;
 | 
						|
  case LF_UNLOC:
 | 
						|
    set_scheda_unloc();
 | 
						|
    break;
 | 
						|
  case LF_SOCI:
 | 
						|
    set_scheda_socio();
 | 
						|
    break;
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
bool TAnaprint_app::preprocess_page(int file, int counter)
 | 
						|
{
 | 
						|
  // non stampa la prima ditta se sta facendo l'elenco visto
 | 
						|
  // che la stampa a fianco dell'anagrafica
 | 
						|
  if (file == LF_NDITTE && _pr_type == elenco && _inclditte 
 | 
						|
      && _pr_what != nditte)
 | 
						|
    if (current_cursor()->is_first_match(LF_NDITTE))
 | 
						|
      return FALSE;
 | 
						|
 | 
						|
  if (_pr_type == rubriche)
 | 
						|
  {
 | 
						|
    // vale per ditte, anagiu, anafis
 | 
						|
    _com = current_cursor()->curr(LF_ANAG).get("COMRES");
 | 
						|
    if (_com.empty())
 | 
						|
      _com = current_cursor()->curr(LF_ANAG).get("COMRF");     
 | 
						|
    _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);
 | 
						|
    _com  = cc.get("DENCOM");
 | 
						|
    _cap  = cc.get("CAPCOM");
 | 
						|
    _prov = cc.get("PROVCOM");
 | 
						|
  }
 | 
						|
  else if (_pr_type == etichette)
 | 
						|
    preprocess_etichette();
 | 
						|
  return TRUE;
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
bool mask_reset_fields(TMask_field& mf, KEY k)
 | 
						|
{
 | 
						|
  if (k == K_SPACE)
 | 
						|
  {  
 | 
						|
    TMask& m = mf.mask();
 | 
						|
    TAnaprint_app& a = (TAnaprint_app&)main_app();
 | 
						|
    m.set(FLD_BA6B_INDROW, a._ind_row);
 | 
						|
    m.set(FLD_BA6B_INDCOL, a._ind_col);
 | 
						|
    m.set(FLD_BA6B_PIVROW, a._piv_row);
 | 
						|
    m.set(FLD_BA6B_PIVCOL, a._piv_col);
 | 
						|
    m.set(FLD_BA6B_CODROW, a._cod_row);
 | 
						|
    m.set(FLD_BA6B_CODCOL, a._cod_col);
 | 
						|
    m.set(FLD_BA6B_TOTROW, a._rows_et);
 | 
						|
    m.set(FLD_BA6B_TOTCOL, a._cols_et);
 | 
						|
    m.set(CHK_BA6B_PIVA, a._is_piv ? "X" : " ");
 | 
						|
    m.set(CHK_BA6B_CODICE, a._is_cod ? "X": " ");
 | 
						|
  }
 | 
						|
  return TRUE;
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
void TAnaprint_app::preprocess_etichette()
 | 
						|
{
 | 
						|
  // 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); _surname.trim();
 | 
						|
    _name    = _name.cut(30); _name.trim();
 | 
						|
    _sex     = get_field(LF_ANAGFIS,"SESSO")[0] == 'M' ? "Sig." : "Sig.ra";
 | 
						|
  }
 | 
						|
  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");
 | 
						|
    _loc     = get_field(LF_ANAG,"LOCCORR");
 | 
						|
    _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"));
 | 
						|
    _loc     = "";
 | 
						|
    _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"));
 | 
						|
    _loc     = "";
 | 
						|
    _com     = cc.get("DENCOM");
 | 
						|
    _prov    = cc.get("PROVCOM");
 | 
						|
    if (_cap.empty())
 | 
						|
      _cap = cc.get("CAPCOM");
 | 
						|
    break;
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
void TAnaprint_app::init_print()
 | 
						|
{
 | 
						|
  reset_print();
 | 
						|
  reset_files();
 | 
						|
 | 
						|
  // select cursor and main file
 | 
						|
  switch(_pr_what)
 | 
						|
  {
 | 
						|
  case anafis: 
 | 
						|
    select_cursor(cfis()); 
 | 
						|
    add_file(LF_ANAG);
 | 
						|
    break;
 | 
						|
  case anagiu:
 | 
						|
    select_cursor(cgiu()); 
 | 
						|
    add_file(LF_ANAG);
 | 
						|
    break;
 | 
						|
  case nditte: 
 | 
						|
    select_cursor(cdit());
 | 
						|
    add_file(LF_NDITTE);
 | 
						|
    break;
 | 
						|
  }
 | 
						|
  
 | 
						|
  force_setpage(_pr_type == schede);
 | 
						|
 | 
						|
  // setup secondary links
 | 
						|
  if (_inclditte)
 | 
						|
  {
 | 
						|
    switch(_pr_type)
 | 
						|
    {
 | 
						|
    case elenco: 
 | 
						|
      if (_pr_what != nditte)
 | 
						|
        add_file(LF_NDITTE);
 | 
						|
      break;
 | 
						|
    case schede:
 | 
						|
      if (_pr_what != nditte)
 | 
						|
        add_file(LF_NDITTE);
 | 
						|
      add_file(LF_ATTIV,LF_NDITTE);
 | 
						|
      add_file(LF_UNLOC,LF_NDITTE);
 | 
						|
      add_file(LF_SOCI, LF_NDITTE);
 | 
						|
      break;
 | 
						|
    default:
 | 
						|
      break;
 | 
						|
    }
 | 
						|
  }
 | 
						|
  set_headers();
 | 
						|
}
 | 
						|
 | 
						|
bool TAnaprint_app::set_print(int)
 | 
						|
{
 | 
						|
  TMask mask("ba6100a.msk");
 | 
						|
  // set print type
 | 
						|
  switch (mask.run())
 | 
						|
  {
 | 
						|
  case K_ESC:
 | 
						|
  case K_QUIT:
 | 
						|
    return FALSE;
 | 
						|
  case BUT_BA6_ELENCO:
 | 
						|
    _pr_type = elenco;                                
 | 
						|
    // cio' che e' blu collega al modulo anagrafiche
 | 
						|
    _ana_link = enable_link("Collegamento archivio anagrafiche: ", 'b');
 | 
						|
    _dit_link = enable_link("Collegamento archivio ditte: ", 'r');
 | 
						|
    break;
 | 
						|
  case BUT_BA6_SCHEDE:                               
 | 
						|
    disable_links();
 | 
						|
    _pr_type = schede;
 | 
						|
    break;
 | 
						|
  case BUT_BA6_ETICHETTE:
 | 
						|
    disable_links();
 | 
						|
    if (_pr_what != nditte)
 | 
						|
    {
 | 
						|
      _pr_type = etichette;
 | 
						|
      // set additionals
 | 
						|
      TMask mask2("ba6100b.msk");
 | 
						|
 | 
						|
      mask2.set_workfile("ba6100.set");
 | 
						|
      mask2.set_handler(BUT_BA6B_RESET, mask_reset_fields);
 | 
						|
 | 
						|
      if (fexist("ba6100b.set"))
 | 
						|
      {
 | 
						|
        mask2.load();
 | 
						|
 | 
						|
        _ind_what = (in)mask2.get_int(RDB_BA6B_INDIR);
 | 
						|
        _ind_row  = mask2.get_int(FLD_BA6B_INDROW);
 | 
						|
        _piv_row  = mask2.get_int(FLD_BA6B_PIVROW);
 | 
						|
        _cod_row  = mask2.get_int(FLD_BA6B_CODROW);
 | 
						|
        _rows_et  = mask2.get_int(FLD_BA6B_TOTROW);
 | 
						|
        _ind_col  = mask2.get_int(FLD_BA6B_INDCOL);
 | 
						|
        _piv_col  = mask2.get_int(FLD_BA6B_PIVCOL);
 | 
						|
        _cod_col  = mask2.get_int(FLD_BA6B_CODCOL);
 | 
						|
        _cols_et  = mask2.get_int(FLD_BA6B_TOTCOL);
 | 
						|
        
 | 
						|
        _is_piv   = mask2.get(CHK_BA6B_PIVA)   == "X";
 | 
						|
        _is_cod   = mask2.get(CHK_BA6B_CODICE) == "X";
 | 
						|
      }
 | 
						|
      else
 | 
						|
      {
 | 
						|
        mask2.set(FLD_BA6B_INDROW,_ind_row);
 | 
						|
        mask2.set(FLD_BA6B_INDCOL,_ind_col);
 | 
						|
        mask2.set(FLD_BA6B_PIVROW,_piv_row);
 | 
						|
        mask2.set(FLD_BA6B_PIVCOL,_piv_col);
 | 
						|
        mask2.set(FLD_BA6B_CODROW,_cod_row);
 | 
						|
        mask2.set(FLD_BA6B_CODCOL,_cod_col);
 | 
						|
        mask2.set(FLD_BA6B_TOTROW,_rows_et);
 | 
						|
        mask2.set(FLD_BA6B_TOTCOL,_cols_et);
 | 
						|
        mask2.set(CHK_BA6B_PIVA,_is_piv ? "X" : " ");
 | 
						|
        mask2.set(CHK_BA6B_CODICE,_is_cod ?"X": " ");
 | 
						|
      }
 | 
						|
 | 
						|
      if (mask2.run() == K_ESC) 
 | 
						|
        return FALSE;
 | 
						|
      
 | 
						|
      _ind_what = (in)mask2.get_int(RDB_BA6B_INDIR);
 | 
						|
      _ind_row  = mask2.get_int(FLD_BA6B_INDROW);
 | 
						|
      _piv_row  = mask2.get_int(FLD_BA6B_PIVROW);
 | 
						|
      _cod_row  = mask2.get_int(FLD_BA6B_CODROW);
 | 
						|
      _rows_et  = mask2.get_int(FLD_BA6B_TOTROW);
 | 
						|
      _ind_col  = mask2.get_int(FLD_BA6B_INDCOL);
 | 
						|
      _piv_col  = mask2.get_int(FLD_BA6B_PIVCOL);
 | 
						|
      _cod_col  = mask2.get_int(FLD_BA6B_CODCOL);
 | 
						|
      _cols_et  = mask2.get_int(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,"");
 | 
						|
      
 | 
						|
      // save settings
 | 
						|
      if (mask2.get(CHK_BA6B_SAVE) == "X")
 | 
						|
        mask2.save();
 | 
						|
    }
 | 
						|
    break;
 | 
						|
  case BUT_BA6_RUBRICHE:    
 | 
						|
    _ana_link = enable_link("Collegamento archivio anagrafiche: ", 'b');
 | 
						|
    _dit_link = enable_link("Collegamento archivio ditte: ", 'r');
 | 
						|
    _pr_type = rubriche;
 | 
						|
    break;
 | 
						|
  }
 | 
						|
  _pr_what   = (pw)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);
 | 
						|
 | 
						|
  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);
 | 
						|
    }
 | 
						|
  {
 | 
						|
    TLocalisamfile& fl = current_cursor()->file(LF_ANAG);
 | 
						|
    TRectype tr1(fl.curr());
 | 
						|
    TRectype tr2(fl.curr());
 | 
						|
    tr1.zero(); tr2.zero();
 | 
						|
    tr1.put("TIPOA", _pr_what == anafis ? "F" : "G");
 | 
						|
    tr2.put("TIPOA", _pr_what == anafis ? "F" : "G");
 | 
						|
    if (!cod_from.empty() || !cod_to.empty())
 | 
						|
    {
 | 
						|
      if (_sort == 1)
 | 
						|
      {
 | 
						|
        if (cod_from.not_empty())
 | 
						|
        {
 | 
						|
          tr1.put("CODANAGR",cod_from);
 | 
						|
          tr2.put("CODANAGR",cod_to);
 | 
						|
        }
 | 
						|
      }
 | 
						|
      else
 | 
						|
      {
 | 
						|
        if (cod_from.not_empty())
 | 
						|
        {
 | 
						|
          tr1.put("RAGSOC",cod_from);
 | 
						|
          tr2.put("RAGSOC",cod_to);
 | 
						|
        }
 | 
						|
      }
 | 
						|
    }
 | 
						|
    current_cursor()->setregion(tr1, 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())
 | 
						|
    {
 | 
						|
      TLocalisamfile& 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(tr1, tr2);
 | 
						|
    }
 | 
						|
    break;
 | 
						|
  }  
 | 
						|
  // setup links and set headers
 | 
						|
  init_print();
 | 
						|
 | 
						|
  //  enable_print_menu();
 | 
						|
 | 
						|
  return TRUE;
 | 
						|
}
 | 
						|
 | 
						|
bool TAnaprint_app::user_create()
 | 
						|
{
 | 
						|
  TToken_string rxp(40);
 | 
						|
 | 
						|
  TProgind p(5, "Preparazione archivi\nPrego attendere", FALSE, TRUE, 30); 
 | 
						|
  
 | 
						|
  // setup relation
 | 
						|
  _rel_fis = new TRelation(LF_ANAG);   
 | 
						|
  _rel_giu = new TRelation(LF_ANAG);
 | 
						|
  _rel_dit = new TRelation(LF_NDITTE);
 | 
						|
 | 
						|
  p.addstatus(1);
 | 
						|
  
 | 
						|
  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);
 | 
						|
  
 | 
						|
  p.addstatus(1);
 | 
						|
  
 | 
						|
  // 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);
 | 
						|
  _rel_fis->add(LF_SOCI,  rxp, 4, LF_NDITTE);
 | 
						|
  _rel_giu->add(LF_SOCI,  rxp, 4, LF_NDITTE);
 | 
						|
  _rel_dit->add(LF_SOCI,  rxp, 4);
 | 
						|
  
 | 
						|
  p.addstatus(1);
 | 
						|
  
 | 
						|
  _cfis1 = add_cursor(new TCursor(_rel_fis, "" , 1));
 | 
						|
  _cgiu1 = add_cursor(new TCursor(_rel_giu, "" , 1));
 | 
						|
  _cdit1 = add_cursor(new TCursor(_rel_dit, "", 1));
 | 
						|
  _cfis2 = add_cursor(new TCursor(_rel_fis, "" , 2));
 | 
						|
  _cgiu2 = add_cursor(new TCursor(_rel_giu, "" , 2));
 | 
						|
  _cdit2 = add_cursor(new TCursor(_rel_dit, "", 2));
 | 
						|
  
 | 
						|
  p.addstatus(1);
 | 
						|
  
 | 
						|
  _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_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);                       
 | 
						|
 | 
						|
  p.addstatus(1);
 | 
						|
  return TRUE;
 | 
						|
}
 | 
						|
 | 
						|
bool TAnaprint_app::user_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[])
 | 
						|
{
 | 
						|
  TAnaprint_app app;
 | 
						|
  app.run(argc, argv, "Stampa Anagrafiche");   
 | 
						|
  return 0;
 | 
						|
}
 |