Modificati tutti gli sheet con autoload/autosave automatico
git-svn-id: svn://10.65.10.50/trunk@4396 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
e8e964001b
commit
8ca204bc3f
324
ve/ve2400.cpp
324
ve/ve2400.cpp
@ -13,10 +13,10 @@
|
|||||||
|
|
||||||
// maschera dell'anagrafica di magazzino
|
// maschera dell'anagrafica di magazzino
|
||||||
class TMask_anamag: public TMask {
|
class TMask_anamag: public TMask {
|
||||||
TLocalisamfile *_codcorr; // file di accesso ai codici corrispondenti
|
// TLocalisamfile *_codcorr; // file di accesso ai codici corrispondenti
|
||||||
TLocalisamfile *_deslin; // file di accesso alle descrizioni in lingua
|
// TLocalisamfile *_deslin; // file di accesso alle descrizioni in lingua
|
||||||
TLocalisamfile *_umart; // file di accesso alle unità di misura
|
// TLocalisamfile *_umart; // file di accesso alle unità di misura
|
||||||
TLocalisamfile *_giacenze; // file di accesso alle giacenze
|
// TLocalisamfile *_giacenze; // file di accesso alle giacenze
|
||||||
TRelation * _rel; // relazione principale
|
TRelation * _rel; // relazione principale
|
||||||
|
|
||||||
TRecord_array *_linee_rec_giac; // record array di accoppiamento delle giacenze con lo sheet
|
TRecord_array *_linee_rec_giac; // record array di accoppiamento delle giacenze con lo sheet
|
||||||
@ -28,6 +28,7 @@ class TMask_anamag: public TMask {
|
|||||||
int last_annosto;
|
int last_annosto;
|
||||||
|
|
||||||
static bool handle_codice(TMask_field &, KEY); // handler del campo codice articolo
|
static bool handle_codice(TMask_field &, KEY); // handler del campo codice articolo
|
||||||
|
static bool handle_livart(TMask_field &, KEY); // handler dei campi codice articolo (livelli)
|
||||||
static bool handle_anno(TMask_field &, KEY); // handler del campo anno delle giacenze
|
static bool handle_anno(TMask_field &, KEY); // handler del campo anno delle giacenze
|
||||||
static bool handle_stoanno(TMask_field &, KEY); // handler del campo anno delle giacenze
|
static bool handle_stoanno(TMask_field &, KEY); // handler del campo anno delle giacenze
|
||||||
static bool handle_sheet_um(TMask_field &, KEY); // handler dello sheet delle unità di misura
|
static bool handle_sheet_um(TMask_field &, KEY); // handler dello sheet delle unità di misura
|
||||||
@ -40,25 +41,24 @@ class TMask_anamag: public TMask {
|
|||||||
static bool handle_sheet_um_price(TMask_field &, KEY); // handler del campo PREZZO e PREZZO_LORDO dello sheet delle unità di misura
|
static bool handle_sheet_um_price(TMask_field &, KEY); // handler del campo PREZZO e PREZZO_LORDO dello sheet delle unità di misura
|
||||||
|
|
||||||
public:
|
public:
|
||||||
TMask_anamag(TRelation * rel, bool enable_mag);
|
TMask_anamag(TRelation * rel, bool enable_mag, bool enable_artliv);
|
||||||
virtual ~TMask_anamag();
|
virtual ~TMask_anamag();
|
||||||
|
|
||||||
int sheetgiac_read();
|
static void sheetgiac_get(TSheet_field &fld_righe, int item);
|
||||||
int sheetgiac_write(const int re);
|
static void sheetgiac_put(TSheet_field &fld_righe, int item);
|
||||||
int sheetgiac_remove();
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
// costruttore della maschera anagrafica di magazzino
|
// costruttore della maschera anagrafica di magazzino
|
||||||
TMask_anamag::TMask_anamag(TRelation * rel, bool enable_mag) : TMask("ve2400")
|
TMask_anamag::TMask_anamag(TRelation * rel, bool enable_mag, bool enable_artliv) : TMask("ve2400")
|
||||||
{
|
{
|
||||||
_rel=rel;
|
_rel=rel;
|
||||||
_umart= new TLocalisamfile(LF_UMART); // apre i file per disporre dei tracciati record
|
/* _umart= new TLocalisamfile(LF_UMART); // apre i file per disporre dei tracciati record
|
||||||
_deslin= new TLocalisamfile(LF_DESLIN);
|
_deslin= new TLocalisamfile(LF_DESLIN);
|
||||||
_codcorr= new TLocalisamfile(LF_CODCORR);
|
_codcorr= new TLocalisamfile(LF_CODCORR);
|
||||||
_giacenze= new TLocalisamfile(LF_MAG);
|
_giacenze= new TLocalisamfile(LF_MAG);
|
||||||
_linee_rec_giac= new TRecord_array(LF_MAG, "NRIGA");// alloca i record
|
_linee_rec_giac= new TRecord_array(LF_MAG, "NRIGA");// alloca i record
|
||||||
|
*/
|
||||||
// imposta il riconoscimento dei caratteri del formato dell'ultima parte dell'articolo
|
// imposta il riconoscimento dei caratteri del formato dell'ultima parte dell'articolo
|
||||||
TString80 format("");
|
TString80 format("");
|
||||||
TTable _tabfca("FCA");
|
TTable _tabfca("FCA");
|
||||||
@ -73,7 +73,6 @@ TMask_anamag::TMask_anamag(TRelation * rel, bool enable_mag) : TMask("ve2400")
|
|||||||
last_annogiac=-1;
|
last_annogiac=-1;
|
||||||
last_annosto=-1;
|
last_annosto=-1;
|
||||||
|
|
||||||
set_handler(F_CODART, handle_codice);
|
|
||||||
set_handler(F_ANNO, handle_anno);
|
set_handler(F_ANNO, handle_anno);
|
||||||
set_handler(F_STOANNO, handle_stoanno);
|
set_handler(F_STOANNO, handle_stoanno);
|
||||||
set_handler(F_SHEETUM, handle_sheet_um);
|
set_handler(F_SHEETUM, handle_sheet_um);
|
||||||
@ -81,6 +80,8 @@ TMask_anamag::TMask_anamag(TRelation * rel, bool enable_mag) : TMask("ve2400")
|
|||||||
set_handler(F_SHEETDESLIN, handle_sheet_deslin);
|
set_handler(F_SHEETDESLIN, handle_sheet_deslin);
|
||||||
set_handler(F_SHEETCOD, handle_sheet_cod);
|
set_handler(F_SHEETCOD, handle_sheet_cod);
|
||||||
set_handler(F_SHEETGIAC, handle_sheetgiac);
|
set_handler(F_SHEETGIAC, handle_sheetgiac);
|
||||||
|
((TSheet_field &)field(F_SHEETGIAC)).set_userget(sheetgiac_get);
|
||||||
|
((TSheet_field &)field(F_SHEETGIAC)).set_userput(sheetgiac_put);
|
||||||
set_handler(F_SHEETSTOMAG, handle_sheetstomag);
|
set_handler(F_SHEETSTOMAG, handle_sheetstomag);
|
||||||
|
|
||||||
|
|
||||||
@ -91,8 +92,6 @@ TMask_anamag::TMask_anamag(TRelation * rel, bool enable_mag) : TMask("ve2400")
|
|||||||
fm.set_handler(FS_PREZZO_LORDO, handle_sheet_um_price);
|
fm.set_handler(FS_PREZZO_LORDO, handle_sheet_um_price);
|
||||||
|
|
||||||
// Abilita la pagina delle giacenze
|
// Abilita la pagina delle giacenze
|
||||||
// TConfig conf_mg(CONFIG_DITTA, "mg");
|
|
||||||
// if (conf_mg.get_bool("....."))
|
|
||||||
if (enable_mag)
|
if (enable_mag)
|
||||||
{
|
{
|
||||||
enable_page(4,TRUE);
|
enable_page(4,TRUE);
|
||||||
@ -100,44 +99,23 @@ TMask_anamag::TMask_anamag(TRelation * rel, bool enable_mag) : TMask("ve2400")
|
|||||||
// per la pagina giacenze
|
// per la pagina giacenze
|
||||||
TSheet_field &fld_giac= (TSheet_field &)field(F_SHEETGIAC);
|
TSheet_field &fld_giac= (TSheet_field &)field(F_SHEETGIAC);
|
||||||
// disabilita le colonne quando non sono utilizzati i livelli di giacenza
|
// disabilita le colonne quando non sono utilizzati i livelli di giacenza
|
||||||
if (livelli_giac->enabled(1)) {
|
for (int i=0; i<4; i++)
|
||||||
fld_giac.sheet_mask().field(F_LIV1).show();
|
{
|
||||||
fld_giac.set_column_header(fld_giac.cid2index(F_LIV1),livelli_giac->name(1));
|
if (livelli_giac->enabled(1+i)) {
|
||||||
fld_giac.sheet_mask().field(F_LIV1).set_prompt(livelli_giac->name(1));
|
fld_giac.sheet_mask().field(F_LIV1+i).show();
|
||||||
} else {
|
fld_giac.set_column_header(fld_giac.cid2index(F_LIV1+i),livelli_giac->name(1+i));
|
||||||
fld_giac.sheet_mask().field(F_LIV1).hide();
|
fld_giac.sheet_mask().field(F_LIV1+i).set_prompt(livelli_giac->name(1+i));
|
||||||
fld_giac.delete_column(fld_giac.cid2index(F_LIV1));
|
} else {
|
||||||
}
|
fld_giac.sheet_mask().field(F_LIV1+i).hide();
|
||||||
if (livelli_giac->enabled(2)) {
|
fld_giac.delete_column(fld_giac.cid2index(F_LIV1+i));
|
||||||
fld_giac.sheet_mask().field(F_LIV2).show();
|
}
|
||||||
fld_giac.set_column_header(fld_giac.cid2index(F_LIV2),livelli_giac->name(2));
|
|
||||||
fld_giac.sheet_mask().field(F_LIV2).set_prompt(livelli_giac->name(2));
|
|
||||||
} else {
|
|
||||||
fld_giac.sheet_mask().field(F_LIV2).hide();
|
|
||||||
fld_giac.delete_column(fld_giac.cid2index(F_LIV2));
|
|
||||||
}
|
|
||||||
if (livelli_giac->enabled(3)) {
|
|
||||||
fld_giac.sheet_mask().field(F_LIV3).show();
|
|
||||||
fld_giac.set_column_header(fld_giac.cid2index(F_LIV3),livelli_giac->name(3));
|
|
||||||
fld_giac.sheet_mask().field(F_LIV3).set_prompt(livelli_giac->name(3));
|
|
||||||
} else {
|
|
||||||
fld_giac.sheet_mask().field(F_LIV3).hide();
|
|
||||||
fld_giac.delete_column(fld_giac.cid2index(F_LIV3));
|
|
||||||
}
|
|
||||||
if (livelli_giac->enabled(4)) {
|
|
||||||
fld_giac.sheet_mask().field(F_LIV4).show();
|
|
||||||
fld_giac.set_column_header(fld_giac.cid2index(F_LIV4),livelli_giac->name(4));
|
|
||||||
fld_giac.sheet_mask().field(F_LIV4).set_prompt(livelli_giac->name(4));
|
|
||||||
} else {
|
|
||||||
fld_giac.sheet_mask().field(F_LIV4).hide();
|
|
||||||
fld_giac.delete_column(fld_giac.cid2index(F_LIV4));
|
|
||||||
}
|
}
|
||||||
// disabilita la colonna numero distinte
|
// disabilita la colonna numero distinte
|
||||||
if (1) {
|
if (0) {
|
||||||
fld_giac.delete_column(fld_giac.cid2index(F_NDIST));
|
fld_giac.delete_column(fld_giac.cid2index(F_NDIST));
|
||||||
fld_giac.sheet_mask().field(F_NDIST).enable(FALSE);
|
fld_giac.sheet_mask().field(F_NDIST).enable(FALSE);
|
||||||
}
|
}
|
||||||
// abilita la gestione delle ubicazioni
|
// abilita la gestione delle ubicazioni (manuale/su tabella)
|
||||||
if (1) {
|
if (1) {
|
||||||
fld_giac.sheet_mask().field(F_UBICAZ).show(FALSE);
|
fld_giac.sheet_mask().field(F_UBICAZ).show(FALSE);
|
||||||
fld_giac.sheet_mask().field(F_UBICAZD).show(FALSE);
|
fld_giac.sheet_mask().field(F_UBICAZD).show(FALSE);
|
||||||
@ -150,23 +128,54 @@ TMask_anamag::TMask_anamag(TRelation * rel, bool enable_mag) : TMask("ve2400")
|
|||||||
} else {
|
} else {
|
||||||
enable_page(4,FALSE);
|
enable_page(4,FALSE);
|
||||||
}
|
}
|
||||||
|
// abilita la visualizzazione dei campi distinti per i livelli articolo
|
||||||
|
if (enable_artliv)
|
||||||
|
{
|
||||||
|
field(F_CODART).hide();
|
||||||
|
field(F_GCA).hide();
|
||||||
|
|
||||||
|
|
||||||
|
for (int i=0; i<3; i++)
|
||||||
|
{
|
||||||
|
// versione con campi predefiniti sulla maschera
|
||||||
|
if (livelli_art->enabled(1+i)) {
|
||||||
|
field(F_LIVART1+i).show();
|
||||||
|
field(F_LIVART1+livelli_giac->last_level()-1).check_type(1+i==livelli_art->last_level() ? CHECK_NONE : CHECK_REQUIRED);
|
||||||
|
((TEdit_field&)field(F_LIVART1+livelli_giac->last_level()-1)).set_width(livelli_art->code_lenght(1+i));
|
||||||
|
set_handler(F_LIVART1+i, handle_livart);
|
||||||
|
} else {
|
||||||
|
field(F_LIVART1+i).hide();
|
||||||
|
field(F_LIVART1+livelli_giac->last_level()-1).check_type(CHECK_NONE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (livelli_art->enabled())
|
||||||
|
{
|
||||||
|
set_handler(F_CODART, handle_codice);
|
||||||
|
for (int i=0; i<9; i++)
|
||||||
|
field(F_LIVART1+i).hide();
|
||||||
|
} else
|
||||||
|
if (!livelli_art->enabled(2))
|
||||||
|
// .. nasconde il pulsante dei livelli
|
||||||
|
field(F_GCA).hide();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
TMask_anamag::~TMask_anamag()
|
TMask_anamag::~TMask_anamag()
|
||||||
{
|
{
|
||||||
delete _linee_rec_giac;
|
/* delete _linee_rec_giac;
|
||||||
delete _giacenze;
|
delete _giacenze;
|
||||||
delete _codcorr;
|
delete _codcorr;
|
||||||
delete _deslin;
|
delete _deslin;
|
||||||
delete _umart;
|
delete _umart;
|
||||||
|
*/
|
||||||
delete livelli_art;
|
delete livelli_art;
|
||||||
delete livelli_giac;
|
delete livelli_giac;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//
|
// HANDLER DEL CODICE: controlla la corrispondenza al formato previsto
|
||||||
bool TMask_anamag::handle_codice(TMask_field &fld, KEY k)
|
bool TMask_anamag::handle_codice(TMask_field &fld, KEY k)
|
||||||
{
|
{
|
||||||
TMask_anamag &mask=(TMask_anamag &)fld.mask();
|
TMask_anamag &mask=(TMask_anamag &)fld.mask();
|
||||||
@ -182,18 +191,40 @@ bool TMask_anamag::handle_codice(TMask_field &fld, KEY k)
|
|||||||
_tabgrp.zero();
|
_tabgrp.zero();
|
||||||
_tabgrp.put("CODTAB", codepart);
|
_tabgrp.put("CODTAB", codepart);
|
||||||
if (_tabgrp.read()!=NOERR) {
|
if (_tabgrp.read()!=NOERR) {
|
||||||
fld.error_box("'%s' non è un codice del gruppo '%s'",(const char *)codepart.mid(1),(const char *)mask.livelli_art->name(l));
|
fld.error_box("'%s' non appartiene a '%s'",(const char *)codepart.mid(1),(const char *)mask.livelli_art->name(l));
|
||||||
return(FALSE);
|
return(FALSE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
codepart=mask.livelli_art->unpack_grpcode(fld.get(),l);
|
codepart=mask.livelli_art->unpack_grpcode(fld.get(),mask.livelli_art->last_level());
|
||||||
|
if (codepart.blank()) {
|
||||||
|
fld.error_box("Il codice articolo non può essere vuoto");
|
||||||
|
return(FALSE);
|
||||||
|
}
|
||||||
if (!mask.metac->recognized(codepart)) {
|
if (!mask.metac->recognized(codepart)) {
|
||||||
fld.error_box("Il codice articolo non corrisponde al formato previsto ('%s' ?? '%s')",(const char *)codepart,(const char *)mask.metac->language());
|
fld.error_box("Il codice articolo non corrisponde al formato previsto \n('%s' ?? '%s')",(const char *)codepart,(const char *)mask.metac->language());
|
||||||
return(FALSE);
|
return(FALSE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return(TRUE);
|
return(TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// HANDLER DEL CODICE: controlla la corrispondenza al formato previsto
|
||||||
|
bool TMask_anamag::handle_livart(TMask_field &fld, KEY k)
|
||||||
|
{
|
||||||
|
if (k == K_TAB && fld.focusdirty())
|
||||||
|
{
|
||||||
|
TMask_anamag & m=(TMask_anamag & )fld.mask();
|
||||||
|
TString s(m.field(F_CODART).get());
|
||||||
|
m.livelli_art->pack_grpcode(s,fld.get(),fld.dlg()-F_LIVART1+1);
|
||||||
|
m.field(F_CODART).set(s);
|
||||||
|
if (fld.dlg()-F_LIVART1+1==m.livelli_art->last_level() && fld.get().blank()) {
|
||||||
|
|
||||||
|
fld.error_box("Il codice articolo non può essere lasciato in bianco");
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
bool TMask_anamag::handle_anno(TMask_field &fld, KEY k)
|
bool TMask_anamag::handle_anno(TMask_field &fld, KEY k)
|
||||||
{
|
{
|
||||||
@ -202,17 +233,19 @@ bool TMask_anamag::handle_anno(TMask_field &fld, KEY k)
|
|||||||
|
|
||||||
if (k == K_TAB)
|
if (k == K_TAB)
|
||||||
{
|
{
|
||||||
TSheet_field &fld_giac= (TSheet_field &)fld.mask().field(F_SHEETGIAC);
|
TSheet_field &fld_giac= (TSheet_field &)mask.field(F_SHEETGIAC);
|
||||||
|
|
||||||
if (mask.last_annogiac>0 && mask.last_annogiac!=fld.mask().get_int(F_ANNO)) {
|
if (mask.last_annogiac>0 && mask.last_annogiac!=fld.mask().get_int(F_ANNO)) {
|
||||||
if (fld.mask().field(F_SHEETGIAC).dirty() && handle_sheetgiac(fld_giac,K_ENTER)) {
|
if (fld_giac.dirty() && handle_sheetgiac(fld_giac,K_ENTER)) {
|
||||||
if (fld.yesno_box("Vuoi salvare le righe di giacenza per l'anno %d",mask.last_annogiac )) {
|
if (fld.yesno_box("Vuoi salvare le righe di giacenza per l'anno %d",mask.last_annogiac )) {
|
||||||
mask.sheetgiac_write(TRUE);
|
fld_giac.autosave(*mask._rel);
|
||||||
|
fld_giac.record()->rewrite();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
mask.field(F_ANNORIF).set(fld.get());
|
mask.field(F_ANNORIF).set(fld.get());
|
||||||
// rilegge le giacenze relative a quell'anno ed aggiorna il layout
|
// rilegge le giacenze relative a quell'anno ed aggiorna il layout
|
||||||
mask.sheetgiac_read();
|
fld_giac.record()->read(*fld_giac.putkey(*mask._rel));
|
||||||
|
fld_giac.autoload(*mask._rel);
|
||||||
fld_giac.force_update();
|
fld_giac.force_update();
|
||||||
}
|
}
|
||||||
mask.last_annogiac=mask.get_int(F_ANNO);
|
mask.last_annogiac=mask.get_int(F_ANNO);
|
||||||
@ -360,7 +393,10 @@ bool TMask_anamag::handle_sheetgiac(TMask_field &fld, KEY k)
|
|||||||
// aggiunge all'hash table l'elemento 0 (primo) della riga corrente e controlla che non esista già
|
// aggiunge all'hash table l'elemento 0 (primo) della riga corrente e controlla che non esista già
|
||||||
if (v.add(codgiac))
|
if (v.add(codgiac))
|
||||||
return error_box("Esistono due righe con lo stesso codice di giacenza");
|
return error_box("Esistono due righe con lo stesso codice di giacenza");
|
||||||
|
// ordina le righe per livello+codmag
|
||||||
}
|
}
|
||||||
|
// ordina le righe per livello+codmag
|
||||||
|
// f.rows_array().sort();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return TRUE;
|
return TRUE;
|
||||||
@ -488,139 +524,39 @@ bool TMask_anamag::handle_sheet_um_price(TMask_field &f, KEY k)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void TMask_anamag::sheetgiac_get(TSheet_field &fld_righe, int item)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int TMask_anamag::sheetgiac_read()
|
|
||||||
{
|
{
|
||||||
TRectype rgiac(LF_MAG); // prende il record corrente dal file giacenze
|
TMask_anamag &m=(TMask_anamag &)fld_righe.mask();
|
||||||
TSheet_field &fld_giac= (TSheet_field &)field(F_SHEETGIAC); // prende lo sheet giacenze
|
// prende il record della riga corrente dal record array
|
||||||
|
TRectype &rec= fld_righe.record()->row(item, TRUE);
|
||||||
rgiac.put("CODART", get(F_CODART)); // imposta il record corrente sul codice articolo (dalla maschera)
|
TToken_string &row= fld_righe.row(item-1);
|
||||||
rgiac.put("ANNOES", get(F_ANNO)); //
|
// codici di livello
|
||||||
_linee_rec_giac->read(rgiac); // legge il record array
|
row.add( m.livelli_giac->unpack_grpcode(rec.get("LIVELLO") ,1),fld_righe.cid2index(F_LIV1) );
|
||||||
fld_giac.destroy(); // cancella lo sheet
|
row.add( m.livelli_giac->unpack_grpcode(rec.get("LIVELLO") ,2),fld_righe.cid2index(F_LIV2) );
|
||||||
const int lastgiac = _linee_rec_giac->last_row();
|
row.add( m.livelli_giac->unpack_grpcode(rec.get("LIVELLO") ,3),fld_righe.cid2index(F_LIV3) );
|
||||||
for (int i= 1; i <= lastgiac; i++)
|
row.add( m.livelli_giac->unpack_grpcode(rec.get("LIVELLO") ,4),fld_righe.cid2index(F_LIV4) );
|
||||||
{
|
|
||||||
TRectype &rec= _linee_rec_giac->row(i, TRUE); // prende il record della riga corrente dal record array
|
|
||||||
TToken_string &row= fld_giac.row(i-1);
|
|
||||||
|
|
||||||
row = "";
|
|
||||||
row.add(rec.get("CODMAG").mid(0,3)); // imposta la riga dello sheet con i campi del record della riga corrente
|
|
||||||
row.add(rec.get("CODMAG").mid(3,2));
|
|
||||||
|
|
||||||
// !?!?! codici di livello
|
|
||||||
row.add( livelli_giac->unpack_grpcode(rec.get("LIVELLO") ,1) );
|
|
||||||
row.add( livelli_giac->unpack_grpcode(rec.get("LIVELLO") ,2) );
|
|
||||||
row.add( livelli_giac->unpack_grpcode(rec.get("LIVELLO") ,3) );
|
|
||||||
row.add( livelli_giac->unpack_grpcode(rec.get("LIVELLO") ,4) );
|
|
||||||
|
|
||||||
row.add(rec.get("UBICAZ"));
|
|
||||||
row.add(rec.get("GIAC"));
|
|
||||||
row.add(rec.get("RIM"));
|
|
||||||
row.add(rec.get("VALRIM"));
|
|
||||||
row.add(rec.get("ACQ"));
|
|
||||||
row.add(rec.get("VALACQ"));
|
|
||||||
row.add(rec.get("ENT"));
|
|
||||||
row.add(rec.get("VALENT"));
|
|
||||||
row.add(rec.get("VEN"));
|
|
||||||
row.add(rec.get("VALVEN"));
|
|
||||||
row.add(rec.get("USC"));
|
|
||||||
row.add(rec.get("VALUSC"));
|
|
||||||
row.add(rec.get("ORDF"));
|
|
||||||
row.add(rec.get("VALORDF"));
|
|
||||||
row.add(rec.get("ORDC"));
|
|
||||||
row.add(rec.get("VALORDC"));
|
|
||||||
row.add(rec.get("SCARTI"));
|
|
||||||
row.add(rec.get("VALSCARTI"));
|
|
||||||
row.add(rec.get("PRODCOMP"));
|
|
||||||
row.add(rec.get("PRODFIN"));
|
|
||||||
row.add(rec.get("ACL"));
|
|
||||||
row.add(rec.get("INCL"));
|
|
||||||
row.add(rec.get("NLABEL"));
|
|
||||||
row.add(rec.get("SCORTAMIN"));
|
|
||||||
row.add(rec.get("LIVRIOR"));
|
|
||||||
row.add(rec.get("LOTTORIOR"));
|
|
||||||
row.add(rec.get("GIORNIRIOR"));
|
|
||||||
row.add(rec.get("NDIST"));
|
|
||||||
|
|
||||||
fld_giac.check_row(i-1);
|
|
||||||
}
|
|
||||||
return(0);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int TMask_anamag::sheetgiac_write(const int re)
|
|
||||||
|
// item varies from 1 to items()
|
||||||
|
void TMask_anamag::sheetgiac_put(TSheet_field &fld_righe, int item)
|
||||||
{
|
{
|
||||||
TSheet_field &fld_giac= (TSheet_field &)field(F_SHEETGIAC);
|
TMask_anamag &m=(TMask_anamag &)fld_righe.mask();
|
||||||
|
TToken_string &row= fld_righe.row(item-1);
|
||||||
_linee_rec_giac->destroy_rows();
|
|
||||||
if (insert_mode()) _linee_rec_giac->renum_key("CODART", get(F_CODART));
|
|
||||||
|
|
||||||
for (int i= 0; i < fld_giac.items(); i++)
|
|
||||||
{
|
|
||||||
TToken_string &row= fld_giac.row(i);
|
|
||||||
|
|
||||||
TString16 codmag(row.get(F_CODMAG-FIRST_FIELD));
|
TRectype &recrighe= fld_righe.record()->row(item, TRUE);
|
||||||
codmag << row.get();
|
// codici livello
|
||||||
|
if (m.livelli_giac->enabled()) {
|
||||||
if (codmag.not_empty())
|
TString16 packedcode;
|
||||||
{
|
m.livelli_giac->pack_grpcode(packedcode,row.get(fld_righe.cid2index(F_LIV1)),1);
|
||||||
TRectype &recgiac= _linee_rec_giac->row(i+1, TRUE);
|
m.livelli_giac->pack_grpcode(packedcode,row.get(fld_righe.cid2index(F_LIV2)),2);
|
||||||
recgiac.put("CODMAG", codmag);
|
m.livelli_giac->pack_grpcode(packedcode,row.get(fld_righe.cid2index(F_LIV3)),3);
|
||||||
recgiac.put("ANNOES", last_annogiac);
|
m.livelli_giac->pack_grpcode(packedcode,row.get(fld_righe.cid2index(F_LIV4)),4);
|
||||||
// !?!?! codici livello
|
recrighe.put("LIVELLO", packedcode);
|
||||||
if (livelli_giac->enabled()) {
|
}
|
||||||
|
|
||||||
TString16 packedcode;
|
|
||||||
livelli_giac->pack_grpcode(packedcode,row.get(fld_giac.cid2index(F_LIV1)),1);
|
|
||||||
livelli_giac->pack_grpcode(packedcode,row.get(fld_giac.cid2index(F_LIV2)),2);
|
|
||||||
livelli_giac->pack_grpcode(packedcode,row.get(fld_giac.cid2index(F_LIV3)),3);
|
|
||||||
livelli_giac->pack_grpcode(packedcode,row.get(fld_giac.cid2index(F_LIV4)),4);
|
|
||||||
recgiac.put("LIVELLO", packedcode);
|
|
||||||
}
|
|
||||||
recgiac.put("UBICAZ" ,row.get());
|
|
||||||
recgiac.put("GIAC" ,row.get());
|
|
||||||
recgiac.put("RIM" ,row.get());
|
|
||||||
recgiac.put("VALRIM" ,row.get());
|
|
||||||
recgiac.put("ACQ" ,row.get());
|
|
||||||
recgiac.put("VALACQ" ,row.get());
|
|
||||||
recgiac.put("ENT" ,row.get());
|
|
||||||
recgiac.put("VALENT" ,row.get());
|
|
||||||
recgiac.put("VEN" ,row.get());
|
|
||||||
recgiac.put("VALVEN" ,row.get());
|
|
||||||
recgiac.put("USC" ,row.get());
|
|
||||||
recgiac.put("VALUSC" ,row.get());
|
|
||||||
recgiac.put("ORDF" ,row.get());
|
|
||||||
recgiac.put("VALORDF" ,row.get());
|
|
||||||
recgiac.put("ORDC" ,row.get());
|
|
||||||
recgiac.put("VALORDC" ,row.get());
|
|
||||||
recgiac.put("SCARTI" ,row.get());
|
|
||||||
recgiac.put("VALSCARTI" ,row.get());
|
|
||||||
recgiac.put("PRODCOMP" ,row.get());
|
|
||||||
recgiac.put("PRODFIN" ,row.get());
|
|
||||||
recgiac.put("ACL" ,row.get());
|
|
||||||
recgiac.put("INCL" ,row.get());
|
|
||||||
recgiac.put("NLABEL" ,row.get());
|
|
||||||
recgiac.put("SCORTAMIN" ,row.get());
|
|
||||||
recgiac.put("LIVRIOR" ,row.get());
|
|
||||||
recgiac.put("LOTTORIOR" ,row.get());
|
|
||||||
recgiac.put("GIORNIRIOR" ,row.get());
|
|
||||||
// campo distinte
|
|
||||||
if (0)
|
|
||||||
recgiac.put("NDIST" ,row.get());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return (_linee_rec_giac->write(re));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
inline int TMask_anamag::sheetgiac_remove() {
|
|
||||||
return(_linee_rec_giac->remove());
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// ******************************
|
// ******************************
|
||||||
// applicazione
|
// applicazione
|
||||||
class TAnagrafica_magazzino : public TRelation_application {
|
class TAnagrafica_magazzino : public TRelation_application {
|
||||||
@ -659,7 +595,7 @@ bool TAnagrafica_magazzino::user_create()
|
|||||||
_linee_rec_deslin= new TRecord_array(LF_DESLIN, "NRIGA");
|
_linee_rec_deslin= new TRecord_array(LF_DESLIN, "NRIGA");
|
||||||
_linee_rec_cod= new TRecord_array(LF_CODCORR, "NRIGA");
|
_linee_rec_cod= new TRecord_array(LF_CODCORR, "NRIGA");
|
||||||
|
|
||||||
_msk= new TMask_anamag(_rel,has_module(MGAUT));
|
_msk= new TMask_anamag(_rel,has_module(MGAUT),FALSE);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -687,7 +623,7 @@ int TAnagrafica_magazzino::read(TMask& m)
|
|||||||
TSheet_field &fld_stomag= (TSheet_field &)m.field(F_SHEETSTOMAG); // prende il sheet delle unità di misura
|
TSheet_field &fld_stomag= (TSheet_field &)m.field(F_SHEETSTOMAG); // prende il sheet delle unità di misura
|
||||||
fld_stomag.sheet_mask().field(F_STOCODART).set(m.field(F_CODART).get());
|
fld_stomag.sheet_mask().field(F_STOCODART).set(m.field(F_CODART).get());
|
||||||
|
|
||||||
int i;
|
//int i;
|
||||||
// *****************************
|
// *****************************
|
||||||
// LETTURA SHEET UNITA' DI MISURA
|
// LETTURA SHEET UNITA' DI MISURA
|
||||||
|
|
||||||
@ -770,7 +706,7 @@ int TAnagrafica_magazzino::read(TMask& m)
|
|||||||
*/
|
*/
|
||||||
// *****************************
|
// *****************************
|
||||||
// LETTURA SHEET GIACENZE
|
// LETTURA SHEET GIACENZE
|
||||||
((TMask_anamag &)m).sheetgiac_read();
|
//((TMask_anamag &)m).sheetgiac_read();
|
||||||
|
|
||||||
} // no errors in TRelation_application::read(m);
|
} // no errors in TRelation_application::read(m);
|
||||||
return err;
|
return err;
|
||||||
@ -782,7 +718,7 @@ bool TAnagrafica_magazzino::remove()
|
|||||||
return //_linee_rec_um->remove() == NOERR &&
|
return //_linee_rec_um->remove() == NOERR &&
|
||||||
// _linee_rec_deslin->remove() == NOERR &&
|
// _linee_rec_deslin->remove() == NOERR &&
|
||||||
// _linee_rec_cod->remove() == NOERR &&
|
// _linee_rec_cod->remove() == NOERR &&
|
||||||
_msk->sheetgiac_remove() == NOERR &&
|
// _msk->sheetgiac_remove() == NOERR &&
|
||||||
TRelation_application::remove();
|
TRelation_application::remove();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -790,9 +726,9 @@ int TAnagrafica_magazzino::write(const TMask& m)
|
|||||||
{
|
{
|
||||||
int err= TRelation_application::write(m);
|
int err= TRelation_application::write(m);
|
||||||
|
|
||||||
if (err != NOERR)
|
//if (err != NOERR)
|
||||||
return err;
|
// return err;
|
||||||
int i;
|
//int i;
|
||||||
// ***********************
|
// ***********************
|
||||||
// write dello sheet unita' di misura
|
// write dello sheet unita' di misura
|
||||||
/*
|
/*
|
||||||
@ -877,14 +813,14 @@ int TAnagrafica_magazzino::write(const TMask& m)
|
|||||||
// ***********************
|
// ***********************
|
||||||
// write dello sheet giacenze
|
// write dello sheet giacenze
|
||||||
|
|
||||||
err = ((TMask_anamag &)m).sheetgiac_write(FALSE);
|
//err = ((TMask_anamag &)m).sheetgiac_write(FALSE);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int TAnagrafica_magazzino::rewrite(const TMask& m)
|
int TAnagrafica_magazzino::rewrite(const TMask& m)
|
||||||
{
|
{
|
||||||
int i,err;
|
int err;
|
||||||
// rewrite dello sheet Unita' di misura
|
// rewrite dello sheet Unita' di misura
|
||||||
/*
|
/*
|
||||||
TSheet_field &fld_um= (TSheet_field &)m.field(F_SHEETUM);
|
TSheet_field &fld_um= (TSheet_field &)m.field(F_SHEETUM);
|
||||||
@ -966,9 +902,9 @@ int TAnagrafica_magazzino::rewrite(const TMask& m)
|
|||||||
*/
|
*/
|
||||||
// rewrite dello sheet giacenze
|
// rewrite dello sheet giacenze
|
||||||
//
|
//
|
||||||
err = ((TMask_anamag &)m).sheetgiac_write(TRUE);
|
//err = ((TMask_anamag &)m).sheetgiac_write(TRUE);
|
||||||
|
|
||||||
if (err == NOERR)
|
//if (err == NOERR)
|
||||||
err= TRelation_application::rewrite(m);
|
err= TRelation_application::rewrite(m);
|
||||||
|
|
||||||
return err;
|
return err;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user