From 285a207a126eb7012c13bcf5c1548c4ac9a72d01 Mon Sep 17 00:00:00 2001 From: guy Date: Tue, 26 Aug 1997 13:48:11 +0000 Subject: [PATCH] Corretti conflitti relativi a length git-svn-id: svn://10.65.10.50/trunk@5105 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- mg/mglib.h | 26 +++++++++----- mg/mglib01.cpp | 97 ++++++++++++++++++++++++++++++++++++-------------- 2 files changed, 89 insertions(+), 34 deletions(-) diff --git a/mg/mglib.h b/mg/mglib.h index 7f7408f1c..7031583ae 100755 --- a/mg/mglib.h +++ b/mg/mglib.h @@ -195,18 +195,23 @@ public: class TCodice_livelli : public TObject { + long _last_firm; + int _code_length[MANY_MAG_LEV]; TString _name[MANY_MAG_LEV]; TString _picture[MANY_MAG_LEV]; - int _last_level; - TDecoder *_gruppi; + int _last_level; + TDecoder *_gruppi; protected: - bool _lev_enabled; + bool _lev_enabled; + TArray _metachars; void load(bool e, const char *tabcod,const char *tabgrp); void add_metachar(int lev); - TArray _metachars; + + void update_firm(); + void test_firm(); public: // Ritorna il numero di livelli abilitati @@ -226,7 +231,7 @@ public: // Ritorna la posizione iniziale del codice gruppo di quel livello const int code_start(int levnum) const ; // Ritorna la lunghezza del codice compatto fino a quel livello - const int packed_lenght(int levnum) const ; + const int packed_length(int levnum) const ; // Restituisce la descrizione del gruppo const TString & group_descr(const char * grpcode, int levnum) const; // Setta la colonna del campo livello codice di uno sheet in base alle abilitazioni @@ -236,7 +241,6 @@ public: TString unpack_grpcode(const TString & pc, const int levnum) const ; // Estrae il codice del gruppo del livello levnum da pc TString build_tabcode(const TString & pc, const int levnum) const ; - // Restituisce il formato previsto per il codice (default==ultimo livello) const char * code_format(int levnum=-1) const ; // Restituisce se

e' riconosciuto come codice articolo (default==ultimo livello) @@ -247,14 +251,18 @@ public: const char * opz_chars(); const char * mand_chars();*/ - TCodice_livelli() {}; // costruttore - virtual ~TCodice_livelli() {}; // distruttore + virtual void init() pure; + + TCodice_livelli(); // costruttore + virtual ~TCodice_livelli(); // distruttore }; class TCodart_livelli : public TCodice_livelli { public: + virtual void init(); + TCodart_livelli(); // costruttore virtual ~TCodart_livelli() ; // distruttore }; @@ -263,6 +271,8 @@ public: class TCodgiac_livelli : public TCodice_livelli { public: + virtual void init(); + TCodgiac_livelli(); // costruttore virtual ~TCodgiac_livelli() {}; // distruttore }; diff --git a/mg/mglib01.cpp b/mg/mglib01.cpp index 4a5a8e2be..a93ebf6c7 100755 --- a/mg/mglib01.cpp +++ b/mg/mglib01.cpp @@ -2,12 +2,10 @@ // oggetto movimento di magazzino // funzione di ricostruzione saldi -#include "mglib.h" - -#ifndef __TABUTIL_H +#include #include -#endif +#include "mglib.h" // ******************************* // ******************************* @@ -574,11 +572,25 @@ TMetachar::~TMetachar () delete _au; } - // ************************** // classe codice a livelli +void TCodice_livelli::update_firm() +{ + _last_firm = prefix().get_codditta(); +} + +void TCodice_livelli::test_firm() +{ + long firm = prefix().get_codditta(); + if (firm > 0 && firm != _last_firm) + { + init(); + update_firm(); // Lo dovrebbe gia' fare la init + } +} + void TCodice_livelli::load(bool enabled, const char *tabname,const char *tabgrp) { TTable _tabformato(tabname); @@ -587,27 +599,31 @@ void TCodice_livelli::load(bool enabled, const char *tabname,const char *tabgrp) _lev_enabled = enabled; _last_level=0; e=_tabformato.first(); - for (int i=0; i< MANY_MAG_LEV; i++) { - if ((e==NOERR) && _lev_enabled) { + for (int i=0; i < MANY_MAG_LEV; i++) + { + if ((e==NOERR) && _lev_enabled) + { _name[i]=_tabformato.get("S0"); _picture[i]=_tabformato.get("S1"); _code_length[i]=TMetachar::maxstrlen(_picture[i]); _last_level=i+1; - } else { + } + else + { _name[i]=""; _code_length[i]=0; _picture[i]=""; } e=_tabformato.next(); } - _gruppi = new TDecoder(tabgrp); + + if (_gruppi == NULL) + _gruppi = new TDecoder(tabgrp); } - - const char *TCodice_livelli::code_format(int levnum) const { - CHECK(enabled(), "iu chent get the code format if levels are disabled"); + CHECK(enabled(), "iu chent get de code format if levels ar disebold"); if (levnum<0) { levnum=max(last_level(),1); } @@ -618,7 +634,7 @@ const char *TCodice_livelli::code_format(int levnum) const bool TCodice_livelli::fit_to_format(const char *codepart,int levnum) const { - CHECK(enabled(), "iu chent check wether the format fits if levels are disabled"); + CHECK(enabled(), "iu chent cec ueter de format fits if levels ar disebold"); if (levnum<0) { levnum=max(last_level(),1); } @@ -646,7 +662,7 @@ const bool TCodice_livelli::enabled(int levnum) const const int TCodice_livelli::code_start(int levnum) const { - return packed_lenght(levnum-1)+1; + return packed_length(levnum-1)+1; } @@ -662,7 +678,7 @@ const int TCodice_livelli::code_length(int levnum) const } -const int TCodice_livelli::packed_lenght(int levnum) const +const int TCodice_livelli::packed_length(int levnum) const { int start=0; for (int i=0; _lev_enabled && i