Patch level :
Files correlati : Ricompilazione Demo : [ ] Commento : Stampa scadenze per controlli git-svn-id: svn://10.65.10.50/trunk@6938 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
		
							parent
							
								
									90f60de24d
								
							
						
					
					
						commit
						9a81d20aa7
					
				
							
								
								
									
										443
									
								
								at/at6700.cpp
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										443
									
								
								at/at6700.cpp
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,443 @@ | ||||
| #include <form.h> | ||||
| #include <mask.h> | ||||
| #include <printapp.h> | ||||
| #include <recarray.h> | ||||
| #include <tabutil.h> | ||||
| #include <utility.h> | ||||
| 
 | ||||
| #include "at6.h" | ||||
| 
 | ||||
| #define ALIAS_TCS	200 | ||||
| #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
 | ||||
| 
 | ||||
| // nomi campi maschera
 | ||||
| #include "at6700a.h" | ||||
|            | ||||
| // nomi dei campi
 | ||||
| #include "soggetti.h" | ||||
| #include "contsan.h" | ||||
| #include "sezioni.h" | ||||
| #include <comuni.h> | ||||
| 
 | ||||
| enum ts { undefined = 0, elenco = 1, etichette = 2 }; | ||||
| 
 | ||||
| // definizione form per etichette
 | ||||
| class TEti_scadenzectrl_form : public TForm | ||||
| { | ||||
| public: | ||||
| 	 | ||||
| 	virtual TCursor* cursor() const; | ||||
| 	virtual TRelation* relation() const; | ||||
| 	TPrint_section& get_body() { return section('B'); } ; | ||||
|   TEti_scadenzectrl_form(): TForm() {}; | ||||
|   TEti_scadenzectrl_form(const char* form, const char * code = "", int editlevel = 0, const char* desc = "") | ||||
|     						: TForm(form,code,editlevel,desc) {}; | ||||
|   virtual ~TEti_scadenzectrl_form() {}; | ||||
| }; | ||||
| 
 | ||||
| class TScadenzeControlli : public TPrintapp | ||||
| { | ||||
| 	TMask*						_msk; | ||||
| 	TRelation*   			_rel; | ||||
| 	TLocalisamfile*		_contsan; | ||||
| 	TRecord_array* 		_scontrolli; | ||||
|   TEti_scadenzectrl_form*	_form_eti; | ||||
|   TAssoc_array		  _categorie; | ||||
| 	int 							_cur;	 | ||||
| 	int								_contatore, _totale; | ||||
| 	TDate							_data_stampa, _dataini, _datafin; | ||||
| 	TString16					_codsez, _codsot; | ||||
| 	TString16					_tipo1; | ||||
|   TString16					_lettini, _lettfin;	 | ||||
|   TParagraph_string _cognome_nome, _rigastampa, _dencom; | ||||
| 	ts 	      				_tipostampa; | ||||
| 	int								_etlarghezza, _etcolonne; | ||||
| 
 | ||||
| 	static bool filter_func_scadenzectrl(const TRelation* rel); | ||||
| 
 | ||||
| protected: | ||||
| 	virtual bool user_create(); | ||||
| 	virtual bool user_destroy(); | ||||
| 	virtual bool set_print(int m); | ||||
| 	virtual void set_page(int file, int cnt); | ||||
| 	virtual bool preprocess_page(int file, int counter); | ||||
|   virtual print_action postprocess_print(int file, int counter); | ||||
| 	 | ||||
| public: | ||||
|   void filtra_sezioni(); | ||||
|   void crea_intestazione(); | ||||
|   void header_sezione(const TString16 codsez, const TString16 codsot); | ||||
|   void footer_sezione(); | ||||
|   void fine_stampa(); | ||||
| 	TScadenzeControlli() : _data_stampa(TODAY), _cognome_nome("",51), _rigastampa("", 71), _dencom("",51)  {} | ||||
| }; | ||||
| 
 | ||||
| HIDDEN inline TScadenzeControlli& app() { return (TScadenzeControlli&) main_app(); } | ||||
| 
 | ||||
| TCursor* TEti_scadenzectrl_form::cursor() const { return app().current_cursor(); } | ||||
| 
 | ||||
| TRelation* TEti_scadenzectrl_form::relation() const { return cursor()->relation(); } | ||||
| 
 | ||||
| print_action TScadenzeControlli::postprocess_print(int file, int counter) | ||||
| {  | ||||
| 	if (_contatore > 0) | ||||
| 		footer_sezione(); | ||||
| 	fine_stampa();				 | ||||
| 	return NEXT_PAGE; | ||||
| } | ||||
| 
 | ||||
