Patch level :10.0
Files correlati : Ricompilazione Demo : [ ] Commento :continuano le peripezie sulla gestione multilistini git-svn-id: svn://10.65.10.50/trunk@19376 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
		
							parent
							
								
									685c5e3ed1
								
							
						
					
					
						commit
						c0240eae36
					
				| @ -295,9 +295,15 @@ int TVendite_tabapp::read(TMask& m) | ||||
|       } | ||||
|                   | ||||
|       listini.destroy(); | ||||
|       //questo serve per settare il separatore in modo che non mandi in confusione l'editor degli archivi..
 | ||||
|       //..separator è definito nella maschera
 | ||||
|       TToken_string stringhina(16, listini.separator()); | ||||
|       FOR_EACH_TOKEN(stringona, str) | ||||
|       { | ||||
|         listini.row(-1) = str; | ||||
|         stringhina = str; | ||||
|         if (stringhina.find('|') >= 0)    //converte eventuali pipe standard in broken pipe
 | ||||
|           stringhina.replace('|', stringhina.separator()); | ||||
|         listini.row(-1) = stringhina; | ||||
|         listini.check_row(listini.items() - 1); | ||||
|       } | ||||
|       listini.force_update(); | ||||
| @ -332,7 +338,7 @@ void TVendite_tabapp::write_gmc(const TMask& m, TRectype& curr) | ||||
|   TToken_string s1(70, ';'), s2(70, ';'); | ||||
|   FOR_EACH_SHEET_ROW (listini, r, riga) | ||||
|   { | ||||
|     TToken_string mini_string(12, '|'); | ||||
|     TToken_string mini_string(12, SAFE_PIPE_CHR);   //separatore broken_pipe !!!
 | ||||
|     mini_string.add(riga->get(0));      //catven
 | ||||
|     mini_string.add(riga->get());       //codlis
 | ||||
|     mini_string.add(riga->get());       //ricarico
 | ||||
|  | ||||
							
								
								
									
										239
									
								
								ve/ve2700.cpp
									
									
									
									
									
								
							
							
						
						
									
										239
									
								
								ve/ve2700.cpp
									
									
									
									
									
								
							| @ -4,6 +4,7 @@ | ||||
| #include <recarray.h> | ||||
| #include <recset.h> | ||||
| #include <relapp.h> | ||||
| #include <tabutil.h> | ||||
| 
 | ||||
| #include "condv.h" | ||||
| #include "rcondv.h" | ||||
| @ -19,14 +20,145 @@ class TAggiorna_listini_edit_mask : public TAutomask | ||||
|   TMask* _query_mask; //puntatore alla maschera di query
 | ||||
| 
 | ||||
| protected: | ||||
|   void fill_children_list(); | ||||
|   void fill_ricarichi_children_list(); | ||||
|   void save_children_list(); | ||||
|   void fill_aggiorna_sheet(); | ||||
|   virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly); | ||||
| 
 | ||||
| public: | ||||
|   TAggiorna_listini_edit_mask(TMask* query_mask); | ||||
|   void aggiorna_listini_figli(); | ||||
| }; | ||||
| 
 | ||||
| 
 | ||||
| //metodo per riempire lo sheet dei listini figli con i ricarichi oggi tanto di moda 
 | ||||
