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
|
class TCodice_livelli : public TObject
|
||||||
{
|
{
|
||||||
|
long _last_firm;
|
||||||
|
|
||||||
int _code_length[MANY_MAG_LEV];
|
int _code_length[MANY_MAG_LEV];
|
||||||
TString _name[MANY_MAG_LEV];
|
TString _name[MANY_MAG_LEV];
|
||||||
TString _picture[MANY_MAG_LEV];
|
TString _picture[MANY_MAG_LEV];
|
||||||
int _last_level;
|
int _last_level;
|
||||||
TDecoder *_gruppi;
|
TDecoder *_gruppi;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
bool _lev_enabled;
|
bool _lev_enabled;
|
||||||
|
TArray _metachars;
|
||||||
|
|
||||||
void load(bool e, const char *tabcod,const char *tabgrp);
|
void load(bool e, const char *tabcod,const char *tabgrp);
|
||||||
void add_metachar(int lev);
|
void add_metachar(int lev);
|
||||||
TArray _metachars;
|
|
||||||
|
void update_firm();
|
||||||
|
void test_firm();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
// Ritorna il numero di livelli abilitati
|
// Ritorna il numero di livelli abilitati
|
||||||
@ -226,7 +231,7 @@ public:
|
|||||||
// Ritorna la posizione iniziale del codice gruppo di quel livello
|
// Ritorna la posizione iniziale del codice gruppo di quel livello
|
||||||
const int code_start(int levnum) const ;
|
const int code_start(int levnum) const ;
|
||||||
// Ritorna la lunghezza del codice compatto fino a quel livello
|
// 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
|
// Restituisce la descrizione del gruppo
|
||||||
const TString & group_descr(const char * grpcode, int levnum) const;
|
const TString & group_descr(const char * grpcode, int levnum) const;
|
||||||
// Setta la colonna del campo livello codice di uno sheet in base alle abilitazioni
|
// 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 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 ;
|
TString build_tabcode(const TString & pc, const int levnum) const ;
|
||||||
|
|
||||||
|
|
||||||
// Restituisce il formato previsto per il codice (default==ultimo livello)
|
// Restituisce il formato previsto per il codice (default==ultimo livello)
|
||||||
const char * code_format(int levnum=-1) const ;
|
const char * code_format(int levnum=-1) const ;
|
||||||
// Restituisce se <p codepart> e' riconosciuto come codice articolo (default==ultimo livello)
|
// Restituisce se <p codepart> e' riconosciuto come codice articolo (default==ultimo livello)
|
||||||
@ -247,14 +251,18 @@ public:
|
|||||||
const char * opz_chars();
|
const char * opz_chars();
|
||||||
const char * mand_chars();*/
|
const char * mand_chars();*/
|
||||||
|
|
||||||
TCodice_livelli() {}; // costruttore
|
virtual void init() pure;
|
||||||
virtual ~TCodice_livelli() {}; // distruttore
|
|
||||||
|
TCodice_livelli(); // costruttore
|
||||||
|
virtual ~TCodice_livelli(); // distruttore
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
class TCodart_livelli : public TCodice_livelli
|
class TCodart_livelli : public TCodice_livelli
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
virtual void init();
|
||||||
|
|
||||||
TCodart_livelli(); // costruttore
|
TCodart_livelli(); // costruttore
|
||||||
virtual ~TCodart_livelli() ; // distruttore
|
virtual ~TCodart_livelli() ; // distruttore
|
||||||
};
|
};
|
||||||
@ -263,6 +271,8 @@ public:
|
|||||||
class TCodgiac_livelli : public TCodice_livelli
|
class TCodgiac_livelli : public TCodice_livelli
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
virtual void init();
|
||||||
|
|
||||||
TCodgiac_livelli(); // costruttore
|
TCodgiac_livelli(); // costruttore
|
||||||
virtual ~TCodgiac_livelli() {}; // distruttore
|
virtual ~TCodgiac_livelli() {}; // distruttore
|
||||||
};
|
};
|
||||||
|
@ -2,12 +2,10 @@
|
|||||||
// oggetto movimento di magazzino
|
// oggetto movimento di magazzino
|
||||||
// funzione di ricostruzione saldi
|
// funzione di ricostruzione saldi
|
||||||
|
|
||||||
#include "mglib.h"
|
#include <prefix.h>
|
||||||
|
|
||||||
#ifndef __TABUTIL_H
|
|
||||||
#include <tabutil.h>
|
#include <tabutil.h>
|
||||||
#endif
|
|
||||||
|
|
||||||
|
#include "mglib.h"
|
||||||
|
|
||||||
// *******************************
|
// *******************************
|
||||||
// *******************************
|
// *******************************
|
||||||
@ -574,11 +572,25 @@ TMetachar::~TMetachar ()
|
|||||||
delete _au;
|
delete _au;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// **************************
|
// **************************
|
||||||
// classe codice a livelli
|
// 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)
|
void TCodice_livelli::load(bool enabled, const char *tabname,const char *tabgrp)
|
||||||
{
|
{
|
||||||
TTable _tabformato(tabname);
|
TTable _tabformato(tabname);
|
||||||
@ -587,27 +599,31 @@ void TCodice_livelli::load(bool enabled, const char *tabname,const char *tabgrp)
|
|||||||
_lev_enabled = enabled;
|
_lev_enabled = enabled;
|
||||||
_last_level=0;
|
_last_level=0;
|
||||||
e=_tabformato.first();
|
e=_tabformato.first();
|
||||||
for (int i=0; i< MANY_MAG_LEV; i++) {
|
for (int i=0; i < MANY_MAG_LEV; i++)
|
||||||
if ((e==NOERR) && _lev_enabled) {
|
{
|
||||||
|
if ((e==NOERR) && _lev_enabled)
|
||||||
|
{
|
||||||
_name[i]=_tabformato.get("S0");
|
_name[i]=_tabformato.get("S0");
|
||||||
_picture[i]=_tabformato.get("S1");
|
_picture[i]=_tabformato.get("S1");
|
||||||
_code_length[i]=TMetachar::maxstrlen(_picture[i]);
|
_code_length[i]=TMetachar::maxstrlen(_picture[i]);
|
||||||
_last_level=i+1;
|
_last_level=i+1;
|
||||||
} else {
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
_name[i]="";
|
_name[i]="";
|
||||||
_code_length[i]=0;
|
_code_length[i]=0;
|
||||||
_picture[i]="";
|
_picture[i]="";
|
||||||
}
|
}
|
||||||
e=_tabformato.next();
|
e=_tabformato.next();
|
||||||
}
|
}
|
||||||
_gruppi = new TDecoder(tabgrp);
|
|
||||||
|
if (_gruppi == NULL)
|
||||||
|
_gruppi = new TDecoder(tabgrp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const char *TCodice_livelli::code_format(int levnum) const
|
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) {
|
if (levnum<0) {
|
||||||
levnum=max(last_level(),1);
|
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
|
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) {
|
if (levnum<0) {
|
||||||
levnum=max(last_level(),1);
|
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
|
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;
|
int start=0;
|
||||||
for (int i=0; _lev_enabled && i<levnum && levnum<MANY_MAG_LEV; i++)
|
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)
|
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;
|
int start=0;
|
||||||
for (int i=1; _lev_enabled && i<levnum; i++)
|
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
|
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.sheet_mask().field(field).show();
|
||||||
fld_righe.set_column_header(fld_righe.cid2index(field),name(lev));
|
fld_righe.set_column_header(fld_righe.cid2index(field),name(lev));
|
||||||
fld_righe.sheet_mask().field(field).set_prompt(name(lev));
|
fld_righe.sheet_mask().field(field).set_prompt(name(lev));
|
||||||
} else {
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
fld_righe.sheet_mask().field(field).hide();
|
fld_righe.sheet_mask().field(field).hide();
|
||||||
fld_righe.delete_column(fld_righe.cid2index(field));
|
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");
|
TConfig mgconfig(CONFIG_DITTA, "mg");
|
||||||
load(mgconfig.get_bool("GESLIVART"), "FCA","GCA");
|
load(mgconfig.get_bool("GESLIVART"), "FCA","GCA");
|
||||||
@ -746,19 +775,33 @@ TCodart_livelli ::TCodart_livelli()
|
|||||||
TTable tabfca("FCA");
|
TTable tabfca("FCA");
|
||||||
if (tabfca.last() == NOERR)
|
if (tabfca.last() == NOERR)
|
||||||
format = tabfca.get("S1");
|
format = tabfca.get("S1");
|
||||||
|
|
||||||
|
_metachars.destroy();
|
||||||
_metachars.add(new TMetachar(format),max(last_level()-1,0));
|
_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()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void TCodgiac_livelli::init()
|
||||||
TCodgiac_livelli ::TCodgiac_livelli()
|
|
||||||
{
|
{
|
||||||
TConfig mgconfig(CONFIG_DITTA, "mg");
|
TConfig mgconfig(CONFIG_DITTA, "mg");
|
||||||
load(mgconfig.get_bool("GESLIVGIAC"),"FCG","GCG");
|
load(mgconfig.get_bool("GESLIVGIAC"),"FCG","GCG");
|
||||||
|
update_firm();
|
||||||
|
}
|
||||||
|
|
||||||
|
TCodgiac_livelli::TCodgiac_livelli()
|
||||||
|
{
|
||||||
|
init();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -769,9 +812,11 @@ TMagazzini::TMagazzini() :
|
|||||||
mag.first();
|
mag.first();
|
||||||
while (!mag.eof() && !mag.get_bool("B1"))
|
while (!mag.eof() && !mag.get_bool("B1"))
|
||||||
mag.next();
|
mag.next();
|
||||||
if (!mag.eof()) {
|
if (!mag.eof())
|
||||||
_stdmag=mag.get("CODTAB");_stdmag.cut(3);
|
{
|
||||||
_stddep=mag.get("CODTAB")+3;
|
const TString& codtab = mag.get("CODTAB");
|
||||||
|
_stdmag = codtab.left(3);
|
||||||
|
_stddep = codtab.mid(3);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user