From a45d9a9b563e3de46482baf961e689698f1e349b Mon Sep 17 00:00:00 2001 From: alex Date: Mon, 21 Jun 2010 14:20:35 +0000 Subject: [PATCH] Patch level : 10.0 patch 767 Files correlati : ve6.exe Ricompilazione Demo : [ ] Commento : Aggiunta gestione magazzino collegato in importazione da penna ottica Dalla versione 3.2 git-svn-id: svn://10.65.10.50/trunk@20597 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- ve/ve6500.cpp | 39 ++++++++++++++++++++++++++++----------- ve/ve6500.h | 18 +++++++++++------- ve/ve6500.uml | 47 ++++++++++++++++++++++++++++++++++++++++------- 3 files changed, 79 insertions(+), 25 deletions(-) diff --git a/ve/ve6500.cpp b/ve/ve6500.cpp index 9070c6ca7..1a44f2cb7 100755 --- a/ve/ve6500.cpp +++ b/ve/ve6500.cpp @@ -105,12 +105,14 @@ private: bool _gestmag; bool _gestdep; bool _gestmultimag; + TString4 _codmagc; protected: virtual bool on_field_event(TOperable_field& f, TField_event e, long jolly); virtual void on_firm_change(); public: + void set_magc(const TString& magc) { set(F_MAGC, _codmagc = magc); } TPenna_mask(); virtual ~TPenna_mask(){} }; @@ -166,7 +168,13 @@ bool TPenna_mask::on_field_event(TOperable_field& f, TField_event e, long jolly) hide(F_DEP); } break; - + case F_MAGC: + if (e == fe_init && f.empty() && _codmagc.full()) + { + f.set(_codmagc); + f.check(STARTING_CHECK); + } + break; default: break; } @@ -254,6 +262,7 @@ class TPenna_app : public TSkeleton_application private: TFilename _ini_name; int _first_row; + TString4 _codmagc; protected: virtual void main_loop(); @@ -275,7 +284,7 @@ bool TPenna_app::load_ini(bool check) //definizione de if (args <= narg) return FALSE; //argv é un array di null-terminated strings - const TString& arg = argv(narg); + const TFixed_string arg = argv(narg); if ((arg[0] != '-' && arg[0] != '/') || (arg[1] != 'i' && arg[1] != 'I')) return FALSE; @@ -300,6 +309,9 @@ bool TPenna_app::load_ini(bool check) //definizione de _first_row = para.get_int(1)+1; //assegna a _first_row il numero (trasformato da una stringa con get_int) //dell'ultima riga usata+1, cioé la prima riga libera: é il punto in cui //cominciare a scrivere + + _codmagc = ini.get("CODMAGC", "33"); // Cerca un eventuale magazzino collegato da proporre + return TRUE; } @@ -308,7 +320,7 @@ void TPenna_app::check_doc() //definizione della me TCheck_mask m; //istanza di TPenna_mask con il nome m (perche'ho chiamato una maschera) if(m.run()==K_ENTER) { - TConfig ini(_ini_name, "Transaction"); //apre il file su cui scrivere + TConfig ini(_ini_name, "Transaction"); //apre il file su cui scrivere //chiamo il nome del file F_FILE che abbiamo scelto con la maschera; get //legge una stringa TRecord_cache c(LF_CODCORR, 2); @@ -328,7 +340,7 @@ void TPenna_app::check_doc() //definizione della me para.format("%d", LF_DOC); const int anno = ini.get_int(DOC_ANNO, para); - const TString16 codnum(ini.get(DOC_CODNUM)); + const TString4 codnum(ini.get(DOC_CODNUM)); const char provv = ini.get_char(DOC_PROVV); const long ndoc = ini.get_long(DOC_NDOC); int fcod = -1; @@ -484,6 +496,8 @@ void TPenna_app::check_doc() //definizione della me void TPenna_app::load_doc() //definizione della member function main_loop, della classe TPenna_app { TPenna_mask m; //istanza di TPenna_mask con il nome m (perche'ho chiamato una maschera) + m.set_magc(_codmagc); // Propone l'eventuale magazzino collegatp + if(m.run()==K_ENTER) { TConfig ini(_ini_name, "Transaction"); //apre il file su cui scrivere @@ -493,7 +507,7 @@ void TPenna_app::load_doc() //definizione della me const TFilename nomefile = m.get(F_FILE); //assegno alla variabile nomefile la stringa letta con m.get(F_FILE); //nomefile é una variabile di tipo TFilename - const TString16 tiporiga = m.get(F_TIPORIGA); + const TString4 tiporiga = m.get(F_TIPORIGA); const int tipo = m.get_int(F_TIPO); //var int che indica la modalitá di archiviazione (0=quantitá, 1=dif. giac.) @@ -508,13 +522,17 @@ void TPenna_app::load_doc() //definizione della me para.format("%d", LF_DOC); - TDate datadoc(ini.get(DOC_DATADOC, para)); //dal paragrafo testata documento prende il valore della data del + TDate datadoc(ini.get(DOC_DATADOC, para)); //dal paragrafo testata documento prende il valore della data del //documento TString16 annoes; annoes.format("%04d", esercizi().date2esc(datadoc)); //crea un intero lungo 4 riempito di 0 all'inizio TString8 codmag = m.get(F_MAG); // setta codmag in base al valore della maschera codmag.left_just(3) << m.get(F_DEP); // attacca a codmag il F_DEP, codice deposito dalla maschera + TString8 codmagc = m.get(F_MAGC); // setta codmagc in base al valore della maschera + codmagc.left_just(3) << m.get(F_DEPC); // attacca a codmagc il F_DEPC, codice deposito collegato dalla maschera + + TString val; articoli.open(); //applico il metodo open che apre il file in lettura (contenuta in TFile_text) for(int i=_first_row;articoli.ok_r();i++) //ok_r é una funzione che indica la fine del file @@ -526,15 +544,16 @@ void TPenna_app::load_doc() //definizione della me ini.set_paragraph(para); // sposta il cursore sulla nuova para (nuovo valore) ini.set(RDOC_TIPORIGA,tiporiga); ini.set(RDOC_CODARTMAG, NULL_CODART); // scrive il codice per forzare il check - ini.set(RDOC_CODMAG, codmag); // magazzino di default + ini.set(RDOC_CODMAG, codmag); // magazzino di default + ini.set(RDOC_CODMAGC, codmagc); // magazzino collegato for (int f = 0; f < nfields; f++) { const TTracciato_campo & c = rec.get(f); - const TString name = c.name(); + const TString& name = c.name(); if (name.not_empty()) { - TString val = articolocor.get(f); + val = articolocor.get(f); val.trim(); if (name == RDOC_CODART) @@ -587,8 +606,6 @@ void TPenna_app::main_loop() //definizione della me check_doc(); else load_doc(); - - } ////// Esecuzione del programma /////////// diff --git a/ve/ve6500.h b/ve/ve6500.h index 95b3a24c8..d60e0edb8 100755 --- a/ve/ve6500.h +++ b/ve/ve6500.h @@ -1,7 +1,11 @@ -#define F_FILE 101 -#define F_TIPORIGA 102 -#define F_TIPO 103 -#define F_MAG 104 -#define F_DEP 105 -#define F_DESCRMAG 106 -#define F_PROFILO 107 +#define F_FILE 101 +#define F_TIPORIGA 102 +#define F_TIPO 103 +#define F_MAG 104 +#define F_DEP 105 +#define F_DESCRMAG 106 +#define F_MAGC 107 +#define F_DEPC 108 +#define F_DESCRMAGC 109 + +#define F_PROFILO 201 diff --git a/ve/ve6500.uml b/ve/ve6500.uml index 09acad905..5e864c173 100755 --- a/ve/ve6500.uml +++ b/ve/ve6500.uml @@ -1,6 +1,6 @@ #include "ve6500.h" -PAGE "Lettura terminale portatile" -1 -1 80 12 +PAGE "Lettura terminale portatile" -1 -1 65 15 STRING F_FILE 128 40 BEGIN @@ -38,28 +38,60 @@ BEGIN OUTPUT F_MAG CODTAB OUTPUT F_DESCRMAG S0 CHECKTYPE REQUIRED - GROUP 1 END STRING F_DEP 2 BEGIN - PROMPT 21 7 "Deposito " + PROMPT 21 7 "Deposito " COPY USE F_MAG COPY INPUT F_MAG INPUT CODTAB[4,5] F_DEP COPY DISPLAY F_MAG COPY OUTPUT F_MAG + OUTPUT F_DEP CODTAB[4,5] CHECKTYPE NORMAL - GROUP 1 END -STRING F_DESCRMAG 50 35 +STRING F_DESCRMAG 50 BEGIN PROMPT 1 8 "Descrizione " FLAGS "D" - GROUP 1 END + + +STRING F_MAGC 3 +BEGIN + PROMPT 1 10 "Mag. colleg." + USE MAG + INPUT CODTAB[1,3] F_MAGC + DISPLAY "Magazzino" CODTAB[1,3] + DISPLAY "Deposito" CODTAB[4,5] + DISPLAY "Descrizione@50" S0 + OUTPUT F_MAGC CODTAB + OUTPUT F_DESCRMAGC S0 + CHECKTYPE NORMAL +END + +STRING F_DEPC 2 +BEGIN + PROMPT 21 10 "Dep. coll." + COPY USE F_MAGC + COPY INPUT F_MAGC + INPUT CODTAB[4,5] F_DEPC + COPY DISPLAY F_MAGC + COPY OUTPUT F_MAGC + OUTPUT F_DEPC CODTAB[4,5] + CHECKTYPE NORMAL +END + +STRING F_DESCRMAGC 50 +BEGIN + PROMPT 1 11 "Descrizione " + FLAGS "D" +END + + STRING F_PROFILO 70 50 BEGIN PROMPT 1 -2 "Profilo " @@ -72,7 +104,8 @@ TOOLBAR "" BUTTON DLG_OK 2 2 BEGIN - PROMPT 1 1 "" + PROMPT -12 -1 "" + PICTURE BMP_ELABORA END #include