| void TAggiorna_listini_edit_mask::fill_ricarichi_children_list() | ||||
| { | ||||
|   TString8 grmerc; | ||||
|   grmerc.format("%-3s%-2s", (const char*)get(F_GRMERC),(const char*)get(F_SOTGRMERC)); | ||||
|   const TRectype& rec_gmc = cache().get("GMC", grmerc); | ||||
|   TToken_string lista_listini(rec_gmc.get("S1"), ';'); | ||||
|   //se trova qualcosa nella lista listini collegati al grmerc...
 | ||||
|   if (lista_listini.full()) | ||||
|   { | ||||
|     lista_listini.trim(); | ||||
|     //se la lista di listini riempie il campo S1, magari continua in S2...
 | ||||
|     if (lista_listini.len() == 70) | ||||
|     { | ||||
|       lista_listini.add(rec_gmc.get("S2")); | ||||
|       lista_listini.trim(); | ||||
|     } | ||||
|     //cerca se i listini trovati in GMC ci sono anche nello sheet dei figli
 | ||||
|     TSheet_field& sf_righe = sfield(F_LISTINI_FIGLI); | ||||
|     const int righe_sheet = sf_righe.items(); | ||||
| 
 | ||||
|     FOR_EACH_STR_TOKEN(lista_listini, str) | ||||
|     { | ||||
|       //controlla se il listino in grmerc (chiave) esiste in una delle righe dello sheet dei figli
 | ||||
|       TToken_string chiave(str, SAFE_PIPE_CHR); | ||||
|       TString4 catven = chiave.get(0); | ||||
|       catven.trim(); | ||||
|       TString4 codlis = chiave.get(1); | ||||
|       codlis.trim(); | ||||
| 
 | ||||
|       FOR_EACH_SHEET_ROW(sf_righe, i, row) | ||||
|       { | ||||
|         TString4 sh_catven = row->get(0); | ||||
|         sh_catven.trim(); | ||||
|         TString4 sh_codlis = row->get(1); | ||||
|         sh_codlis.trim(); | ||||
|         //se incredibilmente trova il listino di grmerc tra i figli prigionieri nello sheet setta il ricarico
 | ||||
|         if (catven == sh_catven && codlis == sh_codlis) | ||||
|           row->add(chiave.get(2), 2); | ||||
|       } //FOR_EACH_SHEETT_ROW(...
 | ||||
| 
 | ||||
|     } //FOR_EACH_STR_TOKEN
 | ||||
|     sf_righe.force_update(); | ||||
|   } //if(lista_listini.full...
 | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| //metodo per il salvataggio dei ricarichi sulla tabella GMC dei gruppi merceologici
 | ||||
| void TAggiorna_listini_edit_mask::save_children_list() | ||||
| { | ||||
|   TString8 grmerc; | ||||
|   grmerc.format("%-3s%-2s", (const char*)get(F_GRMERC),(const char*)get(F_SOTGRMERC)); | ||||
|   if (grmerc.full()) | ||||
|   { | ||||
|     //cerca sulla tabella GMC il record corrispondente all'attuale GMC
 | ||||
|     TTable tab_gmc("GMC"); | ||||
|     tab_gmc.put("CODTAB", grmerc); | ||||
|     int err = tab_gmc.read(); | ||||
|     if (err == NOERR) | ||||
|     { | ||||
|       //prende S1 e, se pieno, anche S2
 | ||||
|       TToken_string stringona(140, ';'); | ||||
|       TString s = tab_gmc.get("S1"); | ||||
|       if (s.full()) | ||||
|       { | ||||
|         stringona.add(s); | ||||
|         s = tab_gmc.get("S2"); | ||||
|         if (s.full()) | ||||
|           stringona.add(s); | ||||
|       } | ||||
|       //mette tutte le token_stringhine catven|codlis|ricarico in uno string_array, in modo da tener traccia..
 | ||||
|       //..della loro posizione (ogni elemento dello string_array è una token_stringhina)
 | ||||
|       TString_array ricarichi; | ||||
|       FOR_EACH_STR_TOKEN(stringona, str) | ||||
|         ricarichi.add(str); | ||||
|        | ||||
|       //giro su tutti gli elementi dell'array
 | ||||
|       FOR_EACH_ARRAY_ROW(ricarichi, i, row) | ||||
|       { | ||||
|         TToken_string chiave(*row, SAFE_PIPE_CHR);  //separatore broken_pipe
 | ||||
|         TString4 catven = chiave.get(0); | ||||
|         catven.trim(); | ||||
|         TString4 codlis = chiave.get(1); | ||||
|         codlis.trim(); | ||||
| 
 | ||||
|         //giro sulle righe dello sheet listini figli
 | ||||
|         TSheet_field& sf_righe = sfield(F_LISTINI_FIGLI); | ||||
|         FOR_EACH_SHEET_ROW_BACK(sf_righe, r, riga) | ||||
|         { | ||||
|           TString4 sh_catven = riga->get(0); | ||||
|           sh_catven.trim(); | ||||
|           TString4 sh_codlis = riga->get(1); | ||||
|           sh_codlis.trim(); | ||||
|           //se incredibilmente trova il listino dell'array tra i figli prigionieri nello sheet..
 | ||||
|           if (catven == sh_catven && codlis == sh_codlis) | ||||
|           { | ||||
|             const TString& ricarico = riga->get(2); | ||||
|             chiave.add(ricarico, 2);  //setta il ricarico nella cella dello sheet
 | ||||
|             ricarichi.add(chiave, i); //lo aggiunge all'array dei ricarichi
 | ||||
|             break;                    //esce perchè non può fare altro
 | ||||
|           } | ||||
|         } //FOR_EACH_SHEET_ROW_BACK...
 | ||||
|       } //FOR_EACH_ARRAY_ROW
 | ||||
| 
 | ||||
|       //adesso deve tornare a scrivere le nuove S1 ed S2 modificate
 | ||||
|       TToken_string s1(70, ';'), s2(70, ';'); | ||||
|       FOR_EACH_ARRAY_ROW (ricarichi, r, riga) | ||||
|       { | ||||
|         TToken_string mini_string(*riga, SAFE_PIPE_CHR);   //separatore broken_pipe !!!
 | ||||
|         if (s1.len() + mini_string.len() < 70) | ||||
|           s1.add(mini_string); | ||||
|         else | ||||
|         { | ||||
|           if (s2.len() + mini_string.len() < 70) | ||||
|             s2.add(mini_string); | ||||
|         } | ||||
|       } //FOR_EACH_ARRAY_ROW..
 | ||||
| 
 | ||||
|       //finalmente scrive sulla tabella GMC
 | ||||
|       tab_gmc.put("S1", s1); | ||||
|       tab_gmc.put("S2", s2); | ||||
|       tab_gmc.rewrite(); | ||||
| 
 | ||||
|     } //if(err==NOERR)
 | ||||
|   } //if(grmerc.full())
 | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| bool TAggiorna_listini_edit_mask::on_field_event(TOperable_field& o, TField_event e, long jolly) | ||||
| { | ||||
|   switch(o.dlg()) | ||||
| @ -36,47 +168,15 @@ bool TAggiorna_listini_edit_mask::on_field_event(TOperable_field& o, TField_even | ||||
|     //una volta selezionati grmerc/sotgrmerc riempie la colonna ricarico dello sheet
 | ||||
|     if (e == fe_modify) | ||||
|     { | ||||
|       TString8 grmerc; | ||||
|       grmerc.format("%-3s%-2s", (const char*)get(F_GRMERC),(const char*)get(F_SOTGRMERC)); | ||||
|       const TRectype& rec_gmc = cache().get("GMC", grmerc); | ||||
|       TToken_string lista_listini(rec_gmc.get("S1"), ';'); | ||||
|       //se trova qualcosa nella lista listini collegati al grmerc...
 | ||||
|       if (lista_listini.full()) | ||||
|       { | ||||
|         lista_listini.trim(); | ||||
|         //se la lista di listini riempie il campo S1, magari continua in S2...
 | ||||
|         if (lista_listini.len() == 70) | ||||
|         { | ||||
|           lista_listini.add(rec_gmc.get("S2")); | ||||
|           lista_listini.trim(); | ||||
|         } | ||||
|         //cerca se i listini trovati in GMC ci sono anche nello sheet dei figli
 | ||||
|         TSheet_field& sf_righe = sfield(F_LISTINI_FIGLI); | ||||
|         const int righe_sheet = sf_righe.items(); | ||||
|       fill_ricarichi_children_list(); | ||||
|     } | ||||
|     break; | ||||
| 
 | ||||
|         FOR_EACH_STR_TOKEN(lista_listini, str) | ||||
|         { | ||||
|           //controlla se il listino in grmerc (chiave) esiste in una delle righe dello sheet dei figli
 | ||||
|           TToken_string chiave = lista_listini.get(); | ||||
|           TString4 catven = chiave.get(0); | ||||
|           catven.trim(); | ||||
|           TString4 codlis = chiave.get(1); | ||||
|           codlis.trim(); | ||||
|           for (int i = 0; i < righe_sheet; i++) | ||||
|           { | ||||
|             TToken_string& row = sf_righe.row(i); | ||||
|             TString4 sh_catven = row.get(0); | ||||
|             sh_catven.trim(); | ||||
|             TString4 sh_codlis = row.get(1); | ||||
|             sh_codlis.trim(); | ||||
|             //se incredibilmente trova il listino di grmerc tra i figli prigionieri nello sheet setta il ricarico
 | ||||
|             if (catven == sh_catven && codlis == sh_codlis) | ||||
|               row.add(chiave.get(2), 2); | ||||
| 
 | ||||
|           } //for(int i...
 | ||||
|         } //FOR_EACH_STR_TOKEN
 | ||||
|         sf_righe.force_update(); | ||||
|       } //if(lista_listini.full...
 | ||||
|     //applica i cambiamenti dovuti ai ricarichi e salva questi ultimi in gmc
 | ||||
|   case DLG_APPLICA: | ||||
|     if (e == fe_button) | ||||
|     { | ||||
|       save_children_list(); | ||||
|     } | ||||
|     break; | ||||
|   default: | ||||
| @ -85,15 +185,9 @@ bool TAggiorna_listini_edit_mask::on_field_event(TOperable_field& o, TField_even | ||||
|   return true; | ||||
| } | ||||
| 
 | ||||
| TAggiorna_listini_edit_mask::TAggiorna_listini_edit_mask(TMask* query_mask) | ||||
|                            : TAutomask("ve2700b"), _query_mask(query_mask) | ||||
| //metodo per aggiungere i figli allo sheet dei medesimi
 | ||||
| void TAggiorna_listini_edit_mask::fill_children_list() | ||||
| { | ||||
|   //aggiorna campi listino padre
 | ||||
|   set(F_FATHCATVEN, _query_mask->get(F_FATHCATVEN)); | ||||
|   set(F_FATHDESVEN, _query_mask->get(F_FATHDESVEN)); | ||||
|   set(F_FATHCODLIS, _query_mask->get(F_FATHCODLIS)); | ||||
|   set(F_FATHDESLIS, _query_mask->get(F_FATHDESLIS)); | ||||
| 
 | ||||
|   //disabilita se necessario la colonna della categoria di vendita (lo sheet serve comunque dopo!)
 | ||||
|   TSheet_field& sf_righe = sfield(F_LISTINI_FIGLI); | ||||
|   sf_righe.destroy(); | ||||
| @ -130,10 +224,52 @@ TAggiorna_listini_edit_mask::TAggiorna_listini_edit_mask(TMask* query_mask) | ||||
|   sf_righe.force_update(); | ||||
| } | ||||
| 
 | ||||
| void TAggiorna_listini_edit_mask::aggiorna_listini_figli() | ||||
| //metodo per riempire lo sheet con i dati da aggiornare
 | ||||
| void TAggiorna_listini_edit_mask::fill_aggiorna_sheet() | ||||
| { | ||||
|   //rinomina le colonne dello sheet di aggiornamento come il listino che rappresentano (fighissimo!)..
 | ||||
|   //..secondo la solita catven+codlis; fa sparire le colonne che non servono. Ricordiamo infatti che..
 | ||||
|   //...si posson avere al massimo 10 figli (controllo demografico sui listini)
 | ||||
|   TSheet_field& sf_multilistini = sfield(F_MULTILISTINI); | ||||
| 
 | ||||
|   TSheet_field& sf_figli = sfield(F_LISTINI_FIGLI); | ||||
|   TString column_header; | ||||
|   int num_of_columns = 2; | ||||
|   FOR_EACH_SHEET_ROW(sf_figli, r, riga) | ||||
|   { | ||||
|     column_header.cut(0); | ||||
|     column_header << riga->get(0) << " "; | ||||
|     column_header.trim(); | ||||
|     column_header << riga->get(1); | ||||
| 
 | ||||
|     sf_multilistini.set_column_header(r + 2, column_header); | ||||
|     num_of_columns ++; | ||||
|   } | ||||
|   //cancella i figli in eccesso
 | ||||
|   for( ;sf_multilistini.exist_column(num_of_columns); num_of_columns++) | ||||
|     sf_multilistini.delete_column(num_of_columns); | ||||
| 
 | ||||
|   //popola il double-deck sheet
 | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| TAggiorna_listini_edit_mask::TAggiorna_listini_edit_mask(TMask* query_mask) | ||||
|                            : TAutomask("ve2700b"), _query_mask(query_mask) | ||||
| { | ||||
|   //aggiorna campi listino padre
 | ||||
|   set(F_FATHCATVEN, _query_mask->get(F_FATHCATVEN)); | ||||
|   set(F_FATHDESVEN, _query_mask->get(F_FATHDESVEN)); | ||||
|   set(F_FATHCODLIS, _query_mask->get(F_FATHCODLIS)); | ||||
|   set(F_FATHDESLIS, _query_mask->get(F_FATHDESLIS)); | ||||
| 
 | ||||
|   //popola lo sheet dei listini figli
 | ||||
|   fill_children_list(); | ||||
|   //e poi riempie lo sheet di aggiornamento dei figli
 | ||||
|   fill_aggiorna_sheet(); | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| ///////////////////////////////////////////////////////////////////////////////
 | ||||
| //  MASCHERA DI QUERY (seleziona il listino padre tra i listini con paternità)
 | ||||
| ///////////////////////////////////////////////////////////////////////////////
 | ||||
| @ -207,8 +343,7 @@ bool TAggiorna_listini_query_mask::on_field_event(TOperable_field& o, TField_eve | ||||
| 
 | ||||
|         //lancia la maschera di edit
 | ||||
|         TAggiorna_listini_edit_mask edit_mask(this);  //gli passa la maschera principale
 | ||||
|         if (edit_mask.run() == K_ENTER) | ||||
|           edit_mask.aggiorna_listini_figli(); | ||||
|         edit_mask.run(); | ||||
|       } | ||||
|     } | ||||
|     break; | ||||
|  | ||||
							
								
								
									
										46
									
								
								ve/ve2700.h
									
									
									
									
									
								
							
							
						
						
									
										46
									
								
								ve/ve2700.h
									
									
									
									
									
								
							| @ -10,8 +10,11 @@ | ||||
| #define F_SOTGRMERC       206 | ||||
| #define F_DESGRMERC       207 | ||||
| #define F_LISTINI_FIGLI   208 | ||||
| #define DLG_CHECKALL      209 | ||||
| #define DLG_APPLICA       210 | ||||
| #define DLG_ADDART        211 | ||||
| 
 | ||||
| //#define F_MULTILISTINI    280
 | ||||
| #define F_MULTILISTINI    220 | ||||
| 
 | ||||
| //primo sheet con i listini figli
 | ||||
| #define F_CATVEN      101 | ||||
| @ -20,32 +23,15 @@ | ||||
| #define F_DESLIS      104 | ||||
| 
 | ||||
| //multi-terribile sheet dei multi-listini
 | ||||
| /*#define F_TIPORIGA      101
 | ||||
| #define F_CODRIGA_A     102 | ||||
| #define F_DESRIGA_A     103 | ||||
| #define F_CODRIGA_G     202 | ||||
| #define F_DESRIGA_G     203 | ||||
| #define F_CODRIGA_S     302 | ||||
| #define F_DESRIGA_S     303 | ||||
| #define F_CODRIGA_R     402 | ||||
| #define F_DESRIGA_R     403 | ||||
| #define F_PREZZO        104 | ||||
| #define F_UM            105 | ||||
| #define F_OLDPRZ1       106 | ||||
| #define F_NEWPRZ1       107 | ||||
| #define F_OLDPRZ2       108 | ||||
| #define F_NEWPRZ2       109 | ||||
| #define F_OLDPRZ3       110 | ||||
| #define F_NEWPRZ3       111 | ||||
| #define F_OLDPRZ4       112 | ||||
| #define F_NEWPRZ4       113 | ||||
| #define F_OLDPRZ5       114 | ||||
| #define F_NEWPRZ5       115 | ||||
| #define F_OLDPRZ6       116 | ||||
| #define F_NEWPRZ6       117 | ||||
| #define F_OLDPRZ7       118 | ||||
| #define F_NEWPRZ7       119 | ||||
| #define F_OLDPRZ8       120 | ||||
| #define F_NEWPRZ8       121 | ||||
| #define F_OLDPRZ9       122 | ||||
| #define F_NEWPRZ9       123*/ | ||||
| #define F_CODRIGA     101 | ||||
| #define F_PREZZO      102 | ||||
| #define F_LIST1       103 | ||||
| #define F_LIST2       104 | ||||
| #define F_LIST3       105 | ||||
| #define F_LIST4       106 | ||||
| #define F_LIST5       107 | ||||
| #define F_LIST6       108 | ||||
| #define F_LIST7       109 | ||||
| #define F_LIST8       110 | ||||
| #define F_LIST9       111 | ||||
| #define F_LIST10      112 | ||||
|  | ||||
							
								
								
									
										178
									
								
								ve/ve2700b.uml
									
									
									
									
									
								
							
							
						
						
									
										178
									
								
								ve/ve2700b.uml
									
									
									
									
									
								
							| @ -4,21 +4,40 @@ TOOLBAR "Toolbar" 0 0 0 2 | ||||
| 
 | ||||
| BUTTON DLG_SAVEREC 2 2 | ||||
| BEGIN | ||||
|   PROMPT 10 -1 "~Salva" | ||||
|   PROMPT 1 1 "~Salva" | ||||
|   PICTURE TOOL_SAVEREC | ||||
| END | ||||
| 
 | ||||
| BUTTON DLG_NULL 2 2 | ||||
| BEGIN | ||||
|   PROMPT 2 1 "" | ||||
|   PICTURE 0 | ||||
| END | ||||
| 
 | ||||
| BUTTON DLG_CHECKALL 2 2 | ||||
| BEGIN | ||||
|   PROMPT 3 1 "~Tutti" | ||||
|   PICTURE TOOL_MULTISEL | ||||
| END | ||||
| 
 | ||||
| BUTTON DLG_APPLICA 2 2 | ||||
| BEGIN | ||||
|   PROMPT 4 1 "~Applica" | ||||
|   PICTURE TOOL_CONVERT | ||||
| END | ||||
| 
 | ||||
| BUTTON DLG_ADDART 2 2 | ||||
| BEGIN | ||||
|   PROMPT 5 1 "A~ggiunge" | ||||
|   PICTURE TOOL_IMPORT | ||||
| END | ||||
| 
 | ||||
| #include <cancelbar.h> | ||||
| 
 | ||||
| ENDPAGE | ||||
| 
 | ||||
| PAGE "Aggiornamento listini" 0 2 0 0 | ||||
| 
 | ||||
| GROUPBOX DLG_NULL 78 4 | ||||
| BEGIN | ||||
|   PROMPT 0 0 "@bDati listino padre" | ||||
| END | ||||
| 
 | ||||
| LIST DLG_NULL 1 7 | ||||
| BEGIN | ||||
|   PROMPT 100 100 "" | ||||
| @ -30,31 +49,31 @@ END | ||||
| 
 | ||||
| STRING F_FATHCATVEN 2 | ||||
| BEGIN | ||||
|   PROMPT 1 1 "Cat. ven. " | ||||
|   PROMPT 0 0 "@bDati listino padre " | ||||
|   FLAGS "D" | ||||
| END | ||||
| 
 | ||||
| STRING F_FATHDESVEN 50 | ||||
| STRING F_FATHDESVEN 10 | ||||
| BEGIN | ||||
|   PROMPT 18 1 "" | ||||
|   FLAGS "D" | ||||
|   PROMPT 1 0 "" | ||||
|   FLAGS "H" | ||||
| END | ||||
| 
 | ||||
| STRING F_FATHCODLIS 3 | ||||
| BEGIN | ||||
|   PROMPT 1 2 "Listino   " | ||||
|   PROMPT 23 0 "" | ||||
|   FLAGS "D" | ||||
| END | ||||
| 
 | ||||
| STRING F_FATHDESLIS 50 | ||||
| STRING F_FATHDESLIS 50 48 | ||||
| BEGIN | ||||
|   PROMPT 18 2 "" | ||||
|   PROMPT 27 0 "" | ||||
|   FLAGS "D" | ||||
| END | ||||
| 
 | ||||
| STRING F_GRMERC 3 | ||||
| BEGIN | ||||
|   PROMPT 1 4 "Gr. merc. " | ||||
|   PROMPT 0 1 "Gr. merc. " | ||||
|   FLAGS "U" | ||||
|   USE GMC SELECT CODTAB[4,5] == "" | ||||
|   INPUT CODTAB[1,3] F_GRMERC | ||||
| @ -68,7 +87,7 @@ END | ||||
| 
 | ||||
| STRING F_SOTGRMERC 5 | ||||
| BEGIN | ||||
|   PROMPT 20 4 "" | ||||
|   PROMPT 19 1 "" | ||||
|   FLAGS "U" | ||||
|   USE GMC  | ||||
|   COPY INPUT F_GRMERC | ||||
| @ -82,9 +101,9 @@ BEGIN | ||||
|   GROUP 2 | ||||
| END | ||||
| 
 | ||||
| STRING F_DESGRMERC 50 45 | ||||
| STRING F_DESGRMERC 50 48 | ||||
| BEGIN | ||||
|   PROMPT 28 4 "" | ||||
|   PROMPT 27 1 "" | ||||
|   USE GMC KEY 2 | ||||
|   INPUT S0 F_DESGRMERC | ||||
|   DISPLAY "Descrizione@50" S0 | ||||
| @ -97,24 +116,41 @@ END | ||||
| 
 | ||||
| TEXT DLG_NULL | ||||
| BEGIN | ||||
|   PROMPT 1 5 "@bListini figli" | ||||
|   PROMPT 1 2 "@bListini figli" | ||||
| END | ||||
| 
 | ||||
| SPREADSHEET F_LISTINI_FIGLI 78 4 | ||||
| BEGIN | ||||
|   PROMPT 0 6 "@bListini figli" | ||||
|   PROMPT 0 3 "Listini figli" | ||||
|   ITEM "Cat.Ven." | ||||
|   ITEM "Codice" | ||||
|   ITEM "Ricarico@8" | ||||
|   ITEM "Descrizione@50" | ||||
| END | ||||
| 
 | ||||
| SPREADSHEET F_MULTILISTINI -1 -1 | ||||
| BEGIN | ||||
|   PROMPT 0 8 "Aggiornamento figli" | ||||
|   ITEM "Descrizione\nArticolo@30" | ||||
|   ITEM "U. M. \nPrezzo base@8" | ||||
|   ITEM "Figlio 1@8" | ||||
|   ITEM "Figlio 2@8" | ||||
|   ITEM "Figlio 3@8" | ||||
|   ITEM "Figlio 4@8" | ||||
|   ITEM "Figlio 5@8" | ||||
|   ITEM "Figlio 6@8" | ||||
|   ITEM "Figlio 7@8" | ||||
|   ITEM "Figlio 8@8" | ||||
|   ITEM "Figlio 9@8" | ||||
|   ITEM "Figlio 10@8" | ||||
| END | ||||
| 
 | ||||
| ENDPAGE | ||||
| 
 | ||||
| ENDMASK | ||||
| 
 | ||||
| ///////////////////////////////////////// | ||||
| //maschera di riga | ||||
| //////////////////////////////////////////// | ||||
| //maschera di riga sheet dei listini figli | ||||
| TOOLBAR "topbar" 0 0 0 2 | ||||
| 
 | ||||
| BUTTON DLG_OK 10 2 | ||||
| @ -146,8 +182,6 @@ BEGIN | ||||
|   DISPLAY "Cat." CODTAB | ||||
|   DISPLAY "Descrizione@50" S0 | ||||
|   OUTPUT F_CATVEN CODTAB | ||||
|   //OUTPUT F_DESVEN S0 | ||||
|   //CHECKTYPE FORCED | ||||
| END | ||||
| 
 | ||||
| STRING F_CODLIS 3 | ||||
| @ -169,4 +203,102 @@ END | ||||
| 
 | ||||
| ENDPAGE | ||||
| 
 | ||||
| ENDMASK | ||||
| 
 | ||||
| 
 | ||||
| /////////////////////////////////////////////// | ||||
| //maschera di riga sheet aggiornamento listini | ||||
| TOOLBAR "topbar" 0 0 0 2 | ||||
| 
 | ||||
| BUTTON DLG_OK 10 2 | ||||
| BEGIN | ||||
|   PROMPT -13 -1 "" | ||||
| END | ||||
| 
 | ||||
| BUTTON DLG_DELREC 10 2 | ||||
| BEGIN | ||||
|   PROMPT -23 -1 "" | ||||
| END | ||||
| 
 | ||||
| BUTTON DLG_CANCEL 10 2 | ||||
| BEGIN | ||||
|   PROMPT -33 -1 "" | ||||
| END | ||||
| 
 | ||||
| ENDPAGE | ||||
| 
 | ||||
| PAGE "Riga aggiornamento listini" -1 -1 78 22 | ||||
| 
 | ||||
| STRING F_CODRIGA 50 20 | ||||
| BEGIN | ||||
|   PROMPT 1 1 "Codice " | ||||
| END | ||||
| 
 | ||||
| STRING F_PREZZO 8 | ||||
| BEGIN | ||||
|   PROMPT 1 2 "Prezzo " | ||||
| END | ||||
| 
 | ||||
| CURRENCY F_LIST1 8 | ||||
| BEGIN | ||||
|   PROMPT 1 4 "List1 " | ||||
|   FLAGS "U" | ||||
| END | ||||
| 
 | ||||
| CURRENCY F_LIST2 8 | ||||
| BEGIN | ||||
|   PROMPT 1 5 "List2 " | ||||
|   FLAGS "U" | ||||
| END | ||||
| 
 | ||||
| CURRENCY F_LIST3 8 | ||||
| BEGIN | ||||
|   PROMPT 1 6 "List3 " | ||||
|   FLAGS "U" | ||||
| END | ||||
| 
 | ||||
| CURRENCY F_LIST4 8 | ||||
| BEGIN | ||||
|   PROMPT 1 7 "List4 " | ||||
|   FLAGS "U" | ||||
| END | ||||
| 
 | ||||
| CURRENCY F_LIST5 8 | ||||
| BEGIN | ||||
|   PROMPT 1 8 "List5 " | ||||
|   FLAGS "U" | ||||
| END | ||||
| 
 | ||||
| CURRENCY F_LIST6 8 | ||||
| BEGIN | ||||
|   PROMPT 1 9 "List6 " | ||||
|   FLAGS "U" | ||||
| END | ||||
| 
 | ||||
| CURRENCY F_LIST7 8 | ||||
| BEGIN | ||||
|   PROMPT 1 10 "List7 " | ||||
|   FLAGS "U" | ||||
| END | ||||
| 
 | ||||
| CURRENCY F_LIST8 8 | ||||
| BEGIN | ||||
|   PROMPT 1 11 "List8 " | ||||
|   FLAGS "U" | ||||
| END | ||||
| 
 | ||||
| CURRENCY F_LIST9 8 | ||||
| BEGIN | ||||
|   PROMPT 1 12 "List9 " | ||||
|   FLAGS "U" | ||||
| END | ||||
| 
 | ||||
| CURRENCY F_LIST10 8 | ||||
| BEGIN | ||||
|   PROMPT 1 13 "List10 " | ||||
|   FLAGS "U" | ||||
| END | ||||
| 
 | ||||
| ENDPAGE | ||||
| 
 | ||||
| ENDMASK | ||||
| @ -282,6 +282,7 @@ BEGIN | ||||
|   ITEM "Listino" | ||||
|   ITEM "Ricarico" | ||||
|   ITEM "Descrizione@50" | ||||
|   FLAGS "|" | ||||
| END | ||||
| 
 | ||||
| ENDPAGE | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user