Patch level :

Files correlati     :
Ricompilazione Demo : [ ]
Commento            :


git-svn-id: svn://10.65.10.50/branches/R_10_00@21946 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
luca 2011-04-13 14:47:23 +00:00
parent 57acddff0a
commit 037c8daa3a

@ -179,6 +179,7 @@ bool TCoffee_tree::select_attr(const TString& codart, const TString& matricola)
return found;
}
//////////////////////////////////////////////
// Metodi static di ordinamento dello sheet
//////////////////////////////////////////////
@ -421,8 +422,8 @@ bool TGestione_attrezzature_mask::on_field_event(TOperable_field& o, TField_even
case DLG_ADD_NEW:
if (e == fe_button)
{
//per prima cosa deve controllare che siano pieni i campi chiave della tabella ttrezzature, senno' non puo'..
//..aggiungere una cippa
//1) per prima cosa deve controllare che siano pieni i campi chiave della tabella ttrezzature, senno' non puo'..
//...aggiungere una cippa
if (get(F_COD_ART).empty() || get(F_COD_MATR).empty())
return warning_box(TR("E' necessario compilare articolo e matricola per aggiungere una nuova attrezzatura!"));
@ -430,18 +431,20 @@ bool TGestione_attrezzature_mask::on_field_event(TOperable_field& o, TField_even
const TString& codart = get(F_COD_ART);
const TString& matricola = get(F_COD_MATR);
codtab.format("%-15s%-15s", (const char*)codart, (const char*)matricola);
//se l'utonto tentasse di inserire come nuova un'attrezzatura già esistente va cazziato!
//2) controllo effettiva "nuovezza" dell'attrezzatura..
//...se l'utonto tentasse di inserire come nuova un'attrezzatura già esistente va cazziato!
TModule_table tab_att("&ATT");
tab_att.put("CODTAB", codtab);
const int err = tab_att.read();
if (err == NOERR)
return warning_box(TR("L'attrezzatura con questa matricola esiste gia'!"));
//3) invio dati al gestore della tabella &ATT delle attrezzature tramite .ini
TFilename trans_ini;
trans_ini.temp(NULL, "ini");
TString4 filenumber;
filenumber << LF_TABMOD;
//i config vanno chiusi senno' non si riescono ad usare
//i config vanno chiusi tra {} senno' non si riescono ad usare
{
TConfig ini(trans_ini, "Transaction");
ini.set("Action", "INSERT");
@ -456,29 +459,35 @@ bool TGestione_attrezzature_mask::on_field_event(TOperable_field& o, TField_even
cmd << "ha0 -0 &ATT /i" << trans_ini;
TExternal_app app(cmd);
//lettura dell'ini di ritorno compilato
//4) lettura dell'ini di ritorno compilato ed aggiornamento conseguente di tabella e maschera
if (app.run() == NOERR)
{
//setta sulla maschera i valori di ritorno del .ini (riempiti dal gestore di &ATT)
//4a) setta sulla maschera i valori di ritorno del .ini (riempiti dal gestore di &ATT)
TConfig ini(trans_ini, "Transaction");
if (ini.get("Result") == "OK")
{
ini.set_paragraph(filenumber);
TString80 codtab = ini.get("CODTAB");
codtab.strip("\""); //elimina eventuali " che vengono dall'ini
set(F_COD_ART, codtab.left(5));
set(F_COD_MATR, codtab.mid(15,15));
const long codcf = ini.get_long("I0");
set(F_CODCF, codcf);
const TDate data_storico = ini.get("D0");
TSheet_field& sf = sfield(F_STORICO);
TToken_string& row = sf.row(-1);
row.add("C", sf.cid2index(S_TIPO));
row.add(data_storico, sf.cid2index(S_DATA));
row.add(codcf, sf.cid2index(S_CODCF));
sf.force_update();
//4b) da file ini crea un record nuovo sulla tabella &HIS; se non lo facesse l'albero con le attrezzature non..
//....potrebbe mai vedere la nuova attrezzatura aggiunta; sara' poi l'albero stesso ad occuparsi dello sheet
TModule_table tab_his("&HIS");
TString80 his_codtab = codtab;
his_codtab << "00001"; //l'attrezzatura è nuova! deve essere il primo record
tab_his.put("CODTAB", his_codtab);
tab_his.put("I0", codcf);
tab_his.put("D0", data_storico);
int can_write = tab_his.write();
if (can_write != NOERR)
return warning_box(TR("Impossibile aggiungere l'attrezzatura! Risulta gia' presente."));
set(F_CODCF, codcf, true);
set(F_COD_ART, codtab.left(5));
set(F_COD_MATR, codtab.mid(15,15), true);
}
}
}