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

View File

@ -179,6 +179,7 @@ bool TCoffee_tree::select_attr(const TString& codart, const TString& matricola)
return found; return found;
} }
////////////////////////////////////////////// //////////////////////////////////////////////
// Metodi static di ordinamento dello sheet // 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: case DLG_ADD_NEW:
if (e == fe_button) if (e == fe_button)
{ {
//per prima cosa deve controllare che siano pieni i campi chiave della tabella ttrezzature, senno' non puo'.. //1) per prima cosa deve controllare che siano pieni i campi chiave della tabella ttrezzature, senno' non puo'..
//..aggiungere una cippa //...aggiungere una cippa
if (get(F_COD_ART).empty() || get(F_COD_MATR).empty()) 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!")); 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& codart = get(F_COD_ART);
const TString& matricola = get(F_COD_MATR); const TString& matricola = get(F_COD_MATR);
codtab.format("%-15s%-15s", (const char*)codart, (const char*)matricola); 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"); TModule_table tab_att("&ATT");
tab_att.put("CODTAB", codtab); tab_att.put("CODTAB", codtab);
const int err = tab_att.read(); const int err = tab_att.read();
if (err == NOERR) if (err == NOERR)
return warning_box(TR("L'attrezzatura con questa matricola esiste gia'!")); 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; TFilename trans_ini;
trans_ini.temp(NULL, "ini"); trans_ini.temp(NULL, "ini");
TString4 filenumber; TString4 filenumber;
filenumber << LF_TABMOD; 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"); TConfig ini(trans_ini, "Transaction");
ini.set("Action", "INSERT"); 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; cmd << "ha0 -0 &ATT /i" << trans_ini;
TExternal_app app(cmd); 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) 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"); TConfig ini(trans_ini, "Transaction");
if (ini.get("Result") == "OK") if (ini.get("Result") == "OK")
{ {
ini.set_paragraph(filenumber); ini.set_paragraph(filenumber);
TString80 codtab = ini.get("CODTAB"); TString80 codtab = ini.get("CODTAB");
codtab.strip("\""); //elimina eventuali " che vengono dall'ini 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"); const long codcf = ini.get_long("I0");
set(F_CODCF, codcf);
const TDate data_storico = ini.get("D0"); 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);
} }
} }
} }