From 89442c7b6710adf3c27e8a7af2b845a7f1edc615 Mon Sep 17 00:00:00 2001 From: luca Date: Fri, 15 Apr 2011 13:49:27 +0000 Subject: [PATCH] Patch level : Files correlati : Ricompilazione Demo : [ ] Commento : git-svn-id: svn://10.65.10.50/branches/R_10_00@21962 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- ha/ha0100.cpp | 34 ++++++++++++ ha/ha3900.cpp | 90 +++++++++++++++++++++---------- ha/ha3900a.h | 12 +++-- ha/ha3900a.uml | 143 +++++++++++++++++++++++++++++++++++++------------ ha/hatbatt.h | 17 +++--- ha/hatbatt.uml | 142 +++++++++++++++++++++++++++++++++++------------- 6 files changed, 326 insertions(+), 112 deletions(-) diff --git a/ha/ha0100.cpp b/ha/ha0100.cpp index 959d2b7ca..1d3312a01 100755 --- a/ha/ha0100.cpp +++ b/ha/ha0100.cpp @@ -5,6 +5,7 @@ #include #include +#include "hatbatt.h" #include "hatbcau.h" #include "hatbcel.h" @@ -37,9 +38,42 @@ protected: // TRelation_application virtual bool protected_record(TRectype& record); virtual void init_query_mode(TMask& m); virtual void init_query_insert_mode(TMask& m); + + virtual bool get_next_key(TToken_string& key); }; +bool THA_table_app::get_next_key(TToken_string& key) +{ + //casino per la tabella attrezzature "&ATT" + const TString4 name = get_relation()->file(0).name(); + if (name == "ATT") + { + const TString& codart = curr_mask().get(F_CODART); + if (codart.full()) + { + TString query; + query << "USE &ATT"; + query << "\nFROM CODTAB=#CODTAB"; + query << "\nTO CODTAB=#CODTAB"; + TISAM_recordset recset(query); + recset.set_var("#CODTAB", codart); + long last_prog = 0; + if (recset.move_last()) + last_prog = recset.get("CODTAB[6,12]").as_int(); + + //riempie la token_string con i dati richiesti + key.add(F_CODART); + key.add(codart); + key.add(F_PROGRESSIVO); + key.add(last_prog + 1); + } + return true; + } + + return TTable_module_application::get_next_key(key); +} + bool THA_table_app::protected_record(TRectype& record) { const TString4 name = get_relation()->file(0).name(); diff --git a/ha/ha3900.cpp b/ha/ha3900.cpp index 423df4b1c..247422821 100755 --- a/ha/ha3900.cpp +++ b/ha/ha3900.cpp @@ -22,8 +22,9 @@ class TCoffee_tree : public TBidirectional_tree { TString8 _curr_node; long _codcf; + long _progressivo; TString8 _codart; - TString16 _matricola; + TString16 _matricola, _cespite; TISAM_recordset _recset; public: @@ -44,14 +45,16 @@ public: virtual bool goto_lbrother(); virtual bool get_description(TString& desc) const; virtual TFieldtypes get_var(const TString& name, TVariant& var) const; - virtual TImage* image(bool selected) const { return get_res_icon(10232); } + virtual TImage* image(bool selected) const { return get_res_icon(10232); } //mai dimenticarsi la moka! public: bool set_clifo(long codcf); - bool select_attr(const TString& codart, const TString& matricola); + bool select_attr(const TString& codart, const long progressivo); const long get_codcf() const; const TString& get_codart() const; + const long get_progressivo() const; const TString& get_matricola() const; + const TString& get_cespite() const; TCoffee_tree() : _codcf(0), _recset("USE &ATT") { set_clifo(0L); } }; @@ -119,7 +122,7 @@ TFieldtypes TCoffee_tree::get_var(const TString& name, TVariant& var) const { //se il campo richiesto è la descrizione ci vuole quella dell'articolo, non dell'attrezzatura.. //..che risulta vuota - if (name == "S0") + if (name == "S10") { TString8 codart = _recset.get("CODTAB[1,5]").as_string(); codart.trim(); @@ -136,11 +139,21 @@ const TString& TCoffee_tree::get_codart() const return _codart; } +const long TCoffee_tree::get_progressivo() const +{ + return _progressivo; +} + const TString& TCoffee_tree::get_matricola() const { return _matricola; } +const TString& TCoffee_tree::get_cespite() const +{ + return _cespite; +} + const long TCoffee_tree::get_codcf() const { return _codcf; @@ -155,7 +168,7 @@ bool TCoffee_tree::set_clifo(long codcf) return goto_root(); } -bool TCoffee_tree::select_attr(const TString& codart, const TString& matricola) +bool TCoffee_tree::select_attr(const TString& codart, const long progressivo) { bool found = false; for (bool ok = _recset.move_first(); ok; ok = _recset.move_next()) @@ -165,13 +178,14 @@ bool TCoffee_tree::select_attr(const TString& codart, const TString& matricola) if (curr_codart == codart) { _codart = codart; - TString16 curr_matricola = _recset.get("CODTAB[16,30]").as_string(); - curr_matricola.trim(); - if (curr_matricola == matricola) + const long curr_progressivo = _recset.get("CODTAB[6,12]").as_int(); + if (curr_progressivo == progressivo) { _curr_node.format("%ld", _recset.current_row()); found = true; - _matricola = matricola; + _progressivo = progressivo; + _matricola = _recset.get("S0[6,20]").as_string(); + _cespite = _recset.get("S1").as_string(); break; } } @@ -280,7 +294,7 @@ bool TGestione_attrezzature_mask::write() return false; const TString& codart = ct->get_codart(); - const TString& matricola = ct->get_matricola(); + const long progressivo = ct->get_progressivo(); TSheet_field& sf_righe = sfield(F_STORICO); //maschera di riga dello sheet @@ -288,9 +302,9 @@ bool TGestione_attrezzature_mask::write() //tabella di modulo con lo storico interventi TModule_table his("&HIS"); TRectype& rec_his = his.curr(); - //codice articolo + matricola (prima parte del CODTAB del record di tabmod) + //codice articolo + progressivo (prima parte del CODTAB del record di tabmod) TString80 codtab; - codtab.format("%-15s%-15s", (const char*)codart, (const char*)matricola); + codtab.format("%-5s%07d", (const char*)codart, progressivo); //contatore delle righe che vengono salvate int righe_tot = 0; @@ -301,7 +315,7 @@ bool TGestione_attrezzature_mask::write() short id = 101; //giro su tutti i campi della riga (che è una sporca token_string) //per prima cosa mette la chiave del record che è così fatta: - // codart=codtab[1,5] - matricola=codtab[16,30] - nriga=codtab[31,35] + // codart=codtab[1,5] - progressivo=codtab[6,12] - nriga=codtab[31,35] TString80 curr_codtab; curr_codtab.format("%05d", sf_righe.items() - r); curr_codtab.insert(codtab); @@ -309,6 +323,7 @@ bool TGestione_attrezzature_mask::write() //deve azzerare la tabella, senno' perde il codice modulo HA ed il codice tabella HIS his.zero(); rec_his.put("CODTAB", curr_codtab); + //poi quelli specifici della riga FOR_EACH_TOKEN(*riga, str) { const TMask_field& mf = sm.field(id); @@ -369,7 +384,7 @@ bool TGestione_attrezzature_mask::on_field_event(TOperable_field& o, TField_even } } break; - case F_COD_MATR: + case F_PROGRESSIVO: if (e == fe_modify) { //albero magico: selezionando un'attrezzatura, si posiziona direttamente sulla giusta posizione nell'albero.. @@ -379,9 +394,9 @@ bool TGestione_attrezzature_mask::on_field_event(TOperable_field& o, TField_even if (ct != NULL) { ct->set_clifo(get_long(F_CODCF)); - const TString& codart = get(F_COD_ART); - const TString& matricola = get(F_COD_MATR); - if (ct->select_attr(codart, matricola)) + const TString& codart = get(F_CODART); + const long progressivo = get_long(F_PROGRESSIVO); + if (ct->select_attr(codart, progressivo)) { tf.select_current(); send_key(K_SPACE, F_ATTREZZATURE, &o); @@ -398,13 +413,18 @@ bool TGestione_attrezzature_mask::on_field_event(TOperable_field& o, TField_even { TString80 codattr; ct->get_description(codattr); + //riempie i campi di intestazione maschera - set(F_COD_ART, codattr.left(5)); - set(F_COD_MATR, codattr.mid(15,15)); + set(F_CODART, codattr.left(5)); + set(F_PROGRESSIVO, codattr.mid(5,7)); + check_field(F_CODART); //chiede di salvare le modifiche al cambio attrezzatura save_if_dirty(); //seleziona sull'albero - ct->select_attr(get(F_COD_ART), get(F_COD_MATR)); + ct->select_attr(get(F_CODART), get_long(F_PROGRESSIVO)); + //la select_attr fa sapere all'albero matricola e cespite -> si possono mettere sulla maschera) + set(F_MATRICOLA, ct->get_matricola()); + set(F_CESPITE, ct->get_cespite()); //riempie lo sheet fill_sheet_storico(codattr); } @@ -434,20 +454,20 @@ bool TGestione_attrezzature_mask::on_field_event(TOperable_field& o, TField_even { //1) per prima cosa deve controllare che siano pieni i campi chiave della tabella ttrezzature, senno' non puo'.. //...aggiungere una cippa - if (get(F_COD_ART).empty() || get(F_COD_MATR).empty()) - return warning_box(TR("E' necessario compilare articolo e matricola per aggiungere una nuova attrezzatura!")); + if (get(F_CODART).empty() || get(F_PROGRESSIVO) <= 0L) + return warning_box(TR("E' necessario compilare articolo e progressivo per aggiungere una nuova attrezzatura!")); TString80 codtab; - const TString& codart = get(F_COD_ART); - const TString& matricola = get(F_COD_MATR); - codtab.format("%-15s%-15s", (const char*)codart, (const char*)matricola); + const TString& codart = get(F_CODART); + const long progressivo = get_long(F_PROGRESSIVO); + codtab.format("%-5s%07d", (const char*)codart, progressivo); //2) controllo effettiva "nuovezza" dell'attrezzatura.. //...se l'utonto tentasse di inserire come nuova un'attrezzatura già esistente va cazziato! TModule_table tab_att("&ATT"); tab_att.put("CODTAB", codtab); const int err = tab_att.read(); if (err == NOERR) - return warning_box(TR("L'attrezzatura con questa matricola esiste gia'!")); + return warning_box(TR("L'attrezzatura con questi articolo e progressivo esiste gia'!")); //3) invio dati al gestore della tabella &ATT delle attrezzature tramite .ini TFilename trans_ini; @@ -463,6 +483,10 @@ bool TGestione_attrezzature_mask::on_field_event(TOperable_field& o, TField_even ini.set("CODTAB", codtab); ini.set("I0", get(F_CODCF)); ini.set("D0", TDate(TODAY)); + TString matricola; + matricola.format("%-5s%-15s", (const char*)get(F_CODART), (const char*)get(F_MATRICOLA)); + ini.set("S0", matricola); + ini.set("S1", get(F_CESPITE)); } //invio del config al gestore della tabella &ATT TString80 cmd; @@ -481,6 +505,9 @@ bool TGestione_attrezzature_mask::on_field_event(TOperable_field& o, TField_even codtab.strip("\""); //elimina eventuali " che vengono dall'ini const long codcf = ini.get_long("I0"); const TDate data_storico = ini.get("D0"); + const TString& cespite = ini.get("S1"); + const TString& full_matricola = ini.get("S0"); + const TString16 matricola = full_matricola.mid(5,15); //4b) da file ini crea un record nuovo sulla tabella &HIS; se non lo facesse l'albero con le attrezzature non.. //....potrebbe mai vedere la nuova attrezzatura aggiunta; sara' poi l'albero stesso ad occuparsi dello sheet @@ -490,14 +517,18 @@ bool TGestione_attrezzature_mask::on_field_event(TOperable_field& o, TField_even tab_his.put("CODTAB", his_codtab); tab_his.put("I0", codcf); tab_his.put("D0", data_storico); + tab_his.put("S2", matricola); + tab_his.put("S1", cespite); + int can_write = tab_his.write(); if (can_write != NOERR) return warning_box(TR("Impossibile aggiungere l'attrezzatura! Risulta gia' presente.")); set(F_CODCF, codcf, true); - set(F_COD_ART, codtab.left(5)); - set(F_COD_MATR, codtab.mid(15,15), true); - + set(F_CODART, codtab.left(5), true); + set(F_PROGRESSIVO, codtab.mid(5,7), true); + set(F_MATRICOLA, matricola); + set(F_CESPITE, cespite); } } } @@ -548,6 +579,7 @@ TGestione_attrezzature_mask::TGestione_attrezzature_mask() : TAutomask("ha3900a" TCoffee_tree* ct = new TCoffee_tree; tf.set_tree(ct); + //se non facesse questa precisazione non potrebbe inserire le righe in alto TSheet_field& sf_storico = sfield(F_STORICO); sf_storico.set_append(false); diff --git a/ha/ha3900a.h b/ha/ha3900a.h index 4fb5c00b5..f4c42629d 100755 --- a/ha/ha3900a.h +++ b/ha/ha3900a.h @@ -1,9 +1,12 @@ #define F_CODCF 301 #define F_DESCF 302 -#define F_COD_ART 303 -#define F_DESCR_ART 304 -#define F_COD_MATR 305 -#define DLG_ADD_NEW 306 +#define F_CODART 303 +#define F_DESART 304 +#define F_PROGRESSIVO 305 +#define F_MATRICOLA 306 +#define F_CESPITE 307 +#define F_DESC_CES 308 +#define DLG_ADD_NEW 310 //tree #define F_ATTREZZATURE 350 @@ -30,6 +33,7 @@ #define S_CODCF 114 #define S_CODMAG 115 +#define S_CLOSED 116 #define S_DESART 144 #define S_DESCF 154 diff --git a/ha/ha3900a.uml b/ha/ha3900a.uml index e7124ec4d..b7029394c 100755 --- a/ha/ha3900a.uml +++ b/ha/ha3900a.uml @@ -21,7 +21,7 @@ END NUMBER F_CODCF 6 BEGIN - PROMPT 2 1 "Cliente " + PROMPT 2 1 "Cliente " FLAGS "R" USE LF_CLIFO INPUT TIPOCF "C" @@ -49,52 +49,92 @@ BEGIN CHECKTYPE NORMAL END -STRING F_COD_ART 5 +STRING F_CODART 5 BEGIN - PROMPT 2 2 "Articolo " + PROMPT 2 2 "Articolo " FLAGS "U" - USE LF_ANAMAG SELECT GRMERC="50" - INPUT CODART F_COD_ART + USE LF_ANAMAG SELECT (GRMERC="50")&&(SOSPESO!="X") + INPUT CODART F_CODART DISPLAY "Codice" CODART DISPLAY "Descrizione@50" DESCR - OUPUT F_COD_ART CODART - OUPUT F_DESCR_ART DESCR + OUPUT F_CODART CODART + OUPUT F_DESART DESCR CHECKTYPE REQUIRED ADD RUN ve2 -3 END -STRING F_DESCR_ART 50 +STRING F_DESART 50 BEGIN PROMPT 23 2 "" - USE LF_ANAMAG KEY 2 SELECT GRMERC="50" - INPUT DESCR F_DESCR_ART + USE LF_ANAMAG KEY 2 SELECT (GRMERC="50")&&(SOSPESO!="X") + INPUT DESCR F_DESART DISPLAY "Descrizione@50" DESCR DISPLAY "Codice" CODART - COPY OUTPUT F_COD_ART + COPY OUTPUT F_CODART CHECKTYPE NORMAL END -STRING F_COD_MATR 15 +NUMBER F_PROGRESSIVO 7 BEGIN - PROMPT 2 3 "Matricola " - FLAGS "U" + PROMPT 2 3 "Progres. " + FLAGS "UZ" USE &ATT JOIN LF_ANAMAG INTO CODART=CODTAB[1,5] - INPUT CODTAB[1,5] F_COD_ART - INPUT CODTAB[16,30] F_COD_MATR - DISPLAY "Codice@5" CODTAB[1,5] - DISPLAY "Matricola@15" CODTAB[16,30] + INPUT CODTAB[1,5] F_CODART + INPUT CODTAB[6,12] F_PROGRESSIVO + DISPLAY "Progressivo" CODTAB[6,12] + DISPLAY "Articolo" CODTAB[1,5] + DISPLAY "Matricola@15" S0[6,20] DISPLAY "Descrizione@50" LF_ANAMAG->DESCR - DISPLAY "Cliente" I0 - OUTPUT F_COD_ART CODTAB[1,5] - OUTPUT F_COD_MATR CODTAB[16,30] + DISPLAY "Cespite@10" S1[1,10] + OUTPUT F_CODART CODTAB[1,5] + OUTPUT F_PROGRESSIVO CODTAB[6,12] + OUTPUT F_MATRICOLA S0[6,20] + OUTPUT F_CESPITE S1[1,10] OUTPUT F_CODCF I0 CHECKTYPE SEARCH END +STRING F_MATRICOLA 15 +BEGIN + PROMPT 24 3 "Matricola " + FLAGS "U" + USE &ATT KEY 2 + JOIN LF_ANAMAG INTO CODART=CODTAB[1,5] + INPUT S0[1,5] F_CODART + INPUT S0[6,20] F_MATRICOLA + DISPLAY "Codice@5" S0[1,5] + DISPLAY "Matricola@15" S0[6,20] + DISPLAY "Progressivo" CODTAB[6,12] + DISPLAY "Descrizione@50" LF_ANAMAG->DESCR + DISPLAY "Cespite@10" S1[1,10] + DISPLAY "Cliente" I0 + COPY OUTPUT F_PROGRESSIVO + CHECKTYPE SEARCH +END + +STRING F_CESPITE 10 +BEGIN + PROMPT 55 3 "Cespite " + FLAGS "UZ" + USE &ATT + JOIN LF_ANAMAG INTO CODART=CODTAB[1,5] + INPUT CODTAB[1,5] F_CODART + INPUT CODTAB[6,12] F_PROGRESSIVO + DISPLAY "Cespite@10" S1[1,10] + DISPLAY "Articolo" CODTAB[1,5] + DISPLAY "Progressivo" CODTAB[6,12] + DISPLAY "Matricola@15" S0[6,20] + DISPLAY "Descrizione@50" LF_ANAMAG->DESCR + DISPLAY "Cliente" I0 + COPY OUTPUT F_PROGRESSIVO + CHECKTYPE SEARCH +END + + BUTTON DLG_ADD_NEW 20 1 BEGIN - PROMPT 53 3 "Nuova attrezzatura" + PROMPT 53 5 "Nuova attrezzatura" END @@ -103,11 +143,13 @@ BEGIN PROMPT 1 5 "@bAttrezzature" END -TLIST F_ATTREZZATURE 78 5 +TLIST F_ATTREZZATURE 0 6 BEGIN - PROMPT 1 6 "Attrezzatura" + PROMPT 0 6 "Attrezzatura" DISPLAY "Codice@20" CODTAB - DISPLAY "Descrizione@35" S0 + DISPLAY "Matricola@15" S0[6,20] + DISPLAY "Descrizione@35" S10 + DISPLAY "Cespite@10" S1[1,10] DISPLAY "Cliente" I0 DISPLAY "Assegnamento" D0 END @@ -135,6 +177,7 @@ BEGIN ITEM "Ch.Ndoc" ITEM "Cliente" ITEM "Mag" + ITEM "Chiusa" END ENDPAGE @@ -150,12 +193,18 @@ PAGE "Dati intervento" -1 -1 78 15 LISTBOX S_TIPO 1 16 BEGIN PROMPT 1 1 "Tipo intervento" - ITEM "C|Comodato d'uso" MESSAGE DISABLE,1@ - ITEM "D|Descrittivo" MESSAGE DISABLE,1@ - ITEM "I|Insegne nuove" MESSAGE DISABLE,1@ - ITEM "R|Riparazione" MESSAGE DISABLE,1@ - ITEM "V|Varie" MESSAGE ENABLE,1@ - FIELD S7 + ITEM "C|Comodato d'uso" MESSAGE DISABLE,1@|ENABLE,S_CLOSED + ITEM "D|Descrittivo" MESSAGE DISABLE,1@|CLEAR,S_CLOSED + ITEM "I|Insegne nuove" MESSAGE DISABLE,1@|CLEAR,S_CLOSED + ITEM "R|Riparazione" MESSAGE DISABLE,1@|CLEAR,S_CLOSED + ITEM "V|Varie" MESSAGE ENABLE,1@|CLEAR,S_CLOSED + FIELD S7[1,1] +END + +BOOLEAN S_CLOSED +BEGIN + PROMPT 40 1 "Chiusura" + FIELD B0 END DATE S_DATA @@ -168,7 +217,7 @@ END STRING S_CODART 5 BEGIN PROMPT 1 2 "Art. collegato " - USE LF_ANAMAG SELECT GRMERC="50" + USE LF_ANAMAG SELECT (GRMERC="50")&&(SOSPESO!="X") INPUT CODART S_CODART DISPLAY "Codice" CODART DISPLAY "Descrizione@50" DESCR @@ -178,7 +227,7 @@ BEGIN MESSAGE EMPTY HIDE,S_UM_CODART|SHOW,S_UM_GENERICO MESSAGE HIDE,S_UM_GENERICO|SHOW,S_UM_CODART FLAGS "G" - FIELD S2 + FIELD S3 END STRING S_DESART 50 @@ -349,7 +398,7 @@ BEGIN OUTPUT S_CODMAG CODTAB[1,3] OUTPUT S_DESMAG S0 CHECKTYPE NORMAL - FIELD S3 + FIELD S7[2,4] END STRING S_DESMAG 50 @@ -390,4 +439,28 @@ END ENDPAGE -ENDMASK \ No newline at end of file +ENDMASK + +/* +Mappa campi sul file TABMOD: +---------------------------- +CODTAB[1,5] = codart (A) +CODTAB[6,12] = progressivo (N z) +CODTAB[13,17] = numero riga (N z) +S0 = descrizione +S3[1,5] = codart collegato +S4[1,4] = anno doc. apertura (N) +S4[5,8] = numerazione doc. apertura (A) +S4[9,15] = numero doc. apertura (N) +S5[1,4] = anno doc. chiusura (N) +S5[5,8] = numerazione doc. chiusura (A) +S5[9,15] = numero doc. chiusura (N) +S6[1,2] = umqta +S7[1,1] = tipo +S7[2,4] = codmag +I0 = codice cliente (N) +R0 = quantita +R1 = importo +D0 = data intervento +B0 = chiusura +*/ \ No newline at end of file diff --git a/ha/hatbatt.h b/ha/hatbatt.h index a0b000025..205e7f8e4 100755 --- a/ha/hatbatt.h +++ b/ha/hatbatt.h @@ -1,6 +1,11 @@ -#define F_COD_ATT 201 -#define F_DESCR_ATT 202 -#define F_COD_MATR 203 -#define F_CODCF 204 -#define F_RAGSOC 205 -#define F_DATA_CONSEGNA 206 \ No newline at end of file +#define F_CODART 201 +#define F_DESCRART 202 +#define F_PROGRESSIVO 203 +#define F_CODART_X_MATR 204 +#define F_MATRICOLA 205 +#define F_DATA_FABBR 206 +#define F_CESPITE 207 +#define F_DESC_CES 208 +#define F_CODCF 210 +#define F_DESCF 211 +#define F_DATA_CONSEGNA 212 \ No newline at end of file diff --git a/ha/hatbatt.uml b/ha/hatbatt.uml index d16ab9bf6..16df4d26d 100755 --- a/ha/hatbatt.uml +++ b/ha/hatbatt.uml @@ -1,64 +1,134 @@ #include "hatbatt.h" -PAGE "Attrezzature" -1 -1 78 10 +TOOLBAR "" 0 0 0 2 +#include "relapbar.h" +ENDPAGE -GROUPBOX DLG_NULL 76 4 +PAGE "Attrezzature" 0 2 0 0 + +GROUPBOX DLG_NULL 76 7 BEGIN - PROMPT 1 1 "@bAttrezzatura" + PROMPT 1 0 "@bAttrezzatura" END -STRING F_COD_ATT 5 +STRING F_CODART 5 BEGIN - PROMPT 2 2 "Articolo " + PROMPT 2 1 "Articolo " FLAGS "U" - USE LF_ANAMAG SELECT GRMERC="50" - INPUT CODART F_COD_ATT + USE LF_ANAMAG SELECT (GRMERC="50")&&(SOSPESO!="X") + INPUT CODART F_CODART DISPLAY "Codice" CODART DISPLAY "Descrizione@50" DESCR - OUPUT F_COD_ATT CODART - OUPUT F_DESCR_ATT DESCR - FIELD CODTAB[1,15] + OUPUT F_CODART CODART + OUPUT F_DESCRART DESCR + FIELD CODTAB[1,5] CHECKTYPE FORCED + MESSAGE COPY,F_CODART_X_MATR KEY 1 ADD RUN ve2 -3 END -STRING F_DESCR_ATT 50 +STRING F_DESCRART 50 BEGIN - PROMPT 20 2 "" - USE LF_ANAMAG KEY 2 SELECT GRMERC="50" - INPUT DESCR F_DESCR_ATT + PROMPT 22 1 "" + USE LF_ANAMAG KEY 2 SELECT (GRMERC="50")&&(SOSPESO!="X") + INPUT DESCR F_DESCRART DISPLAY "Descrizione@50" DESCR DISPLAY "Codice" CODART - COPY OUTPUT F_COD_ATT + COPY OUTPUT F_CODART CHECKTYPE REQUIRED END -STRING F_COD_MATR 15 +NUMBER F_PROGRESSIVO 7 +BEGIN + PROMPT 2 2 "Progress. " + FLAGS "UZ" + USE &ATT + JOIN LF_ANAMAG INTO CODART=CODTAB[1,5] + INPUT CODTAB[1,5] F_CODART + INPUT CODTAB[6,12] F_PROGRESSIVO + DISPLAY "Progressivo" CODTAB[6,12] + DISPLAY "Articolo" CODTAB[1,5] + DISPLAY "Matricola@15" S0[6,20] + DISPLAY "Descrizione@50" LF_ANAMAG->DESCR + DISPLAY "Cespite@10" S1[1,10] + OUTPUT F_CODART CODTAB[1,5] + OUTPUT F_PROGRESSIVO CODTAB[6,12] + OUTPUT F_MATRICOLA S0[6,20] + OUTPUT F_CESPITE S1[1,10] + FIELD CODTAB[6,12] + CHECKTYPE REQUIRED + KEY 1 +END + +//questo campo serve per poter avere le display della matricola gia' puntate sul corretto articolo +STRING F_CODART_X_MATR 5 +BEGIN + PROMPT 40 3 "Atricolo x matricola" + FIELD S0[1,5] + FLAGS "H" +END + +STRING F_MATRICOLA 15 BEGIN PROMPT 2 3 "Matricola " FLAGS "U" - USE &ATT - INPUT CODTAB[1,5] F_COD_ATT - INPUT CODTAB[16,30] F_COD_MATR - DISPLAY "Codice@5" CODTAB[1,5] - DISPLAY "Matricola@15" CODTAB[16,30] - DISPLAY "Descrizione@50" S0 - OUTPUT F_COD_ATT CODTAB[1,5] - OUTPUT F_COD_MATR CODTAB[16,30] - CHECKTYPE REQUIRED - FIELD CODTAB[16,30] - KEY 1 + USE &ATT KEY 2 + JOIN LF_ANAMAG INTO CODART=CODTAB[1,5] + INPUT S0[1,5] F_CODART + INPUT S0[6,20] F_MATRICOLA + DISPLAY "Codice@5" S0[1,5] + DISPLAY "Matricola@15" S0[6,20] + DISPLAY "Progressivo" CODTAB[6,12] + DISPLAY "Descrizione@50" LF_ANAMAG->DESCR + DISPLAY "Cespite@10" S1[1,10] + COPY OUTPUT F_PROGRESSIVO + CHECKTYPE NORMAL + FIELD S0[6,20] + KEY 2 +END + +STRING F_CESPITE 10 +BEGIN + PROMPT 2 4 "Cespite " + FLAGS "UZ" + USE LF_CESPI + INPUT IDCESPITE F_CESPITE + DISPLAY "Cespite@10" IDCESPITE + DISPLAY "Desc@50" DESC + DISPLAY "Cat." CODCAT + OUTPUT F_CESPITE IDCESPITE + OUTPUT F_DESC_CES DESC + CHECKTYPE NORMAL + FIELD S1 +END + +STRING F_DESC_CES 50 46 +BEGIN + PROMPT 26 4 "" + USE LF_CESPI KEY 3 + INPUT DESC F_DESC_CES + DISPLAY "Desc@50" DESC + DISPLAY "Codice@10" IDCESPITE + DISPLAY "Cat." CODCAT + COPY OUTPUT F_CESPITE + CHECKTYPE NORMAL +END + +DATE F_DATA_FABBR +BEGIN + PROMPT 2 5 "Data fabbricazione " + FIELD D1 END GROUPBOX DLG_NULL 76 5 BEGIN - PROMPT 1 5 "@bCliente" + PROMPT 1 7 "@bCliente" END NUMBER F_CODCF 6 BEGIN - PROMPT 2 6 "Codice " + PROMPT 2 8 "Codice " FLAGS "U" USE LF_CLIFO INPUT TIPOCF "C" @@ -66,17 +136,17 @@ BEGIN DISPLAY "Codice" CODCF DISPLAY "Descrizione@50" RAGSOC OUTPUT F_CODCF CODCF - OUTPUT F_RAGSOC RAGSOC + OUTPUT F_DESCF RAGSOC CHECKTYPE NORMAL FIELD I0 END -STRING F_RAGSOC 50 +STRING F_DESCF 50 BEGIN - PROMPT 2 7 "Descrizione " + PROMPT 2 9 "Rag. soc. " USE LF_CLIFO KEY 2 INPUT TIPOCF "C" - INPUT RAGSOC F_RAGSOC + INPUT RAGSOC F_DESCF DISPLAY "Descrizione@50" RAGSOC DISPLAY "Codice" CODCF COPY OUTPUT F_CODCF @@ -85,15 +155,11 @@ END DATE F_DATA_CONSEGNA BEGIN - PROMPT 2 8 "Data presa in consegna " + PROMPT 2 10 "Data presa in consegna " CHECKTYPE REQUIRED FIELD D0 END ENDPAGE -TOOLBAR "" 0 0 0 2 -#include "relapbar.h" -ENDPAGE - ENDMASK \ No newline at end of file