Corretti conflitti relativi a length
git-svn-id: svn://10.65.10.50/trunk@5105 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
b21a147663
commit
285a207a12
26
mg/mglib.h
26
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 <p codepart> 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
|
||||
};
|
||||
|
@ -2,12 +2,10 @@
|
||||
// oggetto movimento di magazzino
|
||||
// funzione di ricostruzione saldi
|
||||
|
||||
#include "mglib.h"
|
||||
|
||||
#ifndef __TABUTIL_H
|
||||
#include <prefix.h>
|
||||
#include <tabutil.h>
|
||||
#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<levnum && levnum<MANY_MAG_LEV; i++)
|
||||
@ -689,10 +705,10 @@ const TString & TCodice_livelli::picture(int levnum) const
|
||||
|
||||
void TCodice_livelli::pack_grpcode(TString & pc, const TString &codlev, const int levnum)
|
||||
{
|
||||
pc.overwrite(codlev.left(_code_length[levnum-1]),packed_lenght(levnum-1));
|
||||
pc.overwrite(codlev.left(_code_length[levnum-1]),packed_length(levnum-1));
|
||||
}
|
||||
|
||||
TString TCodice_livelli::unpack_grpcode(const TString & pc, const int levnum) const
|
||||
TString TCodice_livelli::unpack_grpcode(const TString& pc, const int levnum) const
|
||||
{
|
||||
int start=0;
|
||||
for (int i=1; _lev_enabled && i<levnum; i++)
|
||||
@ -726,18 +742,31 @@ const TString & TCodice_livelli::group_descr(const char * code, int levnum) cons
|
||||
|
||||
void TCodice_livelli::set_sheetcolumn(TSheet_field &fld_righe,int field, int lev) const
|
||||
{
|
||||
if (enabled(lev)) {
|
||||
if (enabled(lev))
|
||||
{
|
||||
fld_righe.sheet_mask().field(field).show();
|
||||
fld_righe.set_column_header(fld_righe.cid2index(field),name(lev));
|
||||
fld_righe.sheet_mask().field(field).set_prompt(name(lev));
|
||||
} else {
|
||||
}
|
||||
else
|
||||
{
|
||||
fld_righe.sheet_mask().field(field).hide();
|
||||
fld_righe.delete_column(fld_righe.cid2index(field));
|
||||
}
|
||||
}
|
||||
|
||||
TCodice_livelli::TCodice_livelli()
|
||||
: _last_firm(-1), _gruppi(NULL) {}
|
||||
|
||||
TCodart_livelli ::TCodart_livelli()
|
||||
TCodice_livelli::~TCodice_livelli()
|
||||
{
|
||||
if (_gruppi)
|
||||
delete _gruppi;
|
||||
}
|
||||
|
||||
|
||||
|
||||
void TCodart_livelli::init()
|
||||
{
|
||||
TConfig mgconfig(CONFIG_DITTA, "mg");
|
||||
load(mgconfig.get_bool("GESLIVART"), "FCA","GCA");
|
||||
@ -746,19 +775,33 @@ TCodart_livelli ::TCodart_livelli()
|
||||
TTable tabfca("FCA");
|
||||
if (tabfca.last() == NOERR)
|
||||
format = tabfca.get("S1");
|
||||
|
||||
_metachars.destroy();
|
||||
_metachars.add(new TMetachar(format),max(last_level()-1,0));
|
||||
|
||||
update_firm();
|
||||
}
|
||||
|
||||
TCodart_livelli ::TCodart_livelli()
|
||||
{
|
||||
init();
|
||||
}
|
||||
|
||||
|
||||
TCodart_livelli ::~TCodart_livelli()
|
||||
TCodart_livelli::~TCodart_livelli()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
TCodgiac_livelli ::TCodgiac_livelli()
|
||||
void TCodgiac_livelli::init()
|
||||
{
|
||||
TConfig mgconfig(CONFIG_DITTA, "mg");
|
||||
load(mgconfig.get_bool("GESLIVGIAC"),"FCG","GCG");
|
||||
update_firm();
|
||||
}
|
||||
|
||||
TCodgiac_livelli::TCodgiac_livelli()
|
||||
{
|
||||
init();
|
||||
}
|
||||
|
||||
|
||||
@ -769,9 +812,11 @@ TMagazzini::TMagazzini() :
|
||||
mag.first();
|
||||
while (!mag.eof() && !mag.get_bool("B1"))
|
||||
mag.next();
|
||||
if (!mag.eof()) {
|
||||
_stdmag=mag.get("CODTAB");_stdmag.cut(3);
|
||||
_stddep=mag.get("CODTAB")+3;
|
||||
if (!mag.eof())
|
||||
{
|
||||
const TString& codtab = mag.get("CODTAB");
|
||||
_stdmag = codtab.left(3);
|
||||
_stddep = codtab.mid(3);
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user