corretto errori MI6194,MI6195,MI2288,MI2290,MI2295,MI2297
git-svn-id: svn://10.65.10.50/trunk@4191 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
		
							parent
							
								
									a20f793f78
								
							
						
					
					
						commit
						dc0dd1b564
					
				
							
								
								
									
										653
									
								
								ba/ba3300.cpp
									
									
									
									
									
								
							
							
						
						
									
										653
									
								
								ba/ba3300.cpp
									
									
									
									
									
								
							@ -1,326 +1,327 @@
 | 
			
		||||
#include <mask.h>
 | 
			
		||||
#include <prefix.h>
 | 
			
		||||
#include <printapp.h>
 | 
			
		||||
#include <progind.h>
 | 
			
		||||
#include <tabutil.h>  
 | 
			
		||||
 | 
			
		||||
#include "ba3.h"
 | 
			
		||||
#include "ba3300.h"
 | 
			
		||||
 | 
			
		||||
class Libribollati_print : public TPrintapp
 | 
			
		||||
{
 | 
			
		||||
  friend bool registro_handler(TMask_field& field, KEY key);
 | 
			
		||||
  friend bool codditta_handler(TMask_field& field, KEY key);
 | 
			
		||||
  
 | 
			
		||||
  TMask*  _msk;
 | 
			
		||||
  TTable* _tab;        // Tabella dei registri
 | 
			
		||||
  TProgind *_p;
 | 
			
		||||
  
 | 
			
		||||
  TString _cod_reg, _comulc, _ragsoc, _indulc, _civulc;
 | 
			
		||||
  TString _capulc, _com, _prov, _cofi, _paiv;
 | 
			
		||||
  TString80 _descr; 
 | 
			
		||||
  long _num_pag, _pag_ini, _pag_fin; 
 | 
			
		||||
  int _cod_anno, _anno_stampa;
 | 
			
		||||
  bool _inizia_dopo;
 | 
			
		||||
  TLocalisamfile*   _nditte;
 | 
			
		||||
  TLocalisamfile*   _anag;
 | 
			
		||||
  TLocalisamfile*   _unloc;
 | 
			
		||||
  TLocalisamfile*   _comuni;  
 | 
			
		||||
 | 
			
		||||
protected:
 | 
			
		||||
  
 | 
			
		||||
  bool menu(MENU_TAG m) { return TPrintapp::menu(m) ; }
 | 
			
		||||
  virtual bool user_destroy();
 | 
			
		||||
  virtual bool user_create() ;
 | 
			
		||||
  bool set_print(int);
 | 
			
		||||
 | 
			
		||||
  virtual void set_page(int, int);
 | 
			
		||||
  virtual print_action postprocess_page(int, int);
 | 
			
		||||
  virtual bool preprocess_print(int, int);
 | 
			
		||||
  virtual print_action postprocess_print(int, int);
 | 
			
		||||
  
 | 
			
		||||
public:
 | 
			
		||||
  Libribollati_print() : _p(NULL) {}
 | 
			
		||||
  ~Libribollati_print() {}
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
HIDDEN inline Libribollati_print& app() { return (Libribollati_print&) main_app(); }
 | 
			
		||||
 | 
			
		||||
print_action Libribollati_print::postprocess_page(int, int counter)
 | 
			
		||||
{
 | 
			
		||||
  if (counter == _num_pag - 1)
 | 
			
		||||
  {  
 | 
			
		||||
    TString16 dep; dep.format("%04d%-3s", _cod_anno, (const char*) _cod_reg);
 | 
			
		||||
    _tab->put("CODTAB", (const char*) dep);
 | 
			
		||||
    _tab->read();
 | 
			
		||||
    if (_tab->good())
 | 
			
		||||
    {
 | 
			
		||||
      _tab->put("I2", _pag_fin);
 | 
			
		||||
      _tab->rewrite();
 | 
			
		||||
    }
 | 
			
		||||
    return NEXT_PAGE;
 | 
			
		||||
  }    
 | 
			
		||||
  return REPEAT_PAGE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool Libribollati_print::preprocess_print(int, int)
 | 
			
		||||
{
 | 
			
		||||
  _p = new TProgind(_pag_fin-_pag_ini+1, "Preparazione stampa", FALSE, TRUE, 60);
 | 
			
		||||
  return TRUE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
print_action Libribollati_print::postprocess_print(int, int)
 | 
			
		||||
{
 | 
			
		||||
  if (_p != NULL) 
 | 
			
		||||
  {
 | 
			
		||||
    delete _p;
 | 
			
		||||
    _p = NULL;
 | 
			
		||||
  }           
 | 
			
		||||
  return NEXT_PAGE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Libribollati_print::set_page(int , int counter)
 | 
			
		||||
{
 | 
			
		||||
  reset_print();        
 | 
			
		||||
  _p->addstatus(1);
 | 
			
		||||
 | 
			
		||||
  long contatore = _pag_ini + counter;
 | 
			
		||||
 | 
			
		||||
  if (_inizia_dopo) contatore--;
 | 
			
		||||
  reset_row(1);
 | 
			
		||||
  reset_row(2);
 | 
			
		||||
  reset_row(3);
 | 
			
		||||
  reset_row(4);
 | 
			
		||||
  reset_row(5);
 | 
			
		||||
  reset_row(6);
 | 
			
		||||
  reset_row(7);
 | 
			
		||||
  reset_row(8);
 | 
			
		||||
  reset_row(9);
 | 
			
		||||
  if (counter == 0)
 | 
			
		||||
  {
 | 
			
		||||
    if (!_inizia_dopo)
 | 
			
		||||
    { 
 | 
			
		||||
      if (_anno_stampa == 0)
 | 
			
		||||
        set_row(3, "@120gPag. %ld", contatore);
 | 
			
		||||
      else        
 | 
			
		||||
        set_row(3, "@120gPag. %4d/%ld", _anno_stampa, contatore);
 | 
			
		||||
    }      
 | 
			
		||||
    int pos = printer().formlen() / 2 - 3;
 | 
			
		||||
    set_row(pos++, "@36g%-50s", (const char*) _descr);
 | 
			
		||||
    set_row(pos++, "@36g%-50s", (const char*) _ragsoc);
 | 
			
		||||
    TString s(_indulc);
 | 
			
		||||
    
 | 
			
		||||
    s << " " << _civulc ;
 | 
			
		||||
    set_row(pos++, "@36g%-52s", (const char*) s);
 | 
			
		||||
    s = _capulc; 
 | 
			
		||||
    s << " " << _com << " " << _prov;
 | 
			
		||||
    set_row(pos++, "@36g%-62s", (const char*) s);
 | 
			
		||||
    set_row(pos++, "@36gCODICE FISCALE %-16s", (const char*)_cofi);
 | 
			
		||||
    set_row(pos, "@36gPARTITA I.V.A. %-11s", (const char*) _paiv);
 | 
			
		||||
    
 | 
			
		||||
  }
 | 
			
		||||
  else if (counter == _num_pag - 1)       
 | 
			
		||||
  {
 | 
			
		||||
    set_row(1, "@1g%-50s", (const char*) _ragsoc);
 | 
			
		||||
    TString s(_indulc);
 | 
			
		||||
    
 | 
			
		||||
    s << " " << _civulc << " " << _capulc << " " << _com << " " << _prov;
 | 
			
		||||
    set_row(1, "@62g%-65s", (const char*) s);
 | 
			
		||||
    set_row(2, "@1g%-50s", (const char*) _descr);
 | 
			
		||||
    set_row(2, "@52gCODICE FISCALE %-16s", (const char*) _cofi);
 | 
			
		||||
    set_row(2, "@85gPARTITA I.V.A. %-11s", (const char*) _paiv);         
 | 
			
		||||
    if (_anno_stampa == 0)    
 | 
			
		||||
      set_row(2, "@120gPag. %ld", contatore);         
 | 
			
		||||
    else
 | 
			
		||||
      set_row(2, "@120gPag. %4d/%ld", _anno_stampa, contatore);         
 | 
			
		||||
    set_row(25, "@50gN. ........ DI REPERTORIO");
 | 
			
		||||
    set_row(27, "@50gIL PRESENTE LIBRO DELLA@75g%-50s", (const char*) _ragsoc);
 | 
			
		||||
 | 
			
		||||
    s = _indulc;
 | 
			
		||||
    s << " " << _civulc;
 | 
			
		||||
    set_row(29, "@50g%-52s", (const char*) s);
 | 
			
		||||
    s = _capulc; 
 | 
			
		||||
    s << " " << _com << " " << _prov;
 | 
			
		||||
    set_row(31, "@50g%-62s", (const char*) s);
 | 
			
		||||
    set_row(33, "@50gCONSTA DI %ld PAGINE UTILI, BOLLATE E NUMERATE", _num_pag - (_inizia_dopo ? 1 : 0));
 | 
			
		||||
    set_row(35, "@50gE VIENE OGGI VIDIMATO, il .........");
 | 
			
		||||
  }
 | 
			
		||||
  else
 | 
			
		||||
  { 
 | 
			
		||||
    set_row(1, "@1g%-50s", (const char*) _ragsoc);
 | 
			
		||||
    TString s(_indulc);
 | 
			
		||||
    
 | 
			
		||||
    s << " " << _civulc << " " << _capulc << " " << _com << " " << _prov;
 | 
			
		||||
    set_row(1, "@52g%-68s1", (const char*) s);
 | 
			
		||||
    set_row(2, "@1g%-50s", (const char*) _descr);
 | 
			
		||||
    set_row(2, "@52gCODICE FISCALE %-16s", (const char*) _cofi);
 | 
			
		||||
    set_row(2, "@85gPARTITA I.V.A. %-11s", (const char*) _paiv);
 | 
			
		||||
    if (_anno_stampa == 0)
 | 
			
		||||
      set_row(2, "@120gPag. %ld", contatore);  
 | 
			
		||||
    else      
 | 
			
		||||
      set_row(2, "@120gPag. %4d/%ld", _anno_stampa, contatore);  
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool Libribollati_print::set_print(int)
 | 
			
		||||
{
 | 
			
		||||
  if (_msk->run() == K_ENTER) 
 | 
			
		||||
  {
 | 
			
		||||
    TPrinter& pr = printer();
 | 
			
		||||
    //pr.formlen(_msk->get_int(F_LUNG));
 | 
			
		||||
    int font_size = pr.calc_font_size(132);
 | 
			
		||||
    if (font_size != pr.get_char_size())
 | 
			
		||||
    {
 | 
			
		||||
      warning_box("Il font e' stato ridimensionato a %d punti per\n"
 | 
			
		||||
                  "adattarsi alle dimensioni attuali della pagina.", font_size);
 | 
			
		||||
      pr.set_char_size(font_size);
 | 
			
		||||
    } 
 | 
			
		||||
    _cod_reg      = _msk->get(F_CODICE);
 | 
			
		||||
    _cod_anno     = _msk->get_int(F_ANNO);
 | 
			
		||||
    _pag_ini      = _msk->get_long(F_NPAGINI);
 | 
			
		||||
    _pag_fin      = _msk->get_long(F_NPAGFI);
 | 
			
		||||
    _inizia_dopo  = _msk->get_bool(F_PRIMO);
 | 
			
		||||
    _num_pag      = (_pag_fin - _pag_ini) + 1;
 | 
			
		||||
    _ragsoc       = _msk->get(F_RAGSOC);
 | 
			
		||||
    _indulc       = _msk->get(F_INDIRIZZO);
 | 
			
		||||
    _civulc       = _msk->get(F_CIV);
 | 
			
		||||
    _capulc       = _msk->get(F_CAP);
 | 
			
		||||
    _comulc       = _msk->get(F_CODCOM);
 | 
			
		||||
    _com          = _msk->get(F_COM);
 | 
			
		||||
    _prov         = _msk->get(F_PROV);
 | 
			
		||||
    _paiv         = _msk->get(F_PAIV);
 | 
			
		||||
    _cofi         = _msk->get(F_COFI);
 | 
			
		||||
    _anno_stampa  = _msk->get_int(F_ANNOSTAMPA);
 | 
			
		||||
    if (_inizia_dopo) _num_pag++; 
 | 
			
		||||
    enable_print_menu();      
 | 
			
		||||
    return TRUE;
 | 
			
		||||
  }
 | 
			
		||||
  return FALSE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static bool registro_handler(TMask_field& field, KEY key)
 | 
			
		||||
{
 | 
			
		||||
  if (key == K_TAB && field.focusdirty())
 | 
			
		||||
  {
 | 
			
		||||
    //field.mask().set(F_LUNG,66);
 | 
			
		||||
    field.mask().set(F_NPAGINI, 0L);
 | 
			
		||||
    field.mask().set(F_NPAGFI, 0L);
 | 
			
		||||
  } 
 | 
			
		||||
  return TRUE;
 | 
			
		||||
}
 | 
			
		||||
static bool codditta_handler(TMask_field& field, KEY key)
 | 
			
		||||
{ 
 | 
			
		||||
  if (key == K_TAB && field.focusdirty())
 | 
			
		||||
  { 
 | 
			
		||||
    TMask& m = field.mask();
 | 
			
		||||
    const long codditta = m.get_long(F_CODDITTA);
 | 
			
		||||
    if (codditta == 0)
 | 
			
		||||
      m.reset();      
 | 
			
		||||
    else
 | 
			
		||||
    {   
 | 
			
		||||
      TLocalisamfile nditte(LF_NDITTE);
 | 
			
		||||
      TLocalisamfile unloc(LF_UNLOC);
 | 
			
		||||
      TLocalisamfile comuni(LF_COMUNI);
 | 
			
		||||
      TLocalisamfile anag(LF_ANAG);
 | 
			
		||||
      
 | 
			
		||||
      nditte.setkey(1);
 | 
			
		||||
      nditte.zero();
 | 
			
		||||
      nditte.put(N_CODDITTA, codditta);   
 | 
			
		||||
      nditte.read();                 
 | 
			
		||||
      if (nditte.bad()) 
 | 
			
		||||
        return error_box("Il codice ditta %d non esiste", codditta);
 | 
			
		||||
      const bool exist_firm = prefix().exist(codditta);  
 | 
			
		||||
      if (exist_firm)
 | 
			
		||||
        app().set_firm(codditta);
 | 
			
		||||
      m.hide(exist_firm ? -4 : -3);
 | 
			
		||||
      m.show(exist_firm ? -3 : -4);
 | 
			
		||||
      //else        
 | 
			
		||||
      //{
 | 
			
		||||
        //m.field(F_ANNO).hide();
 | 
			
		||||
        //m.field(F_CODICE).hide();
 | 
			
		||||
        //m.field(F_ANNOREG).show();
 | 
			
		||||
        //m.field(F_CODICEREG).show();
 | 
			
		||||
      //}
 | 
			
		||||
      app()._ragsoc = "SOCIETA' ";
 | 
			
		||||
      app()._ragsoc << nditte.get(N_RAGSOC);
 | 
			
		||||
      m.set(F_RAGSOC,app()._ragsoc);
 | 
			
		||||
  
 | 
			
		||||
      const TString16 tipoa = nditte.get(N_TIPOA);
 | 
			
		||||
      const long codanagr = atol(nditte.get(N_CODANAGR));
 | 
			
		||||
    
 | 
			
		||||
      unloc.setkey(1);
 | 
			
		||||
      unloc.zero();
 | 
			
		||||
      unloc.put(N_CODDITTA, codditta);
 | 
			
		||||
      unloc.put(N_CODULC,"1");
 | 
			
		||||
      unloc.read();
 | 
			
		||||
      app()._indulc = unloc.get(N_INDULC);
 | 
			
		||||
      m.set(F_INDIRIZZO, app()._indulc);
 | 
			
		||||
      app()._civulc = unloc.get(N_CIVULC);
 | 
			
		||||
      m.set(F_CIV, app()._civulc);
 | 
			
		||||
      app()._capulc = unloc.get(N_CAPULC);
 | 
			
		||||
      m.set(F_CAP, app()._capulc);
 | 
			
		||||
      app()._comulc = unloc.get(N_COMULC);
 | 
			
		||||
      m.set(F_CODCOM, app()._comulc);
 | 
			
		||||
    
 | 
			
		||||
      comuni.setkey(1);
 | 
			
		||||
      comuni.zero();
 | 
			
		||||
      comuni.put(N_CODCOM, app()._comulc);
 | 
			
		||||
      comuni.read();
 | 
			
		||||
      app()._com = comuni.get(N_COM);
 | 
			
		||||
      m.set(F_COM, app()._com);
 | 
			
		||||
      app()._prov = comuni.get(N_PROV);
 | 
			
		||||
      m.set(F_PROV, app()._prov);
 | 
			
		||||
    
 | 
			
		||||
      anag.setkey(1);  
 | 
			
		||||
      anag.zero();
 | 
			
		||||
      anag.put(N_TIPOA, tipoa);
 | 
			
		||||
      anag.put(N_CODANAGR, codanagr);
 | 
			
		||||
      anag.read();
 | 
			
		||||
      app()._cofi = anag.get(N_COFI);
 | 
			
		||||
      m.set(F_COFI, app()._cofi);
 | 
			
		||||
      app()._paiv = anag.get(N_PAIV);
 | 
			
		||||
      m.set(F_PAIV, app()._paiv);
 | 
			
		||||
    }   
 | 
			
		||||
  }   
 | 
			
		||||
  return TRUE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool Libribollati_print::user_create()
 | 
			
		||||
{
 | 
			
		||||
  if (get_firm() == 0L)
 | 
			
		||||
    if (!set_firm()) return FALSE;
 | 
			
		||||
 | 
			
		||||
  enable_print_menu();
 | 
			
		||||
  _nditte = new TLocalisamfile(LF_NDITTE);
 | 
			
		||||
  _unloc =  new TLocalisamfile(LF_UNLOC);
 | 
			
		||||
  _comuni = new TLocalisamfile(LF_COMUNI);
 | 
			
		||||
  _anag =   new TLocalisamfile(LF_ANAG);
 | 
			
		||||
  _tab =    new TTable("REG");
 | 
			
		||||
 | 
			
		||||
  _msk = new TMask("ba3300a") ;
 | 
			
		||||
  _msk->set_handler(F_REGISTRO, registro_handler);
 | 
			
		||||
  _msk->set_handler(F_CODDITTA, codditta_handler);
 | 
			
		||||
  
 | 
			
		||||
  add_cursor(NULL);
 | 
			
		||||
  set_auto_ff(TRUE);
 | 
			
		||||
  return TRUE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool Libribollati_print::user_destroy()
 | 
			
		||||
{
 | 
			
		||||
  delete  _msk;
 | 
			
		||||
  delete  _nditte;
 | 
			
		||||
  delete  _unloc;
 | 
			
		||||
  delete  _comuni;
 | 
			
		||||
  delete  _anag;
 | 
			
		||||
  delete  _tab;   
 | 
			
		||||
  if (_p != NULL) delete _p;
 | 
			
		||||
  return TRUE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int ba3300(int argc, char* argv[])
 | 
			
		||||
{
 | 
			
		||||
  Libribollati_print a;
 | 
			
		||||
  a.run(argc, argv, "Stampa fogli libri bollati");
 | 
			
		||||
  return 0;
 | 
			
		||||
}
 | 
			
		||||
#include <mask.h>
 | 
			
		||||
#include <prefix.h>
 | 
			
		||||
#include <printapp.h>
 | 
			
		||||
#include <progind.h>
 | 
			
		||||
#include <tabutil.h>  
 | 
			
		||||
 | 
			
		||||
#include "ba3.h"
 | 
			
		||||
#include "ba3300.h"
 | 
			
		||||
 | 
			
		||||
class Libribollati_print : public TPrintapp
 | 
			
		||||
{
 | 
			
		||||
  friend bool registro_handler(TMask_field& field, KEY key);
 | 
			
		||||
  friend bool codditta_handler(TMask_field& field, KEY key);
 | 
			
		||||
  
 | 
			
		||||
  TMask*  _msk;
 | 
			
		||||
  TTable* _tab;        // Tabella dei registri
 | 
			
		||||
  TProgind *_p;
 | 
			
		||||
  
 | 
			
		||||
  TString _cod_reg, _comulc, _ragsoc, _indulc, _civulc;
 | 
			
		||||
  TString _capulc, _com, _prov, _cofi, _paiv;
 | 
			
		||||
  TString80 _descr; 
 | 
			
		||||
  long _num_pag, _pag_ini, _pag_fin; 
 | 
			
		||||
  int _cod_anno, _anno_stampa;
 | 
			
		||||
  bool _inizia_dopo;
 | 
			
		||||
  TLocalisamfile*   _nditte;
 | 
			
		||||
  TLocalisamfile*   _anag;
 | 
			
		||||
  TLocalisamfile*   _unloc;
 | 
			
		||||
  TLocalisamfile*   _comuni;  
 | 
			
		||||
 | 
			
		||||
protected:
 | 
			
		||||
  
 | 
			
		||||
  bool menu(MENU_TAG m) { return TPrintapp::menu(m) ; }
 | 
			
		||||
  virtual bool user_destroy();
 | 
			
		||||
  virtual bool user_create() ;
 | 
			
		||||
  bool set_print(int);
 | 
			
		||||
 | 
			
		||||
  virtual void set_page(int, int);
 | 
			
		||||
  virtual print_action postprocess_page(int, int);
 | 
			
		||||
  virtual bool preprocess_print(int, int);
 | 
			
		||||
  virtual print_action postprocess_print(int, int);
 | 
			
		||||
  
 | 
			
		||||
public:
 | 
			
		||||
  Libribollati_print() : _p(NULL) {}
 | 
			
		||||
  ~Libribollati_print() {}
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
HIDDEN inline Libribollati_print& app() { return (Libribollati_print&) main_app(); }
 | 
			
		||||
 | 
			
		||||
print_action Libribollati_print::postprocess_page(int, int counter)
 | 
			
		||||
{
 | 
			
		||||
  if (counter == _num_pag - 1)
 | 
			
		||||
  {  
 | 
			
		||||
    TString16 dep; dep.format("%04d%-3s", _cod_anno, (const char*) _cod_reg);
 | 
			
		||||
    _tab->put("CODTAB", (const char*) dep);
 | 
			
		||||
    _tab->read();
 | 
			
		||||
    if (_tab->good())
 | 
			
		||||
    {
 | 
			
		||||
      _tab->put("I2", _pag_fin);
 | 
			
		||||
      _tab->rewrite();
 | 
			
		||||
    }
 | 
			
		||||
    return NEXT_PAGE;
 | 
			
		||||
  }    
 | 
			
		||||
  return REPEAT_PAGE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool Libribollati_print::preprocess_print(int, int)
 | 
			
		||||
{
 | 
			
		||||
  _p = new TProgind(_pag_fin-_pag_ini+1, "Preparazione stampa", FALSE, TRUE, 60);
 | 
			
		||||
  return TRUE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
print_action Libribollati_print::postprocess_print(int, int)
 | 
			
		||||
{
 | 
			
		||||
  if (_p != NULL) 
 | 
			
		||||
  {
 | 
			
		||||
    delete _p;
 | 
			
		||||
    _p = NULL;
 | 
			
		||||
  }           
 | 
			
		||||
  return NEXT_PAGE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Libribollati_print::set_page(int , int counter)
 | 
			
		||||
{
 | 
			
		||||
  reset_print();        
 | 
			
		||||
  _p->addstatus(1);
 | 
			
		||||
 | 
			
		||||
  long contatore = _pag_ini + counter;
 | 
			
		||||
 | 
			
		||||
  if (_inizia_dopo) contatore--;
 | 
			
		||||
  reset_row(1);
 | 
			
		||||
  reset_row(2);
 | 
			
		||||
  reset_row(3);
 | 
			
		||||
  reset_row(4);
 | 
			
		||||
  reset_row(5);
 | 
			
		||||
  reset_row(6);
 | 
			
		||||
  reset_row(7);
 | 
			
		||||
  reset_row(8);
 | 
			
		||||
  reset_row(9);
 | 
			
		||||
  if (counter == 0)
 | 
			
		||||
  {
 | 
			
		||||
    if (!_inizia_dopo)
 | 
			
		||||
    { 
 | 
			
		||||
      if (_anno_stampa == 0)
 | 
			
		||||
        set_row(3, "@120gPag. %ld", contatore);
 | 
			
		||||
      else        
 | 
			
		||||
        set_row(3, "@120gPag. %4d/%ld", _anno_stampa, contatore);
 | 
			
		||||
    }      
 | 
			
		||||
    int pos = printer().formlen() / 2 - 3;
 | 
			
		||||
    set_row(pos++, "@36g%-50s", (const char*) _descr);
 | 
			
		||||
    set_row(pos++, "@36g%-50s", (const char*) _ragsoc);
 | 
			
		||||
    TString s(_indulc);
 | 
			
		||||
    
 | 
			
		||||
    s << " " << _civulc ;
 | 
			
		||||
    set_row(pos++, "@36g%-52s", (const char*) s);
 | 
			
		||||
    s = _capulc; 
 | 
			
		||||
    s << " " << _com << " " << _prov;
 | 
			
		||||
    set_row(pos++, "@36g%-62s", (const char*) s);
 | 
			
		||||
    set_row(pos++, "@36gCODICE FISCALE %-16s", (const char*)_cofi);
 | 
			
		||||
    set_row(pos, "@36gPARTITA I.V.A. %-11s", (const char*) _paiv);
 | 
			
		||||
    
 | 
			
		||||
  }
 | 
			
		||||
  else if (counter == _num_pag - 1)       
 | 
			
		||||
  {
 | 
			
		||||
    set_row(1, "@1g%-50s", (const char*) _ragsoc);
 | 
			
		||||
    TString s(_indulc);
 | 
			
		||||
    
 | 
			
		||||
    s << " " << _civulc << " " << _capulc << " " << _com << " " << _prov;
 | 
			
		||||
    set_row(1, "@62g%-65s", (const char*) s);
 | 
			
		||||
    set_row(2, "@1g%-50s", (const char*) _descr);
 | 
			
		||||
    set_row(2, "@52gCODICE FISCALE %-16s", (const char*) _cofi);
 | 
			
		||||
    set_row(2, "@85gPARTITA I.V.A. %-11s", (const char*) _paiv);         
 | 
			
		||||
    if (_anno_stampa == 0)    
 | 
			
		||||
      set_row(2, "@120gPag. %ld", contatore);         
 | 
			
		||||
    else
 | 
			
		||||
      set_row(2, "@120gPag. %4d/%ld", _anno_stampa, contatore);         
 | 
			
		||||
    set_row(25, "@50gN. ........ DI REPERTORIO");
 | 
			
		||||
    set_row(27, "@50gIL PRESENTE LIBRO DELLA@75g%-50s", (const char*) _ragsoc);
 | 
			
		||||
 | 
			
		||||
    s = _indulc;
 | 
			
		||||
    s << " " << _civulc;
 | 
			
		||||
    set_row(29, "@50g%-52s", (const char*) s);
 | 
			
		||||
    s = _capulc; 
 | 
			
		||||
    s << " " << _com << " " << _prov;
 | 
			
		||||
    set_row(31, "@50g%-62s", (const char*) s);
 | 
			
		||||
    set_row(33, "@50gCONSTA DI %ld PAGINE UTILI, BOLLATE E NUMERATE", _num_pag - (_inizia_dopo ? 1 : 0));
 | 
			
		||||
    set_row(35, "@50gE VIENE OGGI VIDIMATO, il .........");
 | 
			
		||||
  }
 | 
			
		||||
  else
 | 
			
		||||
  { 
 | 
			
		||||
    set_row(1, "@1g%-50s", (const char*) _ragsoc);
 | 
			
		||||
    TString s(_indulc);
 | 
			
		||||
    
 | 
			
		||||
    s << " " << _civulc << " " << _capulc << " " << _com << " " << _prov;
 | 
			
		||||
    set_row(1, "@52g%-68s", (const char*) s);
 | 
			
		||||
    set_row(2, "@1g%-50s", (const char*) _descr);
 | 
			
		||||
    set_row(2, "@52gCODICE FISCALE %-16s", (const char*) _cofi);
 | 
			
		||||
    set_row(2, "@85gPARTITA I.V.A. %-11s", (const char*) _paiv);
 | 
			
		||||
    if (_anno_stampa == 0)
 | 
			
		||||
      set_row(2, "@120gPag. %ld", contatore);  
 | 
			
		||||
    else      
 | 
			
		||||
      set_row(2, "@120gPag. %4d/%ld", _anno_stampa, contatore);  
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool Libribollati_print::set_print(int)
 | 
			
		||||
{
 | 
			
		||||
  if (_msk->run() == K_ENTER) 
 | 
			
		||||
  {
 | 
			
		||||
    TPrinter& pr = printer();
 | 
			
		||||
    //pr.formlen(_msk->get_int(F_LUNG));
 | 
			
		||||
    int font_size = pr.calc_font_size(132);
 | 
			
		||||
    if (font_size != pr.get_char_size())
 | 
			
		||||
    {
 | 
			
		||||
      warning_box("Il font e' stato ridimensionato a %d punti per\n"
 | 
			
		||||
                  "adattarsi alle dimensioni attuali della pagina.", font_size);
 | 
			
		||||
      pr.set_char_size(font_size);
 | 
			
		||||
    } 
 | 
			
		||||
    _cod_reg      = _msk->get(F_CODICE);
 | 
			
		||||
    _cod_anno     = _msk->get_int(F_ANNO);
 | 
			
		||||
    _pag_ini      = _msk->get_long(F_NPAGINI);
 | 
			
		||||
    _pag_fin      = _msk->get_long(F_NPAGFI);
 | 
			
		||||
    _inizia_dopo  = _msk->get_bool(F_PRIMO);
 | 
			
		||||
    _num_pag      = (_pag_fin - _pag_ini) + 1;
 | 
			
		||||
    _ragsoc       = _msk->get(F_RAGSOC);
 | 
			
		||||
    _indulc       = _msk->get(F_INDIRIZZO);
 | 
			
		||||
    _civulc       = _msk->get(F_CIV);
 | 
			
		||||
    _capulc       = _msk->get(F_CAP);
 | 
			
		||||
    _comulc       = _msk->get(F_CODCOM);
 | 
			
		||||
    _com          = _msk->get(F_COM);
 | 
			
		||||
    _prov         = _msk->get(F_PROV);
 | 
			
		||||
    _paiv         = _msk->get(F_PAIV);
 | 
			
		||||
    _cofi         = _msk->get(F_COFI);
 | 
			
		||||
    _anno_stampa  = _msk->get_int(F_ANNOSTAMPA);
 | 
			
		||||
    _descr 				= _msk->get(F_REGISTRO);
 | 
			
		||||
    if (_inizia_dopo) _num_pag++; 
 | 
			
		||||
    enable_print_menu();      
 | 
			
		||||
    return TRUE;
 | 
			
		||||
  }
 | 
			
		||||
  return FALSE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static bool registro_handler(TMask_field& field, KEY key)
 | 
			
		||||
{
 | 
			
		||||
  if (key == K_TAB && field.focusdirty())
 | 
			
		||||
  {
 | 
			
		||||
    //field.mask().set(F_LUNG,66);
 | 
			
		||||
    field.mask().set(F_NPAGINI, 0L);
 | 
			
		||||
    field.mask().set(F_NPAGFI, 0L);
 | 
			
		||||
  } 
 | 
			
		||||
  return TRUE;
 | 
			
		||||
}
 | 
			
		||||
static bool codditta_handler(TMask_field& field, KEY key)
 | 
			
		||||
{ 
 | 
			
		||||
  if (key == K_TAB && field.focusdirty())
 | 
			
		||||
  { 
 | 
			
		||||
    TMask& m = field.mask();
 | 
			
		||||
    const long codditta = m.get_long(F_CODDITTA);
 | 
			
		||||
    if (codditta == 0)
 | 
			
		||||
      m.reset();      
 | 
			
		||||
    else
 | 
			
		||||
    {   
 | 
			
		||||
      TLocalisamfile nditte(LF_NDITTE);
 | 
			
		||||
      TLocalisamfile unloc(LF_UNLOC);
 | 
			
		||||
      TLocalisamfile comuni(LF_COMUNI);
 | 
			
		||||
      TLocalisamfile anag(LF_ANAG);
 | 
			
		||||
      
 | 
			
		||||
      nditte.setkey(1);
 | 
			
		||||
      nditte.zero();
 | 
			
		||||
      nditte.put(N_CODDITTA, codditta);   
 | 
			
		||||
      nditte.read();                 
 | 
			
		||||
      if (nditte.bad()) 
 | 
			
		||||
        return error_box("Il codice ditta %d non esiste", codditta);
 | 
			
		||||
      const bool exist_firm = prefix().exist(codditta);  
 | 
			
		||||
      if (exist_firm)
 | 
			
		||||
        app().set_firm(codditta);
 | 
			
		||||
      m.hide(exist_firm ? -4 : -3);
 | 
			
		||||
      m.show(exist_firm ? -3 : -4);
 | 
			
		||||
      //else        
 | 
			
		||||
      //{
 | 
			
		||||
        //m.field(F_ANNO).hide();
 | 
			
		||||
        //m.field(F_CODICE).hide();
 | 
			
		||||
        //m.field(F_ANNOREG).show();
 | 
			
		||||
        //m.field(F_CODICEREG).show();
 | 
			
		||||
      //}
 | 
			
		||||
      app()._ragsoc = "SOCIETA' ";
 | 
			
		||||
      app()._ragsoc << nditte.get(N_RAGSOC);
 | 
			
		||||
      m.set(F_RAGSOC,app()._ragsoc);
 | 
			
		||||
  
 | 
			
		||||
      const TString16 tipoa = nditte.get(N_TIPOA);
 | 
			
		||||
      const long codanagr = atol(nditte.get(N_CODANAGR));
 | 
			
		||||
    
 | 
			
		||||
      unloc.setkey(1);
 | 
			
		||||
      unloc.zero();
 | 
			
		||||
      unloc.put(N_CODDITTA, codditta);
 | 
			
		||||
      unloc.put(N_CODULC,"1");
 | 
			
		||||
      unloc.read();
 | 
			
		||||
      app()._indulc = unloc.get(N_INDULC);
 | 
			
		||||
      m.set(F_INDIRIZZO, app()._indulc);
 | 
			
		||||
      app()._civulc = unloc.get(N_CIVULC);
 | 
			
		||||
      m.set(F_CIV, app()._civulc);
 | 
			
		||||
      app()._capulc = unloc.get(N_CAPULC);
 | 
			
		||||
      m.set(F_CAP, app()._capulc);
 | 
			
		||||
      app()._comulc = unloc.get(N_COMULC);
 | 
			
		||||
      m.set(F_CODCOM, app()._comulc);
 | 
			
		||||
    
 | 
			
		||||
      comuni.setkey(1);
 | 
			
		||||
      comuni.zero();
 | 
			
		||||
      comuni.put(N_CODCOM, app()._comulc);
 | 
			
		||||
      comuni.read();
 | 
			
		||||
      app()._com = comuni.get(N_COM);
 | 
			
		||||
      m.set(F_COM, app()._com);
 | 
			
		||||
      app()._prov = comuni.get(N_PROV);
 | 
			
		||||
      m.set(F_PROV, app()._prov);
 | 
			
		||||
    
 | 
			
		||||
      anag.setkey(1);  
 | 
			
		||||
      anag.zero();
 | 
			
		||||
      anag.put(N_TIPOA, tipoa);
 | 
			
		||||
      anag.put(N_CODANAGR, codanagr);
 | 
			
		||||
      anag.read();
 | 
			
		||||
      app()._cofi = anag.get(N_COFI);
 | 
			
		||||
      m.set(F_COFI, app()._cofi);
 | 
			
		||||
      app()._paiv = anag.get(N_PAIV);
 | 
			
		||||
      m.set(F_PAIV, app()._paiv);
 | 
			
		||||
    }   
 | 
			
		||||
  }   
 | 
			
		||||
  return TRUE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool Libribollati_print::user_create()
 | 
			
		||||
{
 | 
			
		||||
  if (get_firm() == 0L)
 | 
			
		||||
    if (!set_firm()) return FALSE;
 | 
			
		||||
 | 
			
		||||
  enable_print_menu();
 | 
			
		||||
  _nditte = new TLocalisamfile(LF_NDITTE);
 | 
			
		||||
  _unloc =  new TLocalisamfile(LF_UNLOC);
 | 
			
		||||
  _comuni = new TLocalisamfile(LF_COMUNI);
 | 
			
		||||
  _anag =   new TLocalisamfile(LF_ANAG);
 | 
			
		||||
  _tab =    new TTable("REG");
 | 
			
		||||
 | 
			
		||||
  _msk = new TMask("ba3300a") ;
 | 
			
		||||
  _msk->set_handler(F_REGISTRO, registro_handler);
 | 
			
		||||
  _msk->set_handler(F_CODDITTA, codditta_handler);
 | 
			
		||||
  
 | 
			
		||||
  add_cursor(NULL);
 | 
			
		||||
  set_auto_ff(TRUE);
 | 
			
		||||
  return TRUE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool Libribollati_print::user_destroy()
 | 
			
		||||
{
 | 
			
		||||
  delete  _msk;
 | 
			
		||||
  delete  _nditte;
 | 
			
		||||
  delete  _unloc;
 | 
			
		||||
  delete  _comuni;
 | 
			
		||||
  delete  _anag;
 | 
			
		||||
  delete  _tab;   
 | 
			
		||||
  if (_p != NULL) delete _p;
 | 
			
		||||
  return TRUE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int ba3300(int argc, char* argv[])
 | 
			
		||||
{
 | 
			
		||||
  Libribollati_print a;
 | 
			
		||||
  a.run(argc, argv, "Stampa fogli libri bollati");
 | 
			
		||||
  return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -14,7 +14,7 @@ BEGIN
 | 
			
		||||
  FLAGS "R"
 | 
			
		||||
  USE LF_NDITTE KEY 1
 | 
			
		||||
  INPUT CODDITTA F_CODDITTA
 | 
			
		||||
  DISPLAY "Codice" CODDITTA
 | 
			
		||||
  DISPLAY "Codice@10" CODDITTA
 | 
			
		||||
  DISPLAY "Ragione sociale@50" RAGSOC
 | 
			
		||||
  OUTPUT F_CODDITTA CODDITTA
 | 
			
		||||
  OUTPUT F_RAGSOC RAGSOC
 | 
			
		||||
@ -24,14 +24,14 @@ BEGIN
 | 
			
		||||
  MESSAGE EMPTY DISABLE,3@
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING F_RAGSOC 60 50
 | 
			
		||||
STRING F_RAGSOC 50
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 2 3 "Rag. Soc.  "
 | 
			
		||||
  USE LF_NDITTE KEY 2
 | 
			
		||||
  HELP "Ragione sociale dell'intestatario del libro bollato"
 | 
			
		||||
  INPUT RAGSOC F_RAGSOC
 | 
			
		||||
  DISPLAY "Ragione sociale@50" RAGSOC
 | 
			
		||||
  DISPLAY "Codice" CODDITTA
 | 
			
		||||
  DISPLAY "Codice@10" CODDITTA
 | 
			
		||||
  COPY OUTPUT F_CODDITTA
 | 
			
		||||
  CHECKTYPE SEARCH
 | 
			
		||||
  VALIDATE NOT_EMPTY_FUNC
 | 
			
		||||
@ -67,6 +67,7 @@ BEGIN
 | 
			
		||||
  OUTPUT F_CODCOM COM
 | 
			
		||||
  OUTPUT F_COM DENCOM
 | 
			
		||||
  OUTPUT F_PROV PROVCOM
 | 
			
		||||
  OUTPUT F_CAP CAPCOM
 | 
			
		||||
  CHECKTYPE NORMAL
 | 
			
		||||
  WARNING "Comune assente"
 | 
			
		||||
  HELP "Codice del comune dell'intestatario"
 | 
			
		||||
@ -119,12 +120,13 @@ END
 | 
			
		||||
STRING F_COFI 16
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 2 8 "Cod. fisc. "
 | 
			
		||||
  FLAGS "U"
 | 
			
		||||
  HELP "Codice fiscale dell'intestatario"
 | 
			
		||||
  VALIDATE CF_FUNC F_STATO
 | 
			
		||||
  WARNING "Codice fiscale errato"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
GROUPBOX DLG_NULL 77 9
 | 
			
		||||
GROUPBOX DLG_NULL 77 7
 | 
			
		||||
BEGIN
 | 
			
		||||
   PROMPT 1 10 "Dati registro"
 | 
			
		||||
END
 | 
			
		||||
@ -258,7 +260,7 @@ END
 | 
			
		||||
 | 
			
		||||
NUMBER F_NPAGFI 6
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 2 15 "Numero pagina finale   "
 | 
			
		||||
  PROMPT 42 14 "Numero pagina finale "
 | 
			
		||||
  HELP "Numero dell'ultima pagina da numerare"
 | 
			
		||||
  FLAGS "R"
 | 
			
		||||
  NUM_EXPR {#THIS_FIELD>=(#F_NPAGINI+2)}
 | 
			
		||||
@ -267,13 +269,13 @@ END
 | 
			
		||||
 | 
			
		||||
BOOLEAN F_PRIMO
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 2 16 "Inizio numerazione dopo primo foglio "
 | 
			
		||||
  PROMPT 2 15 "Inizio numerazione dopo primo foglio "
 | 
			
		||||
  HELP "Indicare se iniziare la numerazione nel secondo foglio"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
NUMBER F_ANNOSTAMPA 4
 | 
			
		||||
BEGIN
 | 
			
		||||
   PROMPT 2 17 "Anno per numerazione pagina "
 | 
			
		||||
   PROMPT 42 15 "Anno per numerazione pagina "
 | 
			
		||||
   HELP "Indicare l'anno se si vuole la numerazione pagine con indicazione anno"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user