Patch level :2.0 personalizzazione CRPA
Files correlati :ce4.exe ce4100a.msk f145.dir/trr Ricompilazione Demo : [ ] Commento :personalizzazione cespiti per commessa del CRPA;prima implementazione: anagrafica cespiti per commessa git-svn-id: svn://10.65.10.50/trunk@11586 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
		
							parent
							
								
									d5e5628902
								
							
						
					
					
						commit
						06fe3e88f9
					
				
							
								
								
									
										19
									
								
								ce/ce4.cpp
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										19
									
								
								ce/ce4.cpp
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,19 @@ | ||||
| #include <xvt.h> | ||||
| 
 | ||||
| #include "ce4.h" | ||||
| 
 | ||||
| int main(int argc,char** argv) | ||||
| { | ||||
|   const int r = (argc > 1) ? (argv[1][1]-'0') : 0; | ||||
|   switch (r) | ||||
|   { | ||||
| /*  case  1:
 | ||||
|     ce4200(argc,argv); break; //calcolo cespiti per commessa
 | ||||
|   case  2: | ||||
|     ce4300(argc,argv); break;*/ //stampa cespiti per commessa
 | ||||
|   case  0: | ||||
|   default: ce4100(argc,argv) ; break; // inserimento cespiti per commessa (personalizzazione CRPA)
 | ||||
|   } | ||||
|   return 0; | ||||
| } | ||||
|                                         | ||||
							
								
								
									
										10
									
								
								ce/ce4.h
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										10
									
								
								ce/ce4.h
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,10 @@ | ||||
| #ifndef __CE4_H | ||||
| #define __CE4_H | ||||
| 
 | ||||
| int ce4100(int argc, char* argv[]); | ||||
| //int ce4200(int argc, char* argv[]);
 | ||||
| //int ce4300(int argc, char* argv[]);
 | ||||
| 
 | ||||
| 
 | ||||
| #endif // __CE4_H
 | ||||
| 
 | ||||
							
								
								
									
										145
									
								
								ce/ce4100.cpp
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										145
									
								
								ce/ce4100.cpp
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,145 @@ | ||||
| #include<automask.h> | ||||
| #include<relapp.h> | ||||
| 
 | ||||
| #include "ce4100a.h" | ||||
| 
 | ||||
| //=============================================================================================
 | ||||
| //maschera
 | ||||
| 
 | ||||
| class TCesp_per_cms_mask: public TAutomask  | ||||
| { | ||||
| public: | ||||
|   virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly); | ||||
| 
 | ||||
|   real TCesp_per_cms_mask::somma_perc() const; | ||||
| 
 | ||||
|   TCesp_per_cms_mask():TAutomask("ce4100a") {} | ||||
| }; | ||||
| 
 | ||||
| real TCesp_per_cms_mask::somma_perc() const | ||||
| { | ||||
|   TSheet_field& ss = sfield(F_RIGHE); | ||||
|   real tot_perc; | ||||
|   FOR_EACH_SHEET_ROW(ss,i,r) | ||||
|     tot_perc += real(r->get(ss.cid2index(S_PERCUTIL))); | ||||
|   return tot_perc; | ||||
| } | ||||
| 
 | ||||
