Patch level :1.7 avis
Files correlati :at1.exe atet10bo.frm Ricompilazione Demo : [ ] Commento :aggiunta stampa comune nelle etichette per benemerenze aziendali (una cosa da avis!) git-svn-id: svn://10.65.10.50/trunk@10007 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
		
							parent
							
								
									6fada6830c
								
							
						
					
					
						commit
						d44619b4a3
					
				
							
								
								
									
										526
									
								
								at/at1400.cpp
									
									
									
									
									
								
							
							
						
						
									
										526
									
								
								at/at1400.cpp
									
									
									
									
									
								
							@ -13,16 +13,16 @@
 | 
			
		||||
#include "at1400a.h"
 | 
			
		||||
#include "atlib.h"
 | 
			
		||||
 | 
			
		||||
#define ALIAS_BNZ	600
 | 
			
		||||
#define ALIAS_GAZ	300
 | 
			
		||||
#define ALIAS_BNZ 600
 | 
			
		||||
#define ALIAS_GAZ 300
 | 
			
		||||
 | 
			
		||||
#define ALIAS_LCPRES	101		// localita' postale di residenza
 | 
			
		||||
#define ALIAS_LCPDOM	100		// localita' postale di domicilio
 | 
			
		||||
#define ALIAS_COMRES 	502		// comune di residenza
 | 
			
		||||
#define ALIAS_COMDOM 	501		// comune di domicilio
 | 
			
		||||
#define ALIAS_COMNAS 	500		// comune di nascita
 | 
			
		||||
#define ALIAS_LCPRES  101   // localita' postale di residenza
 | 
			
		||||
#define ALIAS_LCPDOM  100   // localita' postale di domicilio
 | 
			
		||||
#define ALIAS_COMRES  502   // comune di residenza
 | 
			
		||||
#define ALIAS_COMDOM  501   // comune di domicilio
 | 
			
		||||
#define ALIAS_COMNAS  500   // comune di nascita
 | 
			
		||||
 | 
			
		||||
#define ETI_COGNOME 3			// numero campo cognome e nome in etichetta (deve essere sempre cosi') per famiglie
 | 
			
		||||
#define ETI_COGNOME 3     // numero campo cognome e nome in etichetta (deve essere sempre cosi') per famiglie
 | 
			
		||||
 | 
			
		||||
enum ts { undefined=0, sintetico=1, completo=2, etichette=3 };
 | 
			
		||||
 | 
			
		||||
@ -30,33 +30,33 @@ enum ts { undefined=0, sintetico=1, completo=2, etichette=3 };
 | 
			
		||||
class TEti_bengru_form : public TForm
 | 
			
		||||
{
 | 
			
		||||
public:
 | 
			
		||||
	
 | 
			
		||||
	virtual TCursor* cursor() const;
 | 
			
		||||
	virtual TRelation* relation() const;
 | 
			
		||||
	TPrint_section& get_body() { return section('B'); } ;
 | 
			
		||||
	TPrint_section& get_head() { return section('H'); } ;
 | 
			
		||||
	TPrint_section& get_foot() { return section('F'); } ;
 | 
			
		||||
  
 | 
			
		||||
  virtual TCursor* cursor() const;
 | 
			
		||||
  virtual TRelation* relation() const;
 | 
			
		||||
  TPrint_section& get_body() { return section('B'); } ;
 | 
			
		||||
  TPrint_section& get_head() { return section('H'); } ;
 | 
			
		||||
  TPrint_section& get_foot() { return section('F'); } ;
 | 
			
		||||
  TEti_bengru_form(): TForm() {};
 | 
			
		||||
  TEti_bengru_form(const char* form, const char * code = "", int editlevel = 0, const char* desc = "")
 | 
			
		||||
    						: TForm(form,code,editlevel,desc) {};
 | 
			
		||||
                : TForm(form,code,editlevel,desc) {};
 | 
			
		||||
  virtual ~TEti_bengru_form() {};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
class TStampaBenxGAz : public TPrintapp
 | 
			
		||||
{
 | 
			
		||||
  TRelation*					_rel;
 | 
			
		||||
  TMask*      				_msk;
 | 
			
		||||
  TEti_bengru_form*		_form_eti;
 | 
			
		||||
  int 								_cur;
 | 
			
		||||
  char								_tiposta;
 | 
			
		||||
  TDate								_dataini, _datafin;
 | 
			
		||||
	TString16						_codsez, _codsot;
 | 
			
		||||
  TParagraph_string 	_cognome_nome, _dencom;
 | 
			
		||||
  TString16						_gruppoazie, _gruppoold, _tipoold;
 | 
			
		||||
  int 								_contatore;
 | 
			
		||||
	ts									_tipostampa;
 | 
			
		||||
  int								  _etlarghezza, _etcolonne;
 | 
			
		||||
  bool							  _stampa80, _etictot;
 | 
			
		||||
  TRelation*          _rel;
 | 
			
		||||
  TMask*              _msk;
 | 
			
		||||
  TEti_bengru_form*   _form_eti;
 | 
			
		||||
  int                 _cur;
 | 
			
		||||
  char                _tiposta;
 | 
			
		||||
  TDate               _dataini, _datafin;
 | 
			
		||||
  TString16           _codsez, _codsot;
 | 
			
		||||
  TParagraph_string   _cognome_nome, _dencom;
 | 
			
		||||
  TString16           _gruppoazie, _gruppoold, _tipoold;
 | 
			
		||||
  int                 _contatore;
 | 
			
		||||
  ts                  _tipostampa;
 | 
			
		||||
  int                 _etlarghezza, _etcolonne;
 | 
			
		||||
  bool                _stampa80, _etictot;
 | 
			
		||||
  
 | 
			
		||||
protected:
 | 
			
		||||
  virtual bool user_create();
 | 
			
		||||
@ -82,277 +82,277 @@ TRelation* TEti_bengru_form::relation() const { return cursor()->relation(); }
 | 
			
		||||
 | 
			
		||||
print_action TStampaBenxGAz::postprocess_print(int file, int counter)
 | 
			
		||||
{ 
 | 
			
		||||
	if (_contatore > 0)
 | 
			
		||||
		footer_gruppo();
 | 
			
		||||
	return NEXT_PAGE;
 | 
			
		||||
  if (_contatore > 0)
 | 
			
		||||
    footer_gruppo();
 | 
			
		||||
  return NEXT_PAGE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void TStampaBenxGAz::footer_gruppo()
 | 
			
		||||
{
 | 
			
		||||
	// stampa totale benemerenze attribuite al gruppo
 | 
			
		||||
	reset_footer();
 | 
			
		||||
	TString sep(80);
 | 
			
		||||
	sep.fill('-');
 | 
			
		||||
	set_footer(2, (const char *) sep);
 | 
			
		||||
	set_footer(3,"TOTALE SOGGETTI STAMPATI %d", _contatore);
 | 
			
		||||
	printer().formfeed(); 
 | 
			
		||||
	reset_footer();
 | 
			
		||||
  // stampa totale benemerenze attribuite al gruppo
 | 
			
		||||
  reset_footer();
 | 
			
		||||
  TString sep(80);
 | 
			
		||||
  sep.fill('-');
 | 
			
		||||
  set_footer(2, (const char *) sep);
 | 
			
		||||
  set_footer(3,"TOTALE SOGGETTI STAMPATI %d", _contatore);
 | 
			
		||||
  printer().formfeed(); 
 | 
			
		||||
  reset_footer();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void TStampaBenxGAz::set_page(int file, int cnt)
 | 
			
		||||
{
 | 
			
		||||
	switch (_tipostampa)
 | 
			
		||||
	{
 | 
			
		||||
		case etichette:
 | 
			
		||||
		{ 
 | 
			
		||||
			TPrint_section& corpo = _form_eti->get_body();
 | 
			
		||||
			for (int r=1;r<=_etcolonne;r++)
 | 
			
		||||
			{                     
 | 
			
		||||
				if (current_cursor()->pos()<current_cursor()->items())
 | 
			
		||||
				{ 
 | 
			
		||||
					bool avanza = TRUE;
 | 
			
		||||
					while (avanza)
 | 
			
		||||
					{
 | 
			
		||||
						if (current_cursor()->pos()<current_cursor()->items())
 | 
			
		||||
							avanza = !(preprocess_page(file, cnt));
 | 
			
		||||
						else
 | 
			
		||||
							avanza = FALSE;
 | 
			
		||||
						if (avanza)             
 | 
			
		||||
							++(*current_cursor());
 | 
			
		||||
					}								
 | 
			
		||||
					force_setpage(TRUE);
 | 
			
		||||
				  TForm_item& cognome = corpo.find_field(ETI_COGNOME);
 | 
			
		||||
				  cognome.set(_cognome_nome);					
 | 
			
		||||
					corpo.update();                                                     
 | 
			
		||||
  				for (word i = 0; i < corpo.height(); i++)
 | 
			
		||||
  				{
 | 
			
		||||
  					TPrintrow& riga = corpo.row(i);
 | 
			
		||||
  					TString256 riga1 = riga.row();
 | 
			
		||||
						riga1.cut(_etlarghezza);
 | 
			
		||||
  					int colonna = ((r-1)*_etlarghezza);
 | 
			
		||||
  					TString16 formato;
 | 
			
		||||
  					formato << '@' << colonna << 'g';
 | 
			
		||||
  					riga1.insert(formato,0);
 | 
			
		||||
  					set_row(i+1,riga1);
 | 
			
		||||
					}
 | 
			
		||||
					if (r < _etcolonne)  			
 | 
			
		||||
					{   
 | 
			
		||||
						bool avanza = TRUE;
 | 
			
		||||
						while (avanza)
 | 
			
		||||
						{
 | 
			
		||||
							++(*current_cursor());
 | 
			
		||||
							if (current_cursor()->pos()<current_cursor()->items())
 | 
			
		||||
								avanza = !(preprocess_page(file, cnt));
 | 
			
		||||
							else
 | 
			
		||||
								avanza = FALSE;								
 | 
			
		||||
						}								
 | 
			
		||||
					}						
 | 
			
		||||
				}					
 | 
			
		||||
			}				
 | 
			
		||||
		}
 | 
			
		||||
		break;
 | 
			
		||||
  switch (_tipostampa)
 | 
			
		||||
  {
 | 
			
		||||
    case etichette:
 | 
			
		||||
    { 
 | 
			
		||||
      TPrint_section& corpo = _form_eti->get_body();
 | 
			
		||||
      for (int r=1;r<=_etcolonne;r++)
 | 
			
		||||
      {                     
 | 
			
		||||
        if (current_cursor()->pos()<current_cursor()->items())
 | 
			
		||||
        { 
 | 
			
		||||
          bool avanza = TRUE;
 | 
			
		||||
          while (avanza)
 | 
			
		||||
          {
 | 
			
		||||
            if (current_cursor()->pos()<current_cursor()->items())
 | 
			
		||||
              avanza = !(preprocess_page(file, cnt));
 | 
			
		||||
            else
 | 
			
		||||
              avanza = FALSE;
 | 
			
		||||
            if (avanza)             
 | 
			
		||||
              ++(*current_cursor());
 | 
			
		||||
          }               
 | 
			
		||||
          force_setpage(TRUE);
 | 
			
		||||
          TForm_item& cognome = corpo.find_field(ETI_COGNOME);
 | 
			
		||||
          cognome.set(_cognome_nome);         
 | 
			
		||||
          corpo.update();                                                     
 | 
			
		||||
          for (word i = 0; i < corpo.height(); i++)
 | 
			
		||||
          {
 | 
			
		||||
            TPrintrow& riga = corpo.row(i);
 | 
			
		||||
            TString256 riga1 = riga.row();
 | 
			
		||||
            riga1.cut(_etlarghezza);
 | 
			
		||||
            int colonna = ((r-1)*_etlarghezza);
 | 
			
		||||
            TString16 formato;
 | 
			
		||||
            formato << '@' << colonna << 'g';
 | 
			
		||||
            riga1.insert(formato,0);
 | 
			
		||||
            set_row(i+1,riga1);
 | 
			
		||||
          }
 | 
			
		||||
          if (r < _etcolonne)       
 | 
			
		||||
          {   
 | 
			
		||||
            bool avanza = TRUE;
 | 
			
		||||
            while (avanza)
 | 
			
		||||
            {
 | 
			
		||||
              ++(*current_cursor());
 | 
			
		||||
              if (current_cursor()->pos()<current_cursor()->items())
 | 
			
		||||
                avanza = !(preprocess_page(file, cnt));
 | 
			
		||||
              else
 | 
			
		||||
                avanza = FALSE;               
 | 
			
		||||
            }               
 | 
			
		||||
          }           
 | 
			
		||||
        }         
 | 
			
		||||
      }       
 | 
			
		||||
    }
 | 
			
		||||
    break;
 | 
			
		||||
    case completo:
 | 
			
		||||
    {
 | 
			
		||||
			set_row(1,"@0g@pn", FLD(LF_SOGGETTI,SOG_CODICE,"########"));
 | 
			
		||||
			set_row(1,"@9g@S", FLD(LF_SOGGETTI,SOG_CATDON));
 | 
			
		||||
			set_row(1,"@12g#a", &_cognome_nome);
 | 
			
		||||
			set_row(1,"@38g@ld", FLD(LF_SOGGETTI,SOG_DATANASC));
 | 
			
		||||
			set_row(1,"@49g@S", FLD(LF_SOGGETTI,SOG_DOM_INDIR));
 | 
			
		||||
			set_row(1,"@100g@S", FLD(LF_SOGGETTI,SOG_TELABI));
 | 
			
		||||
			set_row(1,"@116g@S", FLD(LF_SOGGETTI,SOG_TELLAV));
 | 
			
		||||
			set_row(2,"@0g@S", FLD(LF_SOGGETTI,SOG_TESSAVIS));
 | 
			
		||||
			set_row(2,"@49g#a", &_dencom);
 | 
			
		||||
			set_row(2,"@116g@S", FLD(LF_SOGGETTI,SOG_TELALT));
 | 
			
		||||
			set_row(3,"@100g@pn", FLD(LF_SOGGETTI,SOG_TOTDON,"###"));
 | 
			
		||||
			set_row(4,"");
 | 
			
		||||
			
 | 
			
		||||
		}
 | 
			
		||||
		break;
 | 
			
		||||
      set_row(1,"@0g@pn", FLD(LF_SOGGETTI,SOG_CODICE,"########"));
 | 
			
		||||
      set_row(1,"@9g@S", FLD(LF_SOGGETTI,SOG_CATDON));
 | 
			
		||||
      set_row(1,"@12g#a", &_cognome_nome);
 | 
			
		||||
      set_row(1,"@38g@ld", FLD(LF_SOGGETTI,SOG_DATANASC));
 | 
			
		||||
      set_row(1,"@49g@S", FLD(LF_SOGGETTI,SOG_DOM_INDIR));
 | 
			
		||||
      set_row(1,"@100g@S", FLD(LF_SOGGETTI,SOG_TELABI));
 | 
			
		||||
      set_row(1,"@116g@S", FLD(LF_SOGGETTI,SOG_TELLAV));
 | 
			
		||||
      set_row(2,"@0g@S", FLD(LF_SOGGETTI,SOG_TESSAVIS));
 | 
			
		||||
      set_row(2,"@49g#a", &_dencom);
 | 
			
		||||
      set_row(2,"@116g@S", FLD(LF_SOGGETTI,SOG_TELALT));
 | 
			
		||||
      set_row(3,"@100g@pn", FLD(LF_SOGGETTI,SOG_TOTDON,"###"));
 | 
			
		||||
      set_row(4,"");
 | 
			
		||||
      
 | 
			
		||||
    }
 | 
			
		||||
    break;
 | 
			
		||||
    case sintetico:
 | 
			
		||||
    {
 | 
			
		||||
			set_row(1,"@0g#a", &_cognome_nome);
 | 
			
		||||
		}			
 | 
			
		||||
		break;			
 | 
			
		||||
	}		
 | 
			
		||||
      set_row(1,"@0g#a", &_cognome_nome);
 | 
			
		||||
    }     
 | 
			
		||||
    break;      
 | 
			
		||||
  }   
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool TStampaBenxGAz::preprocess_page(int file, int counter)
 | 
			
		||||
{      
 | 
			
		||||
	if (_tipostampa==sintetico||_tipostampa==completo)
 | 
			
		||||
  if (_tipostampa==sintetico||_tipostampa==completo)
 | 
			
		||||
  {
 | 
			
		||||
		TString80 nome = current_cursor()->curr(LF_SOGGETTI).get(SOG_COGNOME);
 | 
			
		||||
		nome << " ";
 | 
			
		||||
		nome << current_cursor()->curr(LF_SOGGETTI).get(SOG_NOME);
 | 
			
		||||
		_cognome_nome = nome;
 | 
			
		||||
		TString256 localita = "";
 | 
			
		||||
		localita = current_cursor()->curr(LF_SOGGETTI).get(SOG_DOM_CAP);
 | 
			
		||||
		localita << " ";
 | 
			
		||||
		if (current_cursor()->curr(LF_SOGGETTI).get(SOG_DOM_CODLOC).not_empty())
 | 
			
		||||
		{
 | 
			
		||||
			localita << current_cursor()->curr(-ALIAS_LCPDOM).get("S0");
 | 
			
		||||
			localita << " - ";		
 | 
			
		||||
		}	
 | 
			
		||||
		localita << current_cursor()->curr(-ALIAS_COMDOM).get(COM_DENCOM);
 | 
			
		||||
		localita.trim();
 | 
			
		||||
		_dencom = localita;
 | 
			
		||||
		// salto pagina se cambio punto di rottura
 | 
			
		||||
		TString16 grupponew;
 | 
			
		||||
		if (app()._tiposta == 'S')
 | 
			
		||||
			grupponew = current_cursor()->curr(LF_SOGGETTI).get(SOG_GRUPPOAZIE);		
 | 
			
		||||
		else
 | 
			
		||||
			grupponew = current_cursor()->curr().get(BEN_GRUPPOAZIE);		
 | 
			
		||||
		if (grupponew != _gruppoold )
 | 
			
		||||
		{
 | 
			
		||||
			if (_gruppoold != "**")
 | 
			
		||||
				footer_gruppo();
 | 
			
		||||
			_contatore = 0;				
 | 
			
		||||
			_gruppoold = grupponew;
 | 
			
		||||
			header_gruppo(grupponew);
 | 
			
		||||
			_tipoold = "**";
 | 
			
		||||
		}
 | 
			
		||||
		TString16 tiponew = current_cursor()->curr().get(BEN_TIPOBEN);					
 | 
			
		||||
		if (tiponew != _tipoold)
 | 
			
		||||
		{
 | 
			
		||||
			TPrintrow riga;
 | 
			
		||||
			printer().print(riga);		
 | 
			
		||||
			riga.reset();
 | 
			
		||||
			riga.put(current_cursor()->curr(-ALIAS_BNZ).get("S0"));
 | 
			
		||||
			_tipoold = tiponew;   
 | 
			
		||||
			if (printer().rows_left() < 3)
 | 
			
		||||
				printer().formfeed();
 | 
			
		||||
			printer().print(riga);
 | 
			
		||||
			riga.reset();
 | 
			
		||||
			printer().print(riga);
 | 
			
		||||
		}	
 | 
			
		||||
		if (printer().rows_left() < 4)
 | 
			
		||||
			printer().formfeed();
 | 
			
		||||
	}			     
 | 
			
		||||
	if (_tipostampa==etichette)		
 | 
			
		||||
		if (printer().rows_left() < _form_eti->get_body().height())
 | 
			
		||||
			printer().formfeed();
 | 
			
		||||
	_contatore++;			
 | 
			
		||||
    TString80 nome = current_cursor()->curr(LF_SOGGETTI).get(SOG_COGNOME);
 | 
			
		||||
    nome << " ";
 | 
			
		||||
    nome << current_cursor()->curr(LF_SOGGETTI).get(SOG_NOME);
 | 
			
		||||
    _cognome_nome = nome;
 | 
			
		||||
    TString256 localita = "";
 | 
			
		||||
    localita = current_cursor()->curr(LF_SOGGETTI).get(SOG_DOM_CAP);
 | 
			
		||||
    localita << " ";
 | 
			
		||||
    if (current_cursor()->curr(LF_SOGGETTI).get(SOG_DOM_CODLOC).not_empty())
 | 
			
		||||
    {
 | 
			
		||||
      localita << current_cursor()->curr(-ALIAS_LCPDOM).get("S0");
 | 
			
		||||
      localita << " - ";    
 | 
			
		||||
    } 
 | 
			
		||||
    localita << current_cursor()->curr(-ALIAS_COMDOM).get(COM_DENCOM);
 | 
			
		||||
    localita.trim();
 | 
			
		||||
    _dencom = localita;
 | 
			
		||||
    // salto pagina se cambio punto di rottura
 | 
			
		||||
    TString16 grupponew;
 | 
			
		||||
    if (app()._tiposta == 'S')
 | 
			
		||||
      grupponew = current_cursor()->curr(LF_SOGGETTI).get(SOG_GRUPPOAZIE);    
 | 
			
		||||
    else
 | 
			
		||||
      grupponew = current_cursor()->curr().get(BEN_GRUPPOAZIE);   
 | 
			
		||||
    if (grupponew != _gruppoold )
 | 
			
		||||
    {
 | 
			
		||||
      if (_gruppoold != "**")
 | 
			
		||||
        footer_gruppo();
 | 
			
		||||
      _contatore = 0;       
 | 
			
		||||
      _gruppoold = grupponew;
 | 
			
		||||
      header_gruppo(grupponew);
 | 
			
		||||
      _tipoold = "**";
 | 
			
		||||
    }
 | 
			
		||||
    TString16 tiponew = current_cursor()->curr().get(BEN_TIPOBEN);          
 | 
			
		||||
    if (tiponew != _tipoold)
 | 
			
		||||
    {
 | 
			
		||||
      TPrintrow riga;
 | 
			
		||||
      printer().print(riga);    
 | 
			
		||||
      riga.reset();
 | 
			
		||||
      riga.put(current_cursor()->curr(-ALIAS_BNZ).get("S0"));
 | 
			
		||||
      _tipoold = tiponew;   
 | 
			
		||||
      if (printer().rows_left() < 3)
 | 
			
		||||
        printer().formfeed();
 | 
			
		||||
      printer().print(riga);
 | 
			
		||||
      riga.reset();
 | 
			
		||||
      printer().print(riga);
 | 
			
		||||
    } 
 | 
			
		||||
    if (printer().rows_left() < 4)
 | 
			
		||||
      printer().formfeed();
 | 
			
		||||
  }          
 | 
			
		||||
  if (_tipostampa==etichette)   
 | 
			
		||||
    if (printer().rows_left() < _form_eti->get_body().height())
 | 
			
		||||
      printer().formfeed();
 | 
			
		||||
  _contatore++;     
 | 
			
		||||
  return TRUE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void TStampaBenxGAz::header_gruppo(const TString16 gruppo)
 | 
			
		||||
{                 
 | 
			
		||||
	TString intestazione(132);
 | 
			
		||||
	intestazione = "GRUPPO AZIENDALE ";
 | 
			
		||||
	intestazione << gruppo;
 | 
			
		||||
	intestazione << " - ";
 | 
			
		||||
	TTable gaz("GAZ");
 | 
			
		||||
	gaz.zero();
 | 
			
		||||
	gaz.put("CODTAB",gruppo);
 | 
			
		||||
	if (gaz.read() == NOERR)
 | 
			
		||||
		intestazione << gaz.get("S0");
 | 
			
		||||
	if (_tipostampa==completo)
 | 
			
		||||
		intestazione.center_just(132);	
 | 
			
		||||
	if (_tipostampa==sintetico)
 | 
			
		||||
		intestazione.left_just(132);		
 | 
			
		||||
	set_header(2,"@0g%s", (const char*) intestazione);
 | 
			
		||||
	return;
 | 
			
		||||
  TString intestazione(132);
 | 
			
		||||
  intestazione = "GRUPPO AZIENDALE ";
 | 
			
		||||
  intestazione << gruppo;
 | 
			
		||||
  intestazione << " - ";
 | 
			
		||||
  TTable gaz("GAZ");
 | 
			
		||||
  gaz.zero();
 | 
			
		||||
  gaz.put("CODTAB",gruppo);
 | 
			
		||||
  if (gaz.read() == NOERR)
 | 
			
		||||
    intestazione << gaz.get("S0");
 | 
			
		||||
  if (_tipostampa==completo)
 | 
			
		||||
    intestazione.center_just(132);  
 | 
			
		||||
  if (_tipostampa==sintetico)
 | 
			
		||||
    intestazione.left_just(132);    
 | 
			
		||||
  set_header(2,"@0g%s", (const char*) intestazione);
 | 
			
		||||
  return;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool TStampaBenxGAz::set_print(int m)
 | 
			
		||||
{ 
 | 
			
		||||
  TPrinter& p = printer();
 | 
			
		||||
	p.read_configuration();
 | 
			
		||||
	_tipostampa = undefined;
 | 
			
		||||
  p.read_configuration();
 | 
			
		||||
  _tipostampa = undefined;
 | 
			
		||||
  KEY tasto;
 | 
			
		||||
  tasto = _msk->run();
 | 
			
		||||
  switch (tasto)
 | 
			
		||||
  {
 | 
			
		||||
	  case F_SINTETICO:
 | 
			
		||||
	  	_tipostampa=sintetico;
 | 
			
		||||
	 	break;
 | 
			
		||||
	  case F_COMPLETO:
 | 
			
		||||
	  	_tipostampa=completo;
 | 
			
		||||
	 	break;
 | 
			
		||||
	  case F_ETICHETTE:
 | 
			
		||||
			_tipostampa = (configura_stampante(p, "AT_ETICHETTE", "etichette")) ? etichette : undefined;
 | 
			
		||||
		break;  	
 | 
			
		||||
  }	
 | 
			
		||||
	if (_tipostampa != undefined)
 | 
			
		||||
    case F_SINTETICO:
 | 
			
		||||
      _tipostampa=sintetico;
 | 
			
		||||
    break;
 | 
			
		||||
    case F_COMPLETO:
 | 
			
		||||
      _tipostampa=completo;
 | 
			
		||||
    break;
 | 
			
		||||
    case F_ETICHETTE:
 | 
			
		||||
      _tipostampa = (configura_stampante(p, "AT_ETICHETTE", "etichette")) ? etichette : undefined;
 | 
			
		||||
    break;    
 | 
			
		||||
  } 
 | 
			
		||||
  if (_tipostampa != undefined)
 | 
			
		||||
  {                                        
 | 
			
		||||
		if (_tipostampa == etichette)
 | 
			
		||||
			_cognome_nome.set_width(200);  		
 | 
			
		||||
		if (_tipostampa == sintetico)
 | 
			
		||||
			_cognome_nome.set_width(51);  		
 | 
			
		||||
		_dataini = 	_msk->get_date(F_DATAINI);	
 | 
			
		||||
		_datafin = 	_msk->get_date(F_DATAFIN);	
 | 
			
		||||
		_gruppoazie = _msk->get(F_GRUPPOAZIE);
 | 
			
		||||
		_tiposta = _msk->get(F_TIPOSTA)[0];
 | 
			
		||||
	  TRectype da(LF_BENEM);
 | 
			
		||||
  	TRectype a (LF_BENEM);
 | 
			
		||||
  	if (_dataini.ok())
 | 
			
		||||
			da.put(BEN_DATABEN, _dataini);
 | 
			
		||||
  	if (_datafin.ok())
 | 
			
		||||
			a.put(BEN_DATABEN, _datafin);
 | 
			
		||||
		TString80 chiave = "";			
 | 
			
		||||
		if (_tiposta == 'S')
 | 
			
		||||
			chiave = "90->GRUPPOAZIE|94->TIPOBEN|UPPER(90->COGNOME)|UPPER(90->NOME)";
 | 
			
		||||
		else
 | 
			
		||||
			chiave = "94->GRUPPOAZIE|94->TIPOBEN|UPPER(90->COGNOME)|UPPER(90->NOME)";
 | 
			
		||||
	  _cur = add_cursor(new TSorted_cursor(_rel, (const char*) chiave, "", 2, &da, &a));
 | 
			
		||||
	  TString80 filtro = "";
 | 
			
		||||
	  if (_gruppoazie.not_empty())
 | 
			
		||||
	  {
 | 
			
		||||
			if (_tiposta == 'S')
 | 
			
		||||
		  	filtro = format("(90->GRUPPOAZIE == \"%s\")",(const char*)_gruppoazie);
 | 
			
		||||
			else		  	
 | 
			
		||||
		  	filtro = format("(94->GRUPPOAZIE == \"%s\")",(const char*)_gruppoazie);
 | 
			
		||||
		}					  	
 | 
			
		||||
		else
 | 
			
		||||
			if (_tiposta == 'S')
 | 
			
		||||
		  	filtro = format("(90->GRUPPOAZIE != \"\")");
 | 
			
		||||
			else		  	
 | 
			
		||||
		  	filtro = format("(94->GRUPPOAZIE != \"\")");
 | 
			
		||||
		current_cursor()->setfilter((const char*) filtro, TRUE);
 | 
			
		||||
 		_contatore = 0;
 | 
			
		||||
 		_gruppoold = "**";
 | 
			
		||||
 		_tipoold = "**";
 | 
			
		||||
	  reset_files(); 
 | 
			
		||||
  	add_file(LF_BENEM);
 | 
			
		||||
		reset_print();
 | 
			
		||||
		printer().footerlen(0);
 | 
			
		||||
		crea_intestazione();
 | 
			
		||||
		return TRUE;
 | 
			
		||||
  }	            
 | 
			
		||||
 	else
 | 
			
		||||
  	return FALSE;
 | 
			
		||||
    if (_tipostampa == etichette)
 | 
			
		||||
      _cognome_nome.set_width(200);     
 | 
			
		||||
    if (_tipostampa == sintetico)
 | 
			
		||||
      _cognome_nome.set_width(51);      
 | 
			
		||||
    _dataini =  _msk->get_date(F_DATAINI);  
 | 
			
		||||
    _datafin =  _msk->get_date(F_DATAFIN);  
 | 
			
		||||
    _gruppoazie = _msk->get(F_GRUPPOAZIE);
 | 
			
		||||
    _tiposta = _msk->get(F_TIPOSTA)[0];
 | 
			
		||||
    TRectype da(LF_BENEM);
 | 
			
		||||
    TRectype a (LF_BENEM);
 | 
			
		||||
    if (_dataini.ok())
 | 
			
		||||
      da.put(BEN_DATABEN, _dataini);
 | 
			
		||||
    if (_datafin.ok())
 | 
			
		||||
      a.put(BEN_DATABEN, _datafin);
 | 
			
		||||
    TString80 chiave = "";      
 | 
			
		||||
    if (_tiposta == 'S')
 | 
			
		||||
      chiave = "90->GRUPPOAZIE|94->TIPOBEN|UPPER(90->COGNOME)|UPPER(90->NOME)";
 | 
			
		||||
    else
 | 
			
		||||
      chiave = "94->GRUPPOAZIE|94->TIPOBEN|UPPER(90->COGNOME)|UPPER(90->NOME)";
 | 
			
		||||
    _cur = add_cursor(new TSorted_cursor(_rel, (const char*) chiave, "", 2, &da, &a));
 | 
			
		||||
    TString80 filtro = "";
 | 
			
		||||
    if (_gruppoazie.not_empty())
 | 
			
		||||
    {
 | 
			
		||||
      if (_tiposta == 'S')
 | 
			
		||||
        filtro = format("(90->GRUPPOAZIE == \"%s\")",(const char*)_gruppoazie);
 | 
			
		||||
      else        
 | 
			
		||||
        filtro = format("(94->GRUPPOAZIE == \"%s\")",(const char*)_gruppoazie);
 | 
			
		||||
    }             
 | 
			
		||||
    else
 | 
			
		||||
      if (_tiposta == 'S')
 | 
			
		||||
        filtro = format("(90->GRUPPOAZIE != \"\")");
 | 
			
		||||
      else        
 | 
			
		||||
        filtro = format("(94->GRUPPOAZIE != \"\")");
 | 
			
		||||
    current_cursor()->setfilter((const char*) filtro, TRUE);
 | 
			
		||||
    _contatore = 0;
 | 
			
		||||
    _gruppoold = "**";
 | 
			
		||||
    _tipoold = "**";
 | 
			
		||||
    reset_files(); 
 | 
			
		||||
    add_file(LF_BENEM);
 | 
			
		||||
    reset_print();
 | 
			
		||||
    printer().footerlen(0);
 | 
			
		||||
    crea_intestazione();
 | 
			
		||||
    return TRUE;
 | 
			
		||||
  }             
 | 
			
		||||
  else
 | 
			
		||||
    return FALSE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void TStampaBenxGAz::crea_intestazione()
 | 
			
		||||
{
 | 
			
		||||
  reset_header(); 
 | 
			
		||||
	if (_tipostampa==sintetico || _tipostampa==completo)	  	
 | 
			
		||||
  if (_tipostampa==sintetico || _tipostampa==completo)      
 | 
			
		||||
  {
 | 
			
		||||
	  TString sep(132);
 | 
			
		||||
		sep = "STAMPA BENEMERENZE ATTRIBUITE dal ";
 | 
			
		||||
		sep << _dataini;
 | 
			
		||||
		sep << " al ";
 | 
			
		||||
		sep << _datafin;
 | 
			
		||||
		if (_tipostampa==completo)
 | 
			
		||||
			sep.center_just(132);			
 | 
			
		||||
		if (_tipostampa==sintetico)
 | 
			
		||||
			sep.left_just(132);			
 | 
			
		||||
		set_header(1,"@0g%s", (const char*) sep);
 | 
			
		||||
	 	sep = "Pag. @#";
 | 
			
		||||
	 	if (_tipostampa==completo)
 | 
			
		||||
			set_header(2, "@110g%s", (const char*) sep);  
 | 
			
		||||
	 	if (_tipostampa==sintetico)
 | 
			
		||||
			set_header(2, "@60g%s", (const char*) sep);  
 | 
			
		||||
		sep = "";
 | 
			
		||||
		sep.fill('-');
 | 
			
		||||
		if (_tipostampa==completo)
 | 
			
		||||
		{
 | 
			
		||||
			set_header(3,"@0gCodice@9gC.@12gCognome e nome@38gNato il@49gIndirizzo@100gTelefono abit.@116gTelefono lavoro");
 | 
			
		||||
			set_header(4,"@0gTessera@49gCAP/Località/Comune/Prov.@116gTelefono altro");
 | 
			
		||||
			set_header(5,"@100gTot.don.");
 | 
			
		||||
			set_header(6,"@0g--------@9g--@12g-------------------------@38g----------@49g--------------------------------------------------@100g---------------@116g---------------");
 | 
			
		||||
		}			
 | 
			
		||||
	 	printer().footerlen(3);
 | 
			
		||||
	}	 	
 | 
			
		||||
    TString sep(132);
 | 
			
		||||
    sep = "STAMPA BENEMERENZE ATTRIBUITE dal ";
 | 
			
		||||
    sep << _dataini;
 | 
			
		||||
    sep << " al ";
 | 
			
		||||
    sep << _datafin;
 | 
			
		||||
    if (_tipostampa==completo)
 | 
			
		||||
      sep.center_just(132);     
 | 
			
		||||
    if (_tipostampa==sintetico)
 | 
			
		||||
      sep.left_just(132);     
 | 
			
		||||
    set_header(1,"@0g%s", (const char*) sep);
 | 
			
		||||
    sep = "Pag. @#";
 | 
			
		||||
    if (_tipostampa==completo)
 | 
			
		||||
      set_header(2, "@110g%s", (const char*) sep);  
 | 
			
		||||
    if (_tipostampa==sintetico)
 | 
			
		||||
      set_header(2, "@60g%s", (const char*) sep);  
 | 
			
		||||
    sep = "";
 | 
			
		||||
    sep.fill('-');
 | 
			
		||||
    if (_tipostampa==completo)
 | 
			
		||||
    {
 | 
			
		||||
      set_header(3,"@0gCodice@9gC.@12gCognome e nome@38gNato il@49gIndirizzo@100gTelefono abit.@116gTelefono lavoro");
 | 
			
		||||
      set_header(4,"@0gTessera@49gCAP/Località/Comune/Prov.@116gTelefono altro");
 | 
			
		||||
      set_header(5,"@100gTot.don.");
 | 
			
		||||
      set_header(6,"@0g--------@9g--@12g-------------------------@38g----------@49g--------------------------------------------------@100g---------------@116g---------------");
 | 
			
		||||
    }     
 | 
			
		||||
    printer().footerlen(3);
 | 
			
		||||
  }   
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool TStampaBenxGAz::user_create()
 | 
			
		||||
@ -371,7 +371,7 @@ bool TStampaBenxGAz::user_create()
 | 
			
		||||
  TString16 etformato = config.get("EtFormato");
 | 
			
		||||
  _etlarghezza = config.get_int("EtLarghezza");
 | 
			
		||||
  _etcolonne = config.get_int("EtColonne");
 | 
			
		||||
	_form_eti = new TEti_bengru_form(etformato);
 | 
			
		||||
  _form_eti = new TEti_bengru_form(etformato);
 | 
			
		||||
  _stampa80 = config.get_bool("Stampa80");
 | 
			
		||||
  _etictot = config.get_bool("EticTot");
 | 
			
		||||
  return TRUE;
 | 
			
		||||
@ -379,7 +379,7 @@ bool TStampaBenxGAz::user_create()
 | 
			
		||||
 | 
			
		||||
bool TStampaBenxGAz::user_destroy()
 | 
			
		||||
{         
 | 
			
		||||
	delete _form_eti;
 | 
			
		||||
  delete _form_eti;
 | 
			
		||||
  delete _msk;
 | 
			
		||||
  delete _rel;
 | 
			
		||||
  return TRUE;
 | 
			
		||||
 | 
			
		||||
@ -1,5 +1,5 @@
 | 
			
		||||
USE 90
 | 
			
		||||
JOIN 13 INTO COM==DOM_CODCOM
 | 
			
		||||
JOIN 13 ALIAS 501 INTO COM==DOM_CODCOM
 | 
			
		||||
JOIN LCP ALIAS 100 INTO CODTAB==DOM_CODLOC
 | 
			
		||||
 | 
			
		||||
END
 | 
			
		||||
@ -72,7 +72,7 @@ STRINGA 7 30
 | 
			
		||||
BEGIN
 | 
			
		||||
   KEY "Denominazione localita' o comune"
 | 
			
		||||
   FIELD 100@->S0
 | 
			
		||||
   FIELD 13->DENCOM
 | 
			
		||||
   FIELD 501@->DENCOM
 | 
			
		||||
   PROMPT 0 0 ""
 | 
			
		||||
   FLAGS "H"
 | 
			
		||||
   MESSAGE RESET,9|COPY,9
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user