Patch level : 1.7 at
Files correlati : at7.exe Ricompilazione Demo : [ ] Commento : sistemato stampa etichette/cartoline/tessere su A4 git-svn-id: svn://10.65.10.50/trunk@11646 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
		
							parent
							
								
									fc6f967da6
								
							
						
					
					
						commit
						08aa7e1edb
					
				| @ -49,6 +49,7 @@ class TStampaTessereS : public TPrintapp | ||||
|   bool						_sttess2; | ||||
|   int							_numdon2; | ||||
| 	TString16				_catini2, _catfin2; | ||||
| 	int 						_tecolonne, _telarghezza; | ||||
| 
 | ||||
| protected: | ||||
|   virtual bool user_create(); | ||||
| @ -111,20 +112,53 @@ void TStampaTessereS::set_page(int file, int cnt) | ||||
| 	switch (_tipostampa) | ||||
| 	{ | ||||
| 		case tessere: | ||||
| 		/*
 | ||||
|     { | ||||
| 			TPrint_section& corpo = _form_pag->get_body(); | ||||
| 			corpo.reset(); | ||||
| 		  TForm_item& rigadon = corpo.find_field(TES_RIGADON1); | ||||
| 			rigadon.set(_riepilogodon); | ||||
| 			corpo.update(); | ||||
| 			for (word i = 0; i < corpo.height(); i++) | ||||
| 			{ | ||||
| 				TPrintrow& riga = corpo.row(i); | ||||
| 				set_row(i+1,riga); | ||||
| 			}  			 | ||||
| 			force_setpage(TRUE);	// serve perchè alla prossima etichetta rifaccia la setpage
 | ||||
| 			for (int r=1;r<=_etcolonne;r++) | ||||
| 			{                      | ||||
| 				if (current_cursor()->pos()<current_cursor()->items()) | ||||
| 				{  | ||||
| 			 | ||||
| 					corpo.reset(); | ||||
| 		  		TForm_item& rigadon = corpo.find_field(TES_RIGADON1); | ||||
| 					rigadon.set(_riepilogodon); | ||||
| 					corpo.update(); | ||||
| 					for (word i = 0; i < corpo.height(); i++) | ||||
| 					{ | ||||
| 						TPrintrow& riga = corpo.row(i); | ||||
| 						set_row(i+1,riga); | ||||
| 					}  			 | ||||
| 					force_setpage(TRUE);	// serve perchè alla prossima etichetta rifaccia la setpage
 | ||||
| 														// altrimenti stampa sempre la stessa etichetta
 | ||||
| 		} | ||||
| 		*/ | ||||
| 		{ | ||||
| 			TPrint_section& corpo = _form_pag->get_body(); | ||||
| 			for (int r=1;r<=_tecolonne;r++) | ||||
| 			{                      | ||||
| 				if (current_cursor()->pos()<current_cursor()->items()) | ||||
| 				{  | ||||
| 					force_setpage(TRUE); | ||||
| 		  		TForm_item& rigadon = corpo.find_field(TES_RIGADON1); | ||||
| 					rigadon.set(_riepilogodon); | ||||
| 					corpo.update(); | ||||
|   				for (word i = 0; i < corpo.height(); i++) | ||||
|   				{ | ||||
|   					TPrintrow& riga = corpo.row(i); | ||||
|   					TString256 riga1 = riga.row(); | ||||
| 						riga1.cut(_telarghezza); | ||||
|   					int colonna = ((r-1)*_telarghezza); | ||||
|   					TString16 formato; | ||||
|   					formato << '@' << colonna << "g"; | ||||
|   					riga1.insert(formato,0); | ||||
|   					set_row(i+1,riga1); | ||||
| 					} | ||||
| 					if (r < _tecolonne)  			 | ||||
| 						++(*current_cursor()); | ||||
| 				}					 | ||||
| 			}		 | ||||
| 		}			 | ||||
| 		break; | ||||
| 		case elenco: | ||||
| 		{ | ||||
| @ -338,7 +372,11 @@ bool TStampaTessereS::user_create() | ||||
|   _catini2 = config.get("CatIni2"); | ||||
|   _catfin2 = config.get("CatFin2"); | ||||
|   _sttess2 = config.get_bool("StTess2"); | ||||
|   _form_pag = new TTessereS_form("ATTESSER"); | ||||
|    | ||||
|   TString16 teformato = config.get("TeFormato"); | ||||
|   _form_pag = new TTessereS_form(teformato); | ||||
|   _tecolonne = config.get_int("TeColonne"); | ||||
|   _telarghezza = config.get_int("TeLarghezza"); | ||||
| 	TSheet_field& ss = (TSheet_field&)_msk->field(F_SOGGETTI); | ||||
| 	add_rows_soggetti(ss,50); | ||||
| 	ss.set_notify(soggetti_notify); | ||||
| @ -456,7 +494,6 @@ bool TStampaTessereS::user_destroy() | ||||
|   delete _form_pag; | ||||
|   delete _msk; | ||||
|   delete _rel; | ||||
|   //printer().read_configuration();
 | ||||
|   return TRUE; | ||||
| } | ||||
| 
 | ||||
|  | ||||
| @ -14,7 +14,6 @@ | ||||
| #include "at4100b.h" | ||||
| #include "at4100c.h" | ||||
| #include "at7300a.h" | ||||
| //#include "at4500.h"
 | ||||
| #include "atlib.h" | ||||
| 
 | ||||
| #define ALIAS_CTD			700		// categoria donatori
 | ||||
| @ -68,8 +67,10 @@ class TStampeSingole : public TPrintapp | ||||
| 	TString80				_invitoper, _data, _presso1, _presso2, _presso3, _presso4; | ||||
| 	TString80				_note, _intest1, _intest2, _intest3, _intest4; | ||||
| 	bool						_usomodo, _usasez; | ||||
|   int							_etlarghezza, _etcolonne, _schxpag, _lenpage; | ||||
|   int							_etlarghezza, _etcolonne, _etrighe, _etbordoini, _etbordofin, _netichette; | ||||
|   int							_schxpag, _lenpage; | ||||
|   int							_contaschede; | ||||
|   int 						_caxpag, _cabordoini, _cabordofin, _ncartoline; | ||||
| 
 | ||||
| protected: | ||||
|   virtual bool user_create(); | ||||
| @ -204,8 +205,16 @@ void TStampeSingole::set_page(int file, int cnt) | ||||
| 			{                      | ||||
| 				if (current_cursor()->pos()<current_cursor()->items()) | ||||
| 				{  | ||||
| 					_netichette++;    | ||||
| 					force_setpage(TRUE); | ||||
| 					corpo.update(); | ||||
| 					int nriga = 1;                      | ||||
| 					if (_etrighe > 0) | ||||
| 					{ | ||||
| 						int resto = _netichette % (_etrighe*_etcolonne); | ||||
| 						if (resto > 0 && resto <= _etcolonne) | ||||
| 							nriga =	nriga+_etbordoini; | ||||
| 					}		 | ||||
|   				for (word i = 0; i < corpo.height(); i++) | ||||
|   				{ | ||||
|   					TPrintrow& riga = corpo.row(i); | ||||
| @ -215,7 +224,7 @@ void TStampeSingole::set_page(int file, int cnt) | ||||
|   					TString16 formato; | ||||
|   					formato << '@' << colonna << "g"; | ||||
|   					riga1.insert(formato,0); | ||||
|   					set_row(i+1,riga1); | ||||
|   					set_row(nriga++,riga1); | ||||
| 					} | ||||
| 					if (r < _etcolonne)  			 | ||||
| 						++(*current_cursor()); | ||||
| @ -277,12 +286,23 @@ void TStampeSingole::set_page(int file, int cnt) | ||||
| 	  		note.set(_note); | ||||
| 			}	  		 | ||||
| 			corpo.update(); | ||||
| 			for (word i = 0; i < corpo.height(); i++) | ||||
| 			word primariga = 0; | ||||
| 			word ultimariga = corpo.height(); 	 | ||||
| 			if (_caxpag > 0) | ||||
| 			{ | ||||
| 				if (_ncartoline % _caxpag == 0) // numero cartoline per pagina
 | ||||
| 					primariga = _cabordoini;						// bordo iniziale
 | ||||
| 				if (_ncartoline % _caxpag == _caxpag-1) // numero cartoline per pagina - 1
 | ||||
| 					ultimariga -= _cabordofin;						// bordo finale
 | ||||
| 			}		 | ||||
| 			int nriga = 1; | ||||
| 			for (word i = primariga; i < ultimariga; i++) | ||||
| 			{ | ||||
| 				TPrintrow& riga = corpo.row(i); | ||||
| 				set_row(i+1,riga); | ||||
| 				set_row(nriga++,riga); | ||||
| 			}  			 | ||||
| 			force_setpage(TRUE); | ||||
| 			_ncartoline++; | ||||
| 		} | ||||
| 		break; | ||||
| 	}							 | ||||
| @ -290,7 +310,7 @@ void TStampeSingole::set_page(int file, int cnt) | ||||
| 
 | ||||