| bool TCesp_per_cms_mask::on_field_event(TOperable_field& o, TField_event e, long jolly) | ||||
| { | ||||
|   switch (o.dlg()) | ||||
|   { | ||||
|   case F_RIGHE: | ||||
|     if (e == se_notify_add) | ||||
|     { | ||||
|       TSheet_field& ss = (TSheet_field&)o; | ||||
|       real residuo = CENTO - somma_perc(); | ||||
|       if (residuo > 0) | ||||
|       { | ||||
|         TToken_string& row = ss.row(jolly); | ||||
|         row.add(residuo.string(),ss.cid2index(S_PERCUTIL)); | ||||
|       }  | ||||
|     } | ||||
|     if (e == fe_close && (insert_mode() || edit_mode())) | ||||
|     { | ||||
| //controllo sulle percentuali totali di un cespite
 | ||||
|       if (somma_perc() != CENTO) | ||||
|         return noyes_box("La percentuale complessiva di utilizzo del cespite e' diversa da 100" | ||||
|                          "\nSi desidera proseguire ?"); | ||||
|        | ||||
|       TAssoc_array lista_cms; | ||||
| 
 | ||||
|       TSheet_field& ss = sfield(F_RIGHE); | ||||
|       FOR_EACH_SHEET_ROW(ss,i,r) | ||||
|       { | ||||
| //controllo di esistenza codice commessa
 | ||||
|         const TString& cms = r->get(ss.cid2index(S_CODCMS)); | ||||
|         if (cms.blank()) | ||||
|           return error_box("Specificare la commessa sulla riga %d", i+1); | ||||
| //controllo di duplicazione codice commessa
 | ||||
|         if (lista_cms.is_key(cms)) | ||||
|           return error_box("Codice commessa %s duplicato", (const char *)cms); | ||||
|         lista_cms.add(cms); | ||||
|       } | ||||
|     } | ||||
|     break; | ||||
|   default: break; | ||||
|   } | ||||
|   return true; | ||||
| } | ||||
| 
 | ||||
| //===============================================================================================
 | ||||
| //Applicazione
 | ||||
| class TCesp_per_cms: public TRelation_application  | ||||
| { | ||||
|   TCesp_per_cms_mask *_msk; // maschera principale
 | ||||
|   TRelation *_rel; // relazione principale
 | ||||
| 
 | ||||
| //metodi virtuali obbligatori per gli oggetti TRelation_application
 | ||||
| protected: | ||||
|   virtual bool user_create(); | ||||
|   virtual bool user_destroy(); | ||||
|   virtual TMask* get_mask(int mode) { return _msk; } | ||||
|   virtual bool changing_mask(int mode) { return FALSE;} | ||||
|   virtual void init_query_mode(TMask& m); | ||||
|   virtual void init_query_insert_mode(TMask& m); | ||||
|   virtual void init_insert_mode(TMask& m); | ||||
|   virtual void init_modify_mode(TMask& m); | ||||
| 
 | ||||
|   virtual TRelation* get_relation() const { return _rel; } | ||||
| 
 | ||||
| public: | ||||
|   virtual ~TCesp_per_cms() {} | ||||
| }; | ||||
| 
 | ||||
| //metodi per la maschera
 | ||||
| //abilita i campi per inserimento nuovo cespite,attivando i campi del gruppo 2 (che fanno riferimento al file LF_CESPI)
 | ||||
| void TCesp_per_cms::init_query_insert_mode(TMask& m) | ||||
| { | ||||
|   m.enable(-2); | ||||
|   m.show(-2); | ||||
|   m.hide(-1); | ||||
| } | ||||
| //abilita i campi per ricercare un cespite gia' inserito,attivando i campi del gruppo 1(LF_SALCECMS)
 | ||||
| void TCesp_per_cms::init_query_mode(TMask& m) | ||||
| { | ||||
|   m.show(-1); | ||||
|   m.hide(-2); | ||||
|   m.set(F_DESC,""); | ||||
| } | ||||
| 
 | ||||
| void TCesp_per_cms::init_insert_mode(TMask& m) | ||||
| { | ||||
|   m.hide(-1); | ||||
|   m.disable(-2); | ||||
| } | ||||
| 
 | ||||
| void TCesp_per_cms::init_modify_mode(TMask& m) | ||||
| { | ||||
|   m.hide(-2); | ||||
| } | ||||
| 
 | ||||