| void TScadenzeControlli::fine_stampa() | ||||
| { | ||||
| 	// stampa totale soggetti a fine stampa
 | ||||
| 	reset_footer(); | ||||
| 	TString sep(80); | ||||
| 	sep.fill('-'); | ||||
| 	set_footer(2, (const char *) sep); | ||||
| 	if (_totale > 0) | ||||
| 	{ | ||||
| 		if (_totale != _contatore) | ||||
| 		{ | ||||
| 			set_footer(3,"TOTALE SOGGETTI SBLOCCATI %d", _totale); | ||||
| 			printer().formfeed();		 | ||||
| 		}			 | ||||
| 	}			 | ||||
| 	else		 | ||||
| 	{ | ||||
| 		set_footer(3,"NON CI SONO SOGGETTI SOSPESI DA SBLOCCARE");		 | ||||
| 		printer().formfeed();		 | ||||
| 	}		 | ||||
| 	reset_footer();  | ||||
| } | ||||
| 
 | ||||
| void TScadenzeControlli::footer_sezione() | ||||
| { | ||||
| 	if (_contatore > 0) | ||||
| 	{ | ||||
| 		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 TScadenzeControlli::filtra_sezioni() | ||||
| { | ||||
|  	const TString16 sezini = _msk->get(F_SEZINI); | ||||
|  	const TString16 sotini = _msk->get(F_SOTINI); | ||||
|  	const TString16 sezfin = _msk->get(F_SEZFIN); | ||||
|  	const TString16 sotfin = _msk->get(F_SOTFIN); | ||||
|   TRectype da(LF_SOGGETTI); | ||||
|   TRectype a(LF_SOGGETTI);    | ||||
|   if (sezini.not_empty()) | ||||
| 		da.put(SOG_CODSEZ, sezini); | ||||
|   if (sotini.not_empty()) | ||||
| 		da.put(SOG_CODSOT, sotini); | ||||
|   if (sezfin.not_empty()) | ||||
| 		a.put(SOG_CODSEZ, sezfin); | ||||
|   if (sotfin.not_empty()) | ||||
| 		a.put(SOG_CODSOT, sotfin); | ||||
| 	current_cursor()->setregion(da, a); | ||||
| }	 | ||||
| 
 | ||||
| bool TScadenzeControlli::preprocess_page(int file, int counter) | ||||
| {  | ||||
| 	if (_tipostampa == elenco) | ||||
| 	{ | ||||
| 		TRectype& recsog = current_cursor()->curr(); | ||||
| 		TString80 nome = recsog.get(SOG_COGNOME); | ||||
| 		nome << " "; | ||||
| 		nome << recsog.get(SOG_NOME); | ||||
| 		_cognome_nome = nome; | ||||
| 		TString256 localita = ""; | ||||
| 		localita << current_cursor()->curr(-ALIAS_LCPDOM).get("S6"); | ||||
| 		if (localita.not_empty() && localita.ok()) | ||||
| 		{ | ||||
| 			localita << " "; | ||||
| 			localita << current_cursor()->curr(-ALIAS_LCPDOM).get("S0"); | ||||
| 			localita << " - ";		 | ||||
| 		} | ||||
| 		else | ||||
| 		{ | ||||
| 			localita = current_cursor()->curr(-ALIAS_COMDOM).get(COM_CAPCOM); | ||||
| 			localita << " "; | ||||
| 		}			 | ||||
| 		localita << current_cursor()->curr(-ALIAS_COMDOM).get(COM_DENCOM); | ||||
| 		localita.trim(); | ||||
| 		_dencom = localita; | ||||
| 		 | ||||
| 		TRectype* key = new TRectype(LF_CONTSAN); | ||||
| 		long codice = recsog.get_long(SOG_CODICE); | ||||
| 		key->put(CON_CODICE, codice); | ||||
| 		int err = _scontrolli->read(key); | ||||
| 		if ((err == NOERR) && (app()._scontrolli->rows()>0)) | ||||
| 		{ | ||||
| 			const TRectype& riga = app()._scontrolli->row(app()._scontrolli->rows()); | ||||
| 			TDate prossdata = riga.get_date(CON_PROSSDATA); | ||||
| 		 | ||||
| 			TString80 rigastampa; | ||||
| 			rigastampa = ""; | ||||
| 			rigastampa << "@72g"<<prossdata<<" "; | ||||
| 			rigastampa << riga.get(CON_RESPONSAB); | ||||
| 			_rigastampa = rigastampa; | ||||
| 		}			 | ||||
| 		// salto pagina se cambio sezione
 | ||||
| 		const TString16 codsez = recsog.get(SOG_CODSEZ);		 | ||||
| 		const TString16 codsot = recsog.get(SOG_CODSOT);		 | ||||
| 		if ((_codsez!=codsez)||(_codsot!=codsot)) | ||||
| 		{ | ||||
| 			if ((_codsez != "**") && (_contatore > 0)) | ||||
| 				footer_sezione(); | ||||
| 			_contatore = 0;			 | ||||
| 			_codsez = codsez; | ||||
| 			_codsot = codsot; | ||||
| 			header_sezione(codsez, codsot); | ||||
| 		} | ||||
| 		if (printer().rows_left() < 4) | ||||
| 			printer().formfeed(); | ||||
| 	}		 | ||||
| 	if (_tipostampa==etichette)		 | ||||
| 		if (printer().rows_left() < _form_eti->get_body().height()) | ||||
| 			printer().formfeed(); | ||||
| 	_contatore++;			 | ||||
| 	_totale++; | ||||
|   return TRUE; | ||||
| } | ||||
| 
 | ||||
| void TScadenzeControlli::set_page(int file, int cnt) | ||||
| {  | ||||
| 	switch (_tipostampa) | ||||
| 	{ | ||||
| 		case etichette: | ||||
| 		{ | ||||
| 			TPrint_section& corpo = _form_eti->get_body(); | ||||
| 			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
 | ||||
| 		} | ||||
| 		break; | ||||
| 		case elenco: | ||||
| 		{ | ||||
| 			set_row(1,"@0g@pn", FLD(LF_SOGGETTI,SOG_CODICE,"########")); | ||||
| 			set_row(2,"@0g@S", FLD(LF_SOGGETTI,SOG_TESSAVIS)); | ||||
| 			set_row(3,"@0g@S", FLD(LF_SOGGETTI,SOG_CATDON)); | ||||
| 			 | ||||
| 			set_row(1,"@9g#a", &_cognome_nome); | ||||
| 			set_row(2,"@9g@S", FLD(LF_SOGGETTI,SOG_DOM_INDIR)); | ||||
| 			set_row(3,"@9g#a", &_dencom); | ||||
| 
 | ||||
| 			set_row(1,"@61g@ld", FLD(LF_SOGGETTI,SOG_DATANASC)); | ||||
| 			set_row(2,"@61g@S", FLD(LF_SOGGETTI,SOG_GRUPPOAB0)); | ||||
| 			set_row(2,"@66g@S", FLD(LF_SOGGETTI,SOG_RHANTID)); | ||||
| 
 | ||||
| 			set_row(1,"@72g@S", FLD(LF_SOGGETTI,SOG_TELABI)); | ||||
| 			set_row(1,"@87g@S", FLD(LF_SOGGETTI,SOG_TELLAV)); | ||||
| 			set_row(1,"@102g@S", FLD(LF_SOGGETTI,SOG_TELALT)); | ||||
| 			 | ||||
| 			set_row(2,"@72g#a", &_rigastampa); | ||||
| 			 | ||||
| 			set_row(4,""); | ||||
| 		}			 | ||||
| 		break; | ||||
| 	}		 | ||||
| } | ||||
| 
 | ||||
| bool TScadenzeControlli::filter_func_scadenzectrl(const TRelation* rel) | ||||
| {    | ||||
| 	bool filtrato = TRUE; | ||||
| 	TRectype& recsog = rel->lfile().curr(); | ||||
| 	// filtro per categorie
 | ||||
| 	TAssoc_array& categorie = app()._categorie; | ||||
| 	if (categorie.items() != 0) | ||||
| 	{ | ||||
| 		const TString16 cat = recsog.get(SOG_CATDON); | ||||
| 		filtrato = categorie.is_key((const char*) cat); | ||||
| 	}	 | ||||
| 	// filtro per iniziale cognome		
 | ||||
| 	if (filtrato && (!app()._lettini.blank()) && (!app()._lettfin.blank())) | ||||
| 	{ | ||||
| 		TString80 cognome = recsog.get(SOG_COGNOME); | ||||
| 		int leni = app()._lettini.len(); | ||||
| 		TString16 cognomei = cognome.left(leni); | ||||
| 		int lenf = app()._lettfin.len(); | ||||
| 		TString16 cognomef = cognome.left(lenf); | ||||
| 		if (!(cognomei >= app()._lettini && cognomef <= app()._lettfin)) | ||||
| 			filtrato = FALSE; | ||||
| 	}	 | ||||
| 	if (filtrato) | ||||
| 	{ | ||||
| 		TRectype* key = new TRectype(LF_CONTSAN); | ||||
| 		long codice = recsog.get_long(SOG_CODICE); | ||||
| 		key->put(CON_CODICE, codice); | ||||
| 		int err = app()._scontrolli->read(key); | ||||
| 		if ((err == NOERR) && (app()._scontrolli->rows()>0)) | ||||
| 		{ | ||||
| 			const TRectype& riga = app()._scontrolli->row(app()._scontrolli->rows()); | ||||
| 			TString16 prosstipo = riga.get(CON_PROSSTIPO); | ||||
| 			TDate prossdata = riga.get_date(CON_PROSSDATA); | ||||
| 			if (!((prosstipo == app()._tipo1) && (prossdata >= app()._dataini) && (prossdata <= app()._datafin))) | ||||
| 				filtrato = FALSE;				 | ||||
| 		} | ||||
| 		else | ||||
| 			filtrato = FALSE; | ||||
| 	} | ||||
| 	return filtrato; | ||||
| } | ||||
| 
 | ||||
| void TScadenzeControlli::header_sezione(const TString16 codsez, const TString16 codsot) | ||||
| { | ||||
| 	const TString80 densez = current_cursor()->curr(LF_SEZIONI).get(SEZ_DENSEZ); | ||||
| 	const TString80 densot = current_cursor()->curr(LF_SEZIONI).get(SEZ_DENSOT); | ||||
| 	TString intestazione(132); | ||||
| 	intestazione = "Sezione: "; | ||||
| 	intestazione << codsez; | ||||
| 	intestazione << "/"; | ||||
| 	intestazione << codsot; | ||||
| 	intestazione << " "; | ||||
| 	intestazione << densez; | ||||
| 	if ((densot.ok())&& (densot.not_empty())) | ||||
| 	{ | ||||
| 		intestazione << "/"; | ||||
| 		intestazione << densot; | ||||
| 	}		 | ||||
| 	intestazione.center_just(); | ||||
| 	set_header(1,"@0g%s", (const char*) intestazione); | ||||
| 	return; | ||||
| } | ||||
| 
 | ||||
| bool TScadenzeControlli::set_print(int) | ||||
| { | ||||
| 	_tipostampa = undefined; | ||||
|   KEY tasto; | ||||
|   tasto = _msk->run(); | ||||
|   switch (tasto) | ||||
|   { | ||||
|   case F_ELENCO: | ||||
|   	_tipostampa = elenco; | ||||
|   	_codsez = "**"; | ||||
|   	_codsot = "**"; | ||||
|   	break; | ||||
|   case F_ETICHETTE: | ||||
|   	_tipostampa = etichette;	 | ||||
|   	break; | ||||
|   }	 | ||||
| 	if (_tipostampa != undefined) | ||||
|   { | ||||
| 		_tipo1 = _msk->get(F_TIPO1); | ||||
| 		_dataini = _msk->get_date(F_DATAINI); | ||||
| 		_datafin = _msk->get_date(F_DATAFIN); | ||||
| 		_lettini = _msk->get(F_LETTINI); | ||||
| 		_lettini.left(15); | ||||
| 		_lettfin = _msk->get(F_LETTFIN); | ||||
| 		_lettfin.left(15);		 | ||||
| 		_contatore = 0; | ||||
| 		_totale = 0; | ||||
|     reset_files();  | ||||
|     add_file(LF_SOGGETTI); | ||||
| 		filtra_sezioni(); | ||||
| 	  // filtro per categorie
 | ||||
| 	  _categorie.destroy(); | ||||
|   	const TString16 catpri = _msk->get(F_CAT1); | ||||
|   	const TString16 catsec = _msk->get(F_CAT2); | ||||
|   	const TString16 catter = _msk->get(F_CAT3); | ||||
|   	const TString16 catqua = _msk->get(F_CAT4); | ||||
|   	const TString16 catqui = _msk->get(F_CAT5); | ||||
|   	const TString16 catses = _msk->get(F_CAT6); | ||||
| 	  if (catpri.not_empty() && catpri.ok()) | ||||
|   		_categorie.add((const char*) catpri); | ||||
|   	if (catsec.not_empty() && catsec.ok()) | ||||
|   		_categorie.add((const char*) catsec); | ||||
|   	if (catter.not_empty() && catter.ok()) | ||||
|   		_categorie.add((const char*) catter); | ||||
|   	if (catqua.not_empty() && catqua.ok()) | ||||
|   		_categorie.add((const char*) catqua); | ||||
|   	if (catqui.not_empty() && catqui.ok()) | ||||
|   		_categorie.add((const char*) catqui); | ||||
|   	if (catses.not_empty() && catses.ok()) | ||||
|   		_categorie.add((const char*) catses); | ||||
| 		current_cursor()->set_filterfunction(filter_func_scadenzectrl,TRUE); | ||||
| 		reset_print();		 | ||||
|     crea_intestazione(); | ||||
|     return TRUE; | ||||
|   } | ||||
|   else | ||||
|     return FALSE; | ||||
| } | ||||
| 
 | ||||
| void TScadenzeControlli::crea_intestazione() | ||||
| { | ||||
| 	reset_header(); | ||||
| 	TString sep(132); | ||||
|  	sep = "STAMPA SCADENZE PER CONTROLLI SANITARI";	 | ||||
| 	sep.center_just(); | ||||
|  	set_header(2, "@0g%s", (const char*) sep); | ||||
|  	TDate data_stampa = _data_stampa.string(); | ||||
|   set_header(2,"@0g%10s", (const char*) data_stampa); | ||||
|   sep = ""; | ||||
|   sep << "Pag. @#"; | ||||
|   set_header(2, "@125g%s", (const char*) sep);   | ||||
|   	 | ||||
|   sep = ""; | ||||
|   sep.fill('-'); | ||||
|   set_header(3, (const char *) sep); | ||||
|  	set_header(4,"@0gCodice@9gCognome e nome@61gNato il@72gTelefono abit.@87gTelefono lav.@102gTelefono altro"); | ||||
|  	set_header(5,"@0gTessera@9gIndirizzo"); | ||||
| 	TString256 riga = "@0gCat.@61gGruppo Rh@72gData pros."; | ||||
| 	//riga << _tipo1 << "@83gUltimo " << _tipo2 << "@94gUltimo " << _tipo3 << "@105gUltimo " << _tipo4 << "@116gUltimo " << _tipo5;
 | ||||
|  	set_header(6,riga); | ||||
|  	set_header(7,"@0g--------@9g---------------------------------------------------@61g----------@72g------------------------------------------------------"); | ||||
|  	printer().footerlen(3); | ||||
| } | ||||
| 
 | ||||
| bool TScadenzeControlli::user_create() | ||||
| { | ||||
| 	_msk = new TMask("at6700a"); | ||||
| 	_rel = new TRelation(LF_SOGGETTI); | ||||
| 	_rel->add(LF_SEZIONI,"CODSEZ==CODSEZ|CODSOT==CODSOT"); | ||||
|   _rel->add("TCS", "CODTAB==STATO",1,0,ALIAS_TCS); | ||||
|   _rel->add("LCP", "CODTAB==RES_CODLOC",1,LF_SOGGETTI,ALIAS_LCPRES); | ||||
|   _rel->add("LCP", "CODTAB==DOM_CODLOC",1,LF_SOGGETTI,ALIAS_LCPDOM); | ||||
|   _rel->add(LF_COMUNI, "COM==RES_CODCOM",1,LF_SOGGETTI,ALIAS_COMRES); | ||||
|   _rel->add(LF_COMUNI, "COM==DOM_CODCOM",1,LF_SOGGETTI,ALIAS_COMDOM); | ||||
|   _rel->add(LF_COMUNI, "COM==COMNASC",1,LF_SOGGETTI,ALIAS_COMNAS); | ||||
|    | ||||
| 	//cursore ordinamento per sezione+sottogruppo+cognome+nome  
 | ||||
|   _cur = add_cursor(new TCursor(_rel, "", 3)); | ||||
| 	_contsan = new TLocalisamfile(LF_CONTSAN); | ||||
| 	_scontrolli = new TRecord_array(LF_CONTSAN, CON_PROGCON); | ||||
|   TConfig config(CONFIG_STUDIO); | ||||
|   TString16 etformato = config.get("EtFormato"); | ||||
|   _etlarghezza = config.get_int("EtLarghezza"); | ||||
|   _etcolonne = config.get_int("EtColonne"); | ||||
| 	_form_eti = new TEti_scadenzectrl_form(etformato); | ||||
| 	 | ||||
| 	return TRUE; | ||||
| }	 | ||||
| 
 | ||||
| bool TScadenzeControlli::user_destroy()	 | ||||
| { | ||||
| 	delete _form_eti; | ||||
| 	delete _scontrolli; | ||||
| 	delete _contsan; | ||||
| 	delete _rel; | ||||
| 	delete _msk; | ||||
| 	return TRUE; | ||||
| } | ||||
| 
 | ||||
| int at6700(int argc, char* argv[]) | ||||
| { | ||||
| 	TScadenzeControlli a; | ||||
| 	a.run(argc, argv, "Stampa scadenze per controlli"); | ||||
| 	return 0; | ||||
| } | ||||
							
								
								
									
										34
									
								
								at/at6700a.h
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										34
									
								
								at/at6700a.h
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,34 @@ | ||||
| // stampa scadenze per controlli sanitari
 | ||||
| // definizione campi per maschera di selezione
 | ||||
| 
 | ||||
| #define F_SEZINI    101 | ||||
| #define F_D_SEZINI  102 | ||||
| #define F_SOTINI    103 | ||||
| #define F_D_SOTINI  104 | ||||
| #define F_SEZFIN    105 | ||||
| #define F_D_SEZFIN  106 | ||||
| #define F_SOTFIN    107 | ||||
| #define F_D_SOTFIN  108 | ||||
| 
 | ||||
| #define F_CAT1      201 | ||||
| #define F_D_CAT1    202 | ||||
| #define F_CAT2      203 | ||||
| #define F_D_CAT2    204 | ||||
| #define F_CAT3      205 | ||||
| #define F_D_CAT3    206 | ||||
| #define F_CAT4      207 | ||||
| #define F_D_CAT4    208 | ||||
| #define F_CAT5      209 | ||||
| #define F_D_CAT5    210 | ||||
| #define F_CAT6      211 | ||||
| #define F_D_CAT6    212 | ||||
| 
 | ||||
| #define F_TIPO1         301 | ||||
| #define F_D_TIPO1       302 | ||||
| #define F_DATAINI       303 | ||||
| #define F_DATAFIN       304 | ||||
| #define F_LETTINI       305 | ||||
| #define F_LETTFIN       306 | ||||
| 
 | ||||
| #define F_ELENCO    401 | ||||
| #define F_ETICHETTE 402 | ||||
							
								
								
									
										320
									
								
								at/at6700a.uml
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										320
									
								
								at/at6700a.uml
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,320 @@ | ||||
| #include "at6700a.h" | ||||
| 
 | ||||
| TOOLBAR "" 0 20 0 2 | ||||
| 
 | ||||
| BUTTON F_ELENCO 9 2 | ||||
| BEGIN | ||||
|         PROMPT -13 -11 "~Elenco" | ||||
|         MESSAGE EXIT,F_ELENCO | ||||
| END | ||||
| 
 | ||||
| BUTTON F_ETICHETTE 9 2 | ||||
| BEGIN | ||||
|         PROMPT -23 -11 "E~tichette" | ||||
|         MESSAGE EXIT,F_ETICHETTE | ||||
| END | ||||
| 
 | ||||
| BUTTON DLG_QUIT 9 2 | ||||
| BEGIN | ||||
|         PROMPT -33 -11 "" | ||||
| END | ||||
| 
 | ||||
| ENDPAGE | ||||
| 
 | ||||
| PAGE "Scadenze per controlli sanitari" -1 -1 78 20 | ||||
| 
 | ||||
| GROUPBOX DLG_NULL 77 4 | ||||
| BEGIN | ||||
|         PROMPT 1 1 "Scelta sezioni/sottogruppi" | ||||
| END | ||||
| 
 | ||||
| STRING F_SEZINI  2 | ||||
| BEGIN | ||||
|   PROMPT 2 2 "Da " | ||||
|   FLAGS "U" | ||||
|   USE LF_SEZIONI | ||||
|   INPUT CODSEZ F_SEZINI | ||||
|   INPUT CODSOT F_SOTINI | ||||
|   DISPLAY "Cod.sez" CODSEZ | ||||
|   DISPLAY "Cod.sot." CODSOT | ||||
|   DISPLAY "Sezione@25" DENSEZ | ||||
|   DISPLAY "Sottogruppo@25" DENSOT | ||||
|   OUTPUT F_SEZINI CODSEZ | ||||
|   OUTPUT F_D_SEZINI DENSEZ | ||||
|   OUTPUT F_SOTINI CODSOT | ||||
|   OUTPUT F_D_SOTINI DENSOT | ||||
|   CHECKTYPE SEARCH | ||||
|   HELP "Codice sezione da cui partire" | ||||
| END | ||||
| 
 | ||||
| STRING F_D_SEZINI 25 | ||||
| BEGIN | ||||
|   PROMPT 11 2 "" | ||||
|   FLAGS "U" | ||||
|   USE LF_SEZIONI KEY 2 | ||||
|   INPUT DENSEZ F_D_SEZINI | ||||
|   DISPLAY "Sezione@25" DENSEZ | ||||
|   DISPLAY "Sottogruppo@25" DENSOT | ||||
|   DISPLAY "Cod.sez" CODSEZ | ||||
|   DISPLAY "Cod.sot." CODSOT | ||||
|   COPY OUTPUT F_SEZINI | ||||
|   CHECKTYPE NORMAL | ||||
|   HELP "Sezione da cui partire" | ||||
| END | ||||
| 
 | ||||
| STRING F_SOTINI 2 | ||||
| BEGIN | ||||
|   PROMPT 2 3 "   " | ||||
|   COPY ALL F_SEZINI | ||||
|   CHECKTYPE SEARCH | ||||
|   HELP "Codice sottogruppo da cui partire" | ||||
| END | ||||
| 
 | ||||
| STRING F_D_SOTINI 25 | ||||
| BEGIN        	 | ||||
|   PROMPT 11 3 "" | ||||
|   FLAGS "U" | ||||
|   COPY USE F_D_SEZINI | ||||
|   INPUT DENSEZ F_D_SEZINI | ||||
|   INPUT DENSOT F_D_SOTINI | ||||
|   COPY DISPLAY F_D_SEZINI | ||||
|   COPY OUTPUT F_D_SEZINI | ||||
|   CHECKTYPE NORMAL | ||||
|   HELP "Sottogruppo da cui partire" | ||||
| END | ||||
| 
 | ||||
| STRING F_SEZFIN  2 | ||||
| BEGIN | ||||
|   PROMPT 41 2 "A " | ||||
|   FLAGS "U" | ||||
|   USE LF_SEZIONI | ||||
|   INPUT CODSEZ F_SEZFIN | ||||
|   INPUT CODSOT F_SOTFIN | ||||
|   DISPLAY "Cod.sez" CODSEZ | ||||
|   DISPLAY "Cod.sot." CODSOT | ||||
|   DISPLAY "Sezione@25" DENSEZ | ||||
|   DISPLAY "Sottogruppo@25" DENSOT | ||||
|   OUTPUT F_SEZFIN CODSEZ | ||||
|   OUTPUT F_D_SEZFIN DENSEZ | ||||
|   OUTPUT F_SOTFIN CODSOT | ||||
|   OUTPUT F_D_SOTFIN DENSOT | ||||
|   CHECKTYPE SEARCH | ||||
|   HELP "Codice sezione finale" | ||||
| END | ||||
| 
 | ||||
| STRING F_D_SEZFIN 25 | ||||
| BEGIN | ||||
|   PROMPT 49 2 "" | ||||
|   FLAGS "U" | ||||
|   USE LF_SEZIONI KEY 2 | ||||
|   INPUT DENSEZ F_D_SEZFIN | ||||
|   DISPLAY "Sezione@25" DENSEZ | ||||
|   DISPLAY "Sottogruppo@25" DENSOT | ||||
|   DISPLAY "Cod.sez" CODSEZ | ||||
|   DISPLAY "Cod.sot." CODSOT | ||||
|   COPY OUTPUT F_SEZFIN | ||||
|   CHECKTYPE NORMAL | ||||
|   HELP "Sezione finale" | ||||
| END | ||||
| 
 | ||||
| STRING F_SOTFIN 2 | ||||
| BEGIN | ||||
|   PROMPT 41 3 "  " | ||||
|   COPY ALL F_SEZFIN | ||||
|   CHECKTYPE SEARCH | ||||
|   HELP "Codice sottogruppo finale" | ||||
| END | ||||
| 
 | ||||
| STRING F_D_SOTFIN 25 | ||||
| BEGIN        	 | ||||
|   PROMPT 49 3 "" | ||||
|   FLAGS "U" | ||||
|   COPY USE F_D_SEZFIN | ||||
|   INPUT DENSEZ F_D_SEZFIN | ||||
|   INPUT DENSOT F_D_SOTFIN | ||||
|   COPY DISPLAY F_D_SEZFIN | ||||
|   COPY OUTPUT F_D_SEZFIN | ||||
|   CHECKTYPE NORMAL | ||||
|   HELP "Sottogruppo finale" | ||||
| END | ||||
| 
 | ||||
| GROUPBOX DLG_NULL 77 5 | ||||
| BEGIN | ||||
|   PROMPT 1 5 "Categorie" | ||||
| END | ||||
| 
 | ||||
| 
 | ||||
| STRING F_CAT1 2 | ||||
| BEGIN | ||||
|   PROMPT 2 6 "" | ||||
|   FLAGS "U" | ||||
|   USE CTD | ||||
|   INPUT CODTAB F_CAT1 | ||||
|   DISPLAY "Codice" CODTAB | ||||
|   DISPLAY "Descrizione@30" S0 | ||||
|   OUTPUT F_CAT1 CODTAB | ||||
|   OUTPUT F_D_CAT1 S0 | ||||
|   CHECKTYPE NORMAL | ||||
|   WARNING "Codice non presente" | ||||
|   HELP "Categoria di appartenenza" | ||||
| END | ||||
| 
 | ||||
| STRING F_D_CAT1 30 | ||||
| BEGIN | ||||
|   PROMPT 8 6 "" | ||||
|   FLAGS "D" | ||||
| END | ||||
| 
 | ||||
| STRING F_CAT2 2 | ||||
| BEGIN | ||||
|   PROMPT 2 7 "" | ||||
|   FLAGS "U" | ||||
|   USE CTD | ||||
|   INPUT CODTAB F_CAT2 | ||||
|   COPY DISPLAY F_CAT1 | ||||
|   OUTPUT F_CAT2 CODTAB | ||||
|   OUTPUT F_D_CAT2 S0 | ||||
|   CHECKTYPE NORMAL | ||||
|   WARNING "Codice non presente" | ||||
|   HELP "Categoria di appartenenza" | ||||
| END | ||||
| 
 | ||||
| STRING F_D_CAT2 30 | ||||
| BEGIN | ||||
|   PROMPT 8 7 "" | ||||
|   FLAGS "D" | ||||
| END | ||||
| 
 | ||||
| STRING F_CAT3 2 | ||||
| BEGIN | ||||
|   PROMPT 2 8 "" | ||||
|   FLAGS "U" | ||||
|   USE CTD | ||||
|   INPUT CODTAB F_CAT3 | ||||
|   COPY DISPLAY F_CAT1 | ||||
|   OUTPUT F_CAT3 CODTAB | ||||
|   OUTPUT F_D_CAT3 S0 | ||||
|   CHECKTYPE NORMAL | ||||
|   WARNING "Codice non presente" | ||||
|   HELP "Categoria di appartenenza" | ||||
| END | ||||
| 
 | ||||
| STRING F_D_CAT3 30 | ||||
| BEGIN | ||||
|   PROMPT 8 8 "" | ||||
|   FLAGS "D" | ||||
| END | ||||
| 
 | ||||
| STRING F_CAT4 2 | ||||
| BEGIN | ||||
|   PROMPT 40 6 "" | ||||
|   FLAGS "U" | ||||
|   USE CTD | ||||
|   INPUT CODTAB F_CAT4 | ||||
|   COPY DISPLAY F_CAT1 | ||||
|   OUTPUT F_CAT4 CODTAB | ||||
|   OUTPUT F_D_CAT4 S0 | ||||
|   CHECKTYPE NORMAL | ||||
|   WARNING "Codice non presente" | ||||
|   HELP "Categoria di appartenenza" | ||||
| END | ||||
| 
 | ||||
| STRING F_D_CAT4 30 | ||||
| BEGIN | ||||
|   PROMPT 46 6 "" | ||||
|   FLAGS "D" | ||||
| END | ||||
| 
 | ||||
| STRING F_CAT5 2 | ||||
| BEGIN | ||||
|   PROMPT 40 7 "" | ||||
|   FLAGS "U" | ||||
|   USE CTD | ||||
|   INPUT CODTAB F_CAT5 | ||||
|   COPY DISPLAY F_CAT1 | ||||
|   OUTPUT F_CAT5 CODTAB | ||||
|   OUTPUT F_D_CAT5 S0 | ||||
|   CHECKTYPE NORMAL | ||||
|   WARNING "Codice non presente" | ||||
|   HELP "Categoria di appartenenza" | ||||
| END | ||||
| 
 | ||||
| STRING F_D_CAT5 30 | ||||
| BEGIN | ||||
|   PROMPT 46 7 "" | ||||
|   FLAGS "D" | ||||
| END | ||||
| 
 | ||||
| STRING F_CAT6 2 | ||||
| BEGIN | ||||
|   PROMPT 40 8 "" | ||||
|   FLAGS "U" | ||||
|   USE CTD | ||||
|   INPUT CODTAB F_CAT6 | ||||
|   COPY DISPLAY F_CAT1 | ||||
|   OUTPUT F_CAT6 CODTAB | ||||
|   OUTPUT F_D_CAT6 S0 | ||||
|   CHECKTYPE NORMAL | ||||
|   WARNING "Codice non presente" | ||||
|   HELP "Categoria di appartenenza" | ||||
| END | ||||
| 
 | ||||
| STRING F_D_CAT6 30 | ||||
| BEGIN | ||||
|   PROMPT 46 8 "" | ||||
|   FLAGS "D" | ||||
| END | ||||
| 
 | ||||
| GROUPBOX DLG_NULL 77 4 | ||||
| BEGIN | ||||
|         PROMPT 1 10 "Selezioni per la stampa" | ||||
| END | ||||
| 
 | ||||
| STRING F_TIPO1 2 | ||||
| BEGIN | ||||
|   PROMPT 2 11 "Tipo controllo " | ||||
|   FLAGS "U" | ||||
|   USE TCS | ||||
|   INPUT CODTAB F_TIPO1 | ||||
|   DISPLAY "Codice" CODTAB | ||||
|   DISPLAY "Descrizione@30" S0 | ||||
|   OUTPUT F_TIPO1 CODTAB | ||||
|   OUTPUT F_D_TIPO1 S0 | ||||
|   CHECKTYPE NORMAL | ||||
|   WARNING "Codice non presente" | ||||
|   HELP "Tipo/Esito controllo sanitario" | ||||
| END | ||||
| 
 | ||||
| STRING F_D_TIPO1 30 | ||||
| BEGIN | ||||
|   PROMPT 22 11 "" | ||||
|   FLAGS "D" | ||||
| END | ||||
| 
 | ||||
| DATE F_DATAINI | ||||
| BEGIN | ||||
|    PROMPT 2 12 "Data iniziale  " | ||||
| END | ||||
| 
 | ||||
| DATE F_DATAFIN | ||||
| BEGIN | ||||
|    PROMPT 30 12 "Data finale " | ||||
| END | ||||
| 
 | ||||
| STRING F_LETTINI 15 | ||||
| BEGIN | ||||
|    PROMPT 2 15 "Selezione iniziali cognome: da " | ||||
|    FLAG "U" | ||||
|    //PICTURE "!!" | ||||
| END | ||||
| 
 | ||||
| STRING F_LETTFIN 15 | ||||
| BEGIN | ||||
|    PROMPT 50 15 "a " | ||||
|    FLAG "U" | ||||
|    //VALIDATE (#F_LETTINI<=#F_LETTFIN) | ||||
|    //PICTURE "!!" | ||||
| END | ||||
| 
 | ||||
| ENDPAGE | ||||
| ENDMASK | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user