| bool TStampeSingole::preprocess_page(int file, int counter) | ||||
| {                               | ||||
| 	if (_tipostampa==etichette)		 | ||||
| 	if (_tipostampa==etichette && _etrighe == 0) | ||||
| 		if (printer().rows_left() < _form_eti->get_body().height()) | ||||
| 			printer().formfeed(); | ||||
|   return TRUE; | ||||
| @ -318,7 +338,7 @@ bool TStampeSingole::set_print(int m) | ||||
|   switch (tasto) | ||||
|   {                   | ||||
| 	  case F_CARTOLINE: | ||||
| 	  	_tipostampa=cartoline; | ||||
|   		_tipostampa = (configura_stampante(p, "AT_CARTOLINE", "cartoline")) ? cartoline : undefined; | ||||
| 	 	break; | ||||
| 	  case F_SCHEDE: | ||||
| 	  	_tipostampa=schede; | ||||
| @ -337,6 +357,8 @@ bool TStampeSingole::set_print(int m) | ||||
|   	if (_tipostampa == cartoline) | ||||
|   		dati_cartolina(); | ||||
| 		_contaschede = 0; | ||||
| 		_ncartoline  = 0; | ||||
| 		_netichette = 0; | ||||
|     reset_files();  | ||||
|     add_file(LF_SOGGETTI); | ||||
| 	  _asoggetti.destroy(); | ||||
| @ -383,18 +405,28 @@ bool TStampeSingole::user_create() | ||||
| 
 | ||||
|   _cur = add_cursor(new TCursor(_rel, "", 2)); | ||||
|   _msk = new TMask("at7300a");            | ||||
|   //Modificato il form per le cartoline in ATCARTO2 da ATCARTO1 da Marco il 14/09/99
 | ||||
|   _form_car = new TSingole_form("ATCARTO2"); | ||||
|   _form_don = new TSingole_form("ATDDONAZ"); | ||||
|   TConfig config(CONFIG_STUDIO); | ||||
| 
 | ||||
|   TString16 etformato = config.get("EtFormato"); | ||||
|   _etlarghezza = config.get_int("EtLarghezza"); | ||||
|   _etcolonne = config.get_int("EtColonne"); | ||||
|   _etrighe = config.get_int("EtRighe"); | ||||
|   _etbordoini = config.get_int("EtBordoIni");  | ||||
|   _etbordofin = config.get_int("EtBordoFin");  | ||||
| 	_form_eti = new TSingole_form(etformato); | ||||
|   TString16 schformato = config.get("SchFormato"); | ||||
| 
 | ||||
|   _schxpag = config.get_int("SchXPag"); | ||||
|   TString16 schformato = config.get("SchFormato"); | ||||
|   _form_sch = new TSingole_form(schformato); | ||||
| 	_lenpage = printer().formlen(); | ||||
| 
 | ||||
|   TString16 caformato = config.get("CaFormato"); | ||||
|   _form_car = new TSingole_form(caformato); | ||||
|   _caxpag = config.get_int("CaPerPag"); | ||||
|   _cabordoini = config.get_int("CaBordoIni");  | ||||
|   _cabordofin = config.get_int("CaBordoFin");  | ||||
|   _form_don = new TSingole_form("ATDDONAZ"); | ||||
| 	 | ||||
| 	TSheet_field& ss = (TSheet_field&)_msk->field(F_SOGGETTI); | ||||
| 	ss.set_notify(soggetti_notify); | ||||
| 	ss.sheet_mask().set_handler(F_S_NOME,nome_handler); | ||||
| @ -508,10 +540,10 @@ bool TStampeSingole::codice_handler(TMask_field& f, KEY k) | ||||
| 
 | ||||
| bool TStampeSingole::user_destroy() | ||||
| { | ||||
|   delete _form_sch; | ||||
|   delete _form_eti; | ||||
|   delete _form_don; | ||||
|   delete _form_car; | ||||
|   delete _form_sch; | ||||
|   delete _form_eti; | ||||
|   delete _msk; | ||||
|   delete _sbenemerenze;   | ||||
|   delete _sdonazioni; | ||||
|  | ||||
| @ -14,7 +14,6 @@ | ||||
| #include "at4100b.h" | ||||
| #include "at4100c.h" | ||||
| #include "at7400a.h" | ||||
| //#include "at4500.h"
 | ||||
| #include "atlib.h" | ||||
| 
 | ||||
| #define ALIAS_CTD			700		// categoria donatori
 | ||||
| @ -66,7 +65,9 @@ class TStampePerCodice : public TPrintapp | ||||
| 	TString80				_invitoper, _data, _presso1, _presso2, _presso3, _presso4; | ||||
| 	TString80				_note, _intest1, _intest2, _intest3, _intest4; | ||||
| 	bool						_usomodo, _usasez; | ||||
|   int							_etlarghezza, _etcolonne, _schxpag, _lenpage; | ||||
|   int							_etlarghezza, _etcolonne, _etrighe, _etbordoini, _etbordofin, _netichette;  | ||||
|   int							_contaschede, _schxpag, _lenpage; | ||||
|   int 						_caxpag, _cabordoini, _cabordofin, _ncartoline; | ||||
| 
 | ||||
| protected: | ||||
|   virtual bool user_create(); | ||||
| @ -166,8 +167,16 @@ void TStampePerCodice::set_page(int file, int cnt) | ||||
| 			{                      | ||||
| 				if (current_cursor()->pos()<current_cursor()->items()) | ||||
| 				{  | ||||
| 					_netichette++;    | ||||
| 					force_setpage(TRUE); | ||||
| 					corpo.update(); | ||||
| 					int nriga = 1;                      | ||||
| 					if (_etrighe > 0) | ||||
| 					{ | ||||
| 						int resto = _netichette % (_etrighe*_etcolonne); | ||||
| 						if (resto > 0 && resto <= _etcolonne) | ||||
| 							nriga =	nriga+_etbordoini; | ||||
| 					}		 | ||||
|   				for (word i = 0; i < corpo.height(); i++) | ||||
|   				{ | ||||
|   					TPrintrow& riga = corpo.row(i); | ||||
| @ -177,7 +186,7 @@ void TStampePerCodice::set_page(int file, int cnt) | ||||
|   					TString16 formato; | ||||
|   					formato << '@' << colonna << "g"; | ||||
|   					riga1.insert(formato,0); | ||||
|   					set_row(i+1,riga1); | ||||
|   					set_row(nriga++,riga1); | ||||
| 					} | ||||
| 					if (r < _etcolonne)  			 | ||||
| 						++(*current_cursor()); | ||||
| @ -238,11 +247,23 @@ void TStampePerCodice::set_page(int file, int cnt) | ||||
| 	  		note.set(_note); | ||||
| 			}	  		 | ||||
| 			corpo.update(); | ||||
| 			for (word i = 0; i < corpo.height(); i++) | ||||
| 			word primariga = 0; | ||||
| 			word ultimariga = corpo.height(); 	 | ||||
| 			if (_caxpag > 0) | ||||
| 			{ | ||||
| 				if (_ncartoline % _caxpag == 0) // numero cartoline per pagina
 | ||||
| 					primariga = _cabordoini;						// bordo iniziale
 | ||||
| 				if (_ncartoline % _caxpag == _caxpag-1) // numero cartoline per pagina - 1
 | ||||
| 					ultimariga -= _cabordofin;						// bordo finale
 | ||||
| 			}		 | ||||
| 			int nriga = 1; | ||||
| 			for (word i = primariga; i < ultimariga; i++) | ||||
| 			{ | ||||
| 				TPrintrow& riga = corpo.row(i); | ||||
| 				set_row(i+1,riga); | ||||
| 				set_row(nriga++,riga); | ||||
| 			}  			 | ||||
| 			force_setpage(TRUE); | ||||
| 			_ncartoline++; | ||||
| 		} | ||||
| 		break; | ||||
| 	}							 | ||||
| @ -257,7 +278,7 @@ print_action TStampePerCodice::postprocess_print(int file, int counter) | ||||
| 
 | ||||
| bool TStampePerCodice::preprocess_page(int file, int counter) | ||||
| {                               | ||||
| 	if (_tipostampa==etichette)		 | ||||
| 	if (_tipostampa==etichette && _etrighe == 0) | ||||
| 		if (printer().rows_left() < _form_eti->get_body().height()) | ||||
| 			printer().formfeed(); | ||||
|   return TRUE; | ||||
| @ -273,7 +294,7 @@ bool TStampePerCodice::set_print(int m) | ||||
|   switch (tasto) | ||||
|   {                   | ||||
| 	  case F_CARTOLINE: | ||||
| 	  	_tipostampa=cartoline; | ||||
|   		_tipostampa = (configura_stampante(p, "AT_CARTOLINE", "cartoline")) ? cartoline : undefined; | ||||
| 	 	break; | ||||
| 	  case F_SCHEDE: | ||||
| 	  	_tipostampa=schede; | ||||
| @ -291,6 +312,9 @@ bool TStampePerCodice::set_print(int m) | ||||
|   {                                         | ||||
|   	if (_tipostampa == cartoline) | ||||
|   		dati_cartolina(); | ||||
| 		_contaschede = 0; | ||||
| 		_ncartoline  = 0; | ||||
| 		_netichette = 0; | ||||
| 	 	const long codini = _msk->get_long(F_CODINI); | ||||
| 	 	const long codfin = _msk->get_long(F_CODFIN); | ||||
| 	  TRectype da(LF_SOGGETTI); | ||||
| @ -334,26 +358,35 @@ bool TStampePerCodice::user_create() | ||||
|   _cur = add_cursor(new TCursor(_rel, "", 1)); | ||||
|   _msk = new TMask("at7400a");    | ||||
|   //Modificato il form per le cartoline in ATCARTO2 da ATCARTO1 da Marco il 14/09/99
 | ||||
|   _form_car = new TPerCodice_form("ATCARTO2"); | ||||
|   _form_don = new TPerCodice_form("ATDDONAZ"); | ||||
|   TConfig config(CONFIG_STUDIO); | ||||
| 
 | ||||
|   TString16 etformato = config.get("EtFormato"); | ||||
|   _etlarghezza = config.get_int("EtLarghezza"); | ||||
|   _etcolonne = config.get_int("EtColonne"); | ||||
|   _etrighe = config.get_int("EtRighe"); | ||||
|   _etbordoini = config.get_int("EtBordoIni");  | ||||
|   _etbordofin = config.get_int("EtBordoFin");  | ||||
| 	_form_eti = new TPerCodice_form(etformato); | ||||
| 
 | ||||
|   TString16 schformato = config.get("SchFormato"); | ||||
|   _schxpag = config.get_int("SchXPag"); | ||||
|   _form_sch = new TPerCodice_form(schformato); | ||||
|   _lenpage = printer().formlen(); | ||||
|   TString16 caformato = config.get("CaFormato"); | ||||
|   _form_car = new TPerCodice_form(caformato); | ||||
|   _caxpag = config.get_int("CaPerPag"); | ||||
|   _cabordoini = config.get_int("CaBordoIni");  | ||||
|   _cabordofin = config.get_int("CaBordoFin");  | ||||
|   _form_don = new TPerCodice_form("ATDDONAZ"); | ||||
|   return TRUE; | ||||
| } | ||||
| 
 | ||||
| bool TStampePerCodice::user_destroy() | ||||
| { | ||||
|   delete _form_sch; | ||||
|   delete _form_eti; | ||||
|   delete _form_don; | ||||
|   delete _form_car; | ||||
|   delete _form_sch; | ||||
|   delete _form_eti; | ||||
|   delete _msk; | ||||
|   delete _sbenemerenze;   | ||||
|   delete _sdonazioni; | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user