| bool TCesp_per_cms::user_create() | ||||
| { | ||||
|   _rel = new TRelation(LF_SALCECMS); | ||||
|   _msk = new TCesp_per_cms_mask; | ||||
|   return TRUE; | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| bool TCesp_per_cms::user_destroy()  | ||||
| { | ||||
|   delete _rel; | ||||
|   delete _msk; | ||||
|   return TRUE; | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| int ce4100(int argc, char* argv[]) | ||||
| { | ||||
|   TCesp_per_cms a; | ||||
|   a.run(argc,argv,TR("Inserimento cespiti per commessa")); | ||||
|   return 0; | ||||
| } | ||||
| 
 | ||||
							
								
								
									
										19
									
								
								ce/ce4100a.h
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										19
									
								
								ce/ce4100a.h
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,19 @@ | ||||
| //definizioni campi per la maschera ce4100a.uml (immissione cespiti per commessa)
 | ||||
| #define F_DITTA         201 | ||||
| #define F_RAGSOC        202 | ||||
| #define F_ESERCIZIO     203 | ||||
| #define F_INIZIO_ES     204 | ||||
| #define F_FINE_ES       205 | ||||
| #define F_IDCESPITE     206 | ||||
| #define F_DESC          207 | ||||
| #define F_IDCESPITE_N   208 | ||||
| #define F_DESC_N        209 | ||||
| #define F_NRIGA         210 | ||||
| 
 | ||||
| #define F_RIGHE         211 | ||||
| 
 | ||||
| #define S_CODCMS        101 | ||||
| #define S_DESCMS        102 | ||||
| #define S_PERCUTIL      103 | ||||
| #define S_PERCCOPE      104 | ||||
| #define S_FONDO         105 | ||||
							
								
								
									
										225
									
								
								ce/ce4100a.uml
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										225
									
								
								ce/ce4100a.uml
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,225 @@ | ||||
| #include "ce4100a.h" | ||||
| 
 | ||||
| TOOLBAR "Toolbar" 0 -3 0 3 | ||||
| 
 | ||||
| #include <toolbar.h> | ||||
| 
 | ||||
| ENDPAGE | ||||
| 
 | ||||
| PAGE "Anagrafica cespiti per commessa" -1 -1 0 -3 | ||||
| 
 | ||||
| GROUPBOX DLG_NULL 78 5 | ||||
| BEGIN | ||||
|   PROMPT 0 1 "@bParametri cespite" | ||||
| END | ||||
| 
 | ||||
| NUMBER F_DITTA 5 | ||||
| BEGIN | ||||
|   PROMPT 1 2 "Ditta     " | ||||
|   FLAGS "DF" | ||||
| END | ||||
| 
 | ||||
| STRING F_RAGSOC 50 | ||||
| BEGIN | ||||
|   PROMPT 26 2 "" | ||||
|   USE LF_NDITTE | ||||
|   INPUT CODDITTA F_DITTA | ||||
|   OUTPUT F_RAGSOC RAGSOC | ||||
|   CHECKTYPE NORMAL | ||||
|   FLAGS "D" | ||||
| END | ||||
| 
 | ||||
| NUMBER F_ESERCIZIO 4 | ||||
| BEGIN | ||||
|   PROMPT 1 3 "Esercizio " | ||||
|   FLAGS "AZ" | ||||
|   USE CCE | ||||
|   JOIN ESC ALIAS 104 INTO CODTAB==CODTAB | ||||
|   INPUT CODTAB F_ESERCIZIO | ||||
|   DISPLAY "Codice esercizio" CODTAB | ||||
|   DISPLAY "Inizio esercizio" 104@->D0 | ||||
|   DISPLAY "Fine esercizio" 104@->D1 | ||||
|   OUTPUT F_ESERCIZIO CODTAB | ||||
|   OUTPUT F_INIZIO_ES 104@->D0 | ||||
|   OUTPUT F_FINE_ES 104@->D1 | ||||
|   CHECKTYPE REQUIRED | ||||
|   FIELD CODES | ||||
|   KEY 1 | ||||
| END | ||||
| 
 | ||||
| DATE F_INIZIO_ES | ||||
| BEGIN | ||||
|   PROMPT 26 3 "Inizio " | ||||
|   FLAGS "D" | ||||
| END | ||||
| 
 | ||||
| DATE F_FINE_ES | ||||
| BEGIN | ||||
|   PROMPT 50 3 "Fine " | ||||
|   FLAGS "D" | ||||
| END | ||||
| 
 | ||||
| LIST F_NRIGA 3 | ||||
| BEGIN | ||||
|   PROMPT 1 100 "" | ||||
|   FLAGS "D" | ||||
|   ITEM "1|1" | ||||
|   FIELD NRIGA | ||||
|   KEY 1 | ||||
| END | ||||
| 
 | ||||
| STRING F_IDCESPITE 10 | ||||
| BEGIN | ||||
|   PROMPT 1 4 "Cespite " | ||||
|   FLAGS "UZ" | ||||
|   USE LF_SALCECMS SELECT NRIGA==1 | ||||
|   JOIN LF_CESPI INTO IDCESPITE==IDCESPITE | ||||
|   INPUT CODES F_ESERCIZIO | ||||
|   INPUT IDCESPITE F_IDCESPITE | ||||
|   DISPLAY "Codice@10" IDCESPITE | ||||
|   DISPLAY "Descrizione@50" LF_CESPI->DESC | ||||
|   DISPLAY "Cat." LF_CESPI->CODCAT | ||||
|   DISPLAY "Impianto@10" LF_CESPI->CODIMP | ||||
|   DISPLAY "Stabilimento@30" LF_CESPI->STABILIM | ||||
|   DISPLAY "Reparto@30" LF_CESPI->REPARTO | ||||
|   DISPLAY "Data Acq.@10" LF_CESPI->DTCOMP | ||||
|   DISPLAY "Data Ali.@10" LF_CESPI->DTALIEN | ||||
|   OUTPUT F_ESERCIZIO CODES | ||||
|   OUTPUT F_IDCESPITE IDCESPITE | ||||
|   OUTPUT F_IDCESPITE_N IDCESPITE | ||||
|   OUTPUT F_DESC LF_CESPI->DESC | ||||
|   CHECKTYPE REQUIRED | ||||
|   FIELD IDCESPITE | ||||
|   KEY 1 | ||||
|   GROUP 1 | ||||
| END | ||||
| 
 | ||||
| STRING F_DESC 60 50 | ||||
| BEGIN | ||||
|   PROMPT 24 4 "" | ||||
|   FLAGS "DP" | ||||
|   GROUP 1 | ||||
| END | ||||
| 
 | ||||
| STRING F_IDCESPITE_N 10 | ||||
| BEGIN | ||||
|   PROMPT 1 4 "Cespite " | ||||
|   FLAGS "UZ" | ||||
|   FIELD IDCESPITE | ||||
|   USE LF_CESPI | ||||
|   INPUT IDCESPITE F_IDCESPITE_N | ||||
|   DISPLAY "Codice@10" IDCESPITE | ||||
|   DISPLAY "Descrizione@50" DESC | ||||
|   DISPLAY "Cat." CODCAT | ||||
|   DISPLAY "Impianto@10" CODIMP | ||||
|   DISPLAY "Stabilimento@30" STABILIM | ||||
|   DISPLAY "Reparto@30" REPARTO | ||||
|   DISPLAY "Data Acq.@10" DTCOMP | ||||
|   DISPLAY "Data Ali.@10" DTALIEN | ||||
|   OUTPUT F_IDCESPITE IDCESPITE | ||||
|   OUTPUT F_IDCESPITE_N IDCESPITE | ||||
|   OUTPUT F_DESC_N DESC | ||||
|   CHECKTYPE REQUIRED | ||||
|   KEY 1 | ||||
|   GROUP 2 | ||||
| END | ||||
| 
 | ||||
| STRING F_DESC_N 60 50 | ||||
| BEGIN | ||||
|   PROMPT 24 4 "" | ||||
|   USE LF_CESPI KEY 3 | ||||
|   INPUT DESC F_DESC_N | ||||
|   DISPLAY "Descrizione@50" DESC | ||||
|   DISPLAY "Codice@10" IDCESPITE | ||||
|   DISPLAY "Cat." CODCAT | ||||
|   DISPLAY "Impianto@10" CODIMP | ||||
|   DISPLAY "Stabilimento@30" STABILIM | ||||
|   DISPLAY "Reparto@30" REPARTO | ||||
|   DISPLAY "Data Acq.@10" DTCOMP | ||||
|   DISPLAY "Data Ali.@10" DTALIEN | ||||
|   COPY OUTPUT F_IDCESPITE_N | ||||
|   CHECKTYPE REQUIRED | ||||
|   GROUP 2 | ||||
|   KEY 2	//chiave civetta per provocare l'entrata in modalita' INSERIMENTO in caso di ricerca per descrizione | ||||
| END | ||||
| 
 | ||||
| SPREADSHEET F_RIGHE | ||||
| BEGIN | ||||
|   PROMPT 2 6 "" | ||||
|   ITEM "Codice commessa" | ||||
|   ITEM "Descrizione@50" | ||||
|   ITEM "% Utilizzo" | ||||
|   ITEM "% Copertura" | ||||
|   ITEM "Valore fondo per commessa" | ||||
|   USE LF_SALCECMS KEY NRIGA | ||||
|   INPUT CODES F_ESERCIZIO | ||||
|   INPUT IDCESPITE F_IDCESPITE | ||||
|   FLAGS "A" | ||||
| END | ||||
| 
 | ||||
| ENDPAGE | ||||
| 
 | ||||
| ENDMASK | ||||
| 
 | ||||
| //maschera di riga dello sheet | ||||
| PAGE "Riga" -1 -1 64 8 | ||||
| 
 | ||||
| STRING S_CODCMS 20 | ||||
| BEGIN | ||||
|   PROMPT 1 1 "Codice commessa " | ||||
|   USE CMS | ||||
|   INPUT CODTAB S_CODCMS | ||||
|   DISPLAY "Codice@20" CODTAB | ||||
|   DISPLAY "Descrizione@50" S0 | ||||
|   OUTPUT S_CODCMS CODTAB | ||||
|   OUTPUT S_DESCMS S0 | ||||
|   CHECKTYPE REQUIRED | ||||
|   FIELD CODCMS | ||||
|   FLAGS "U" | ||||
| END | ||||
| 
 | ||||
| STRING S_DESCMS 50 45 | ||||
| BEGIN | ||||
|  PROMPT 1 2 "Descrizione " | ||||
|  FLAGS "D" | ||||
| END | ||||
| 
 | ||||
| NUMBER S_PERCUTIL 6 2 | ||||
| BEGIN | ||||
|   PROMPT 1 3 "Percentuale utilizzo  " | ||||
|   CHECKTYPE REQUIRED | ||||
|   FLAGS "U" | ||||
|   FIELD PERCUTIL | ||||
| END | ||||
| 
 | ||||
| NUMBER S_PERCCOPE 6 2 | ||||
| BEGIN | ||||
|   PROMPT 1 4 "Percentuale copertura " | ||||
|   FLAGS "U" | ||||
|   FIELD PERCCOPE | ||||
| END | ||||
| 
 | ||||
| CURRENCY S_FONDO 18 | ||||
| BEGIN | ||||
|   PROMPT 1 5 "Valore fondo per commessa " | ||||
|   FIELD FONDO | ||||
| END | ||||
| 
 | ||||
| BUTTON DLG_OK 10 2 | ||||
| BEGIN | ||||
|   PROMPT -13 -1 "" | ||||
| END | ||||
| 
 | ||||
| BUTTON DLG_CANCEL 10 2 | ||||
| BEGIN | ||||
|   PROMPT -23 -1 "" | ||||
| END | ||||
| 
 | ||||
| BUTTON DLG_DELREC 10 2 | ||||
| BEGIN | ||||
|   PROMPT -33 -1 "" | ||||
| END | ||||
| 
 | ||||
| ENDPAGE | ||||
| 
 | ||||
| ENDMASK | ||||
							
								
								
									
										3
									
								
								ce/f145.dir
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										3
									
								
								ce/f145.dir
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,3 @@ | ||||
| 145 | ||||
| 0 | ||||
| $salcecms|0|0|67|0|Fondi cespiti per commesse||| | ||||
							
								
								
									
										12
									
								
								ce/f145.trr
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										12
									
								
								ce/f145.trr
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,12 @@ | ||||
| 145 | ||||
| 7 | ||||
| IDCESPITE|1|10|0|Codice cespite | ||||
| CODES|2|4|0|Codice esercizio | ||||
| NRIGA|2|3|0|N. riga | ||||
| CODCMS|1|20|0|Codice commessa | ||||
| PERCUTIL|4|6|2|Percentuale di utilizzo | ||||
| PERCCOPE|4|6|2|Percentuale di copertura | ||||
| FONDO|4|18|3|Valore fondo per commessa | ||||
| 2 | ||||
| IDCESPITE+CODES+NRIGA| | ||||
| CODES+IDCESPITE+NRIGA| | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user