2005-05-05 15:17:38 +00:00
|
|
|
|
#include <applicat.h>
|
|
|
|
|
#include <automask.h>
|
2013-07-26 15:43:33 +00:00
|
|
|
|
#include "../ve/velib.h"
|
2005-05-05 15:17:38 +00:00
|
|
|
|
|
|
|
|
|
#include "ci0.h"
|
|
|
|
|
#include "ci0300.h"
|
|
|
|
|
|
|
|
|
|
///////////////////////////////////////////////////////////
|
|
|
|
|
// TConfigurazioneIndustriale_mask
|
|
|
|
|
///////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
|
|
void TConfigurazioneIndustriale_mask::moveup_element(long selrow)
|
|
|
|
|
{
|
|
|
|
|
if (items()<=1)
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
if (selrow<=0)
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
if (selrow>items()-1)
|
|
|
|
|
return;
|
|
|
|
|
|
2005-06-05 14:13:14 +00:00
|
|
|
|
rows_array().swap(selrow,selrow - 1);
|
2013-07-26 15:43:33 +00:00
|
|
|
|
TSheet_field& s = sheet();
|
|
|
|
|
s.check_row(selrow - 1);
|
|
|
|
|
s.check_row(selrow);
|
|
|
|
|
s.force_update();
|
|
|
|
|
s.select(selrow-1);
|
2005-05-05 15:17:38 +00:00
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void TConfigurazioneIndustriale_mask::movedown_element(long selrow)
|
|
|
|
|
{
|
|
|
|
|
if (items()<=1)
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
if (selrow<0)
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
if (selrow>=items()-1)
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
rows_array().swap(selrow,selrow+1);
|
2013-07-26 15:43:33 +00:00
|
|
|
|
TSheet_field& s = sheet();
|
|
|
|
|
s.check_row(selrow);
|
|
|
|
|
s.check_row(selrow + 1);
|
|
|
|
|
s.force_update();
|
|
|
|
|
s.select(selrow+1);
|
2005-05-05 15:17:38 +00:00
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
bool TConfigurazioneIndustriale_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
|
|
|
|
{
|
|
|
|
|
switch (o.dlg())
|
|
|
|
|
{
|
|
|
|
|
case F_MOVEUP:
|
|
|
|
|
moveup_element(sheet().selected());
|
|
|
|
|
break;
|
|
|
|
|
case F_MOVEDN:
|
|
|
|
|
movedown_element(sheet().selected());
|
|
|
|
|
break;
|
2005-06-05 14:13:14 +00:00
|
|
|
|
case FR_TIPODOC:
|
|
|
|
|
if (e == fe_modify)
|
|
|
|
|
{
|
2013-07-26 15:43:33 +00:00
|
|
|
|
const TCodice_numerazione cod_num(o.mask().get(FR_NUM));
|
2005-06-05 14:13:14 +00:00
|
|
|
|
const TString& tipo = o.get();
|
2013-07-26 15:43:33 +00:00
|
|
|
|
const int last = cod_num.ntipi_doc();
|
2005-06-05 14:13:14 +00:00
|
|
|
|
for (int i = 0; i < last; i++ )
|
|
|
|
|
{
|
2013-07-26 15:43:33 +00:00
|
|
|
|
const TString& curtipo = cod_num.tipo_doc(i);
|
2005-06-05 14:13:14 +00:00
|
|
|
|
if (curtipo == tipo)
|
|
|
|
|
return true;
|
|
|
|
|
}
|
2013-07-26 15:43:33 +00:00
|
|
|
|
return o.error_box(TR("Tipo non valido per la numerazione selezionata!"));
|
2005-06-05 14:13:14 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
case FR_COLL:
|
|
|
|
|
if (e == fe_modify && !o.mask().is_running())
|
|
|
|
|
{
|
|
|
|
|
TMask & row_mask = o.mask();
|
|
|
|
|
|
|
|
|
|
row_mask.set(FR_NUM, "");
|
|
|
|
|
row_mask.set(FR_TIPODOC, "");
|
|
|
|
|
row_mask.set(FR_STATO, "");
|
|
|
|
|
row_mask.set(FR_VAR, "");
|
|
|
|
|
row_mask.set(FR_MODCOLL, "");
|
|
|
|
|
const int row = sheet().selected();
|
2013-07-26 15:43:33 +00:00
|
|
|
|
TSheet_field& s = sheet();
|
|
|
|
|
s.update_row(row);
|
|
|
|
|
s.check_row(row);
|
|
|
|
|
s.force_update(row);
|
2005-06-05 14:13:14 +00:00
|
|
|
|
}
|
2005-05-05 15:17:38 +00:00
|
|
|
|
default:
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
///////////////////////////////////////////////////////////
|
|
|
|
|
// TConfigurazioneIndustriale_app
|
|
|
|
|
///////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
|
|
// Overrides
|
|
|
|
|
|
|
|
|
|
bool TConfigurazioneIndustriale_app::create()
|
|
|
|
|
{
|
|
|
|
|
_mask = new TConfigurazioneIndustriale_mask();
|
|
|
|
|
|
|
|
|
|
file_to_sheet();
|
|
|
|
|
|
|
|
|
|
return TSkeleton_application::create();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
bool TConfigurazioneIndustriale_app::destroy()
|
|
|
|
|
{
|
|
|
|
|
delete _mask;
|
|
|
|
|
return TSkeleton_application::destroy();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void TConfigurazioneIndustriale_app::main_loop()
|
|
|
|
|
{
|
|
|
|
|
KEY exitval;
|
|
|
|
|
|
|
|
|
|
while ((exitval=_mask->run()) != K_QUIT)
|
|
|
|
|
{
|
|
|
|
|
switch(exitval)
|
|
|
|
|
{
|
|
|
|
|
case K_ESC:
|
|
|
|
|
return;
|
|
|
|
|
default:
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
sheet_to_file();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Conversione Array <-> File
|
|
|
|
|
|
|
|
|
|
void TConfigurazioneIndustriale_app::file_to_sheet()
|
|
|
|
|
{
|
|
|
|
|
TConfig configfile(CONFIG_DITTA, "ci");
|
|
|
|
|
|
2013-07-26 15:43:33 +00:00
|
|
|
|
TConfigurazioneIndustriale_mask& m = mask();
|
|
|
|
|
TSheet_field& s = m.sheet();
|
|
|
|
|
|
|
|
|
|
for (int item = 0; configfile.exist("Descr", item); item++)
|
2005-05-05 15:17:38 +00:00
|
|
|
|
{
|
2013-07-26 15:43:33 +00:00
|
|
|
|
TToken_string & t = s.row(item);
|
2005-05-05 15:17:38 +00:00
|
|
|
|
t.add(configfile.get("Filter", NULL,item, "F01"));
|
|
|
|
|
t.add(configfile.get("Descr", NULL,item, "Fatture"));
|
2005-05-08 11:47:35 +00:00
|
|
|
|
t.add(configfile.get("InsertRemain", NULL,item, ""));
|
|
|
|
|
t.add(configfile.get("ModifyRemain", NULL,item, ""));
|
2005-06-05 14:13:14 +00:00
|
|
|
|
t.add(configfile.get("DocColl", NULL, item, ""));
|
|
|
|
|
t.add(configfile.get("NumColl", NULL, item, ""));
|
|
|
|
|
t.add(configfile.get("TipoColl", NULL, item, ""));
|
|
|
|
|
t.add(configfile.get("StatoColl", NULL, item, ""));
|
|
|
|
|
t.add(configfile.get("ModColl", NULL, item, ""));
|
|
|
|
|
t.add(configfile.get("Var", NULL, item, ""));
|
2005-10-07 13:41:20 +00:00
|
|
|
|
t.add(configfile.get("DeleteClosed", NULL, item, ""));
|
2013-07-26 15:43:33 +00:00
|
|
|
|
s.check_row(item);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
FOR_EACH_MASK_FIELD(m, i, f)
|
|
|
|
|
{
|
|
|
|
|
const TFieldref* fr = f->field();
|
|
|
|
|
if (fr != NULL)
|
|
|
|
|
{
|
|
|
|
|
const TString& v = configfile.get(fr->name());
|
|
|
|
|
f->set(v);
|
|
|
|
|
}
|
2005-05-05 15:17:38 +00:00
|
|
|
|
}
|
2013-07-26 15:43:33 +00:00
|
|
|
|
|
|
|
|
|
s.force_update();
|
2005-05-05 15:17:38 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void TConfigurazioneIndustriale_app::sheet_to_file()
|
|
|
|
|
{
|
2013-07-26 15:43:33 +00:00
|
|
|
|
TConfigurazioneIndustriale_mask& m = mask();
|
2005-05-05 15:17:38 +00:00
|
|
|
|
TConfig configfile(CONFIG_DITTA, "ci");
|
2005-05-05 16:39:19 +00:00
|
|
|
|
int totlen = 0;
|
2013-07-26 15:43:33 +00:00
|
|
|
|
int items = m.items();
|
2005-05-05 15:17:38 +00:00
|
|
|
|
configfile.remove_all();
|
|
|
|
|
|
2005-05-05 16:39:19 +00:00
|
|
|
|
if (items>_maxelem)
|
|
|
|
|
{
|
|
|
|
|
message_box("Il massimo numero di filtri gestibili <20> pari a %d, pertanto verranno considerate solamente le prime %d righe", _maxelem, _maxelem);
|
|
|
|
|
items=16;
|
|
|
|
|
}
|
|
|
|
|
|
2013-07-26 15:43:33 +00:00
|
|
|
|
TString currdesc;
|
2005-05-05 15:17:38 +00:00
|
|
|
|
for (int i=0;i<items;i++)
|
|
|
|
|
{
|
2013-07-26 15:43:33 +00:00
|
|
|
|
TToken_string& ri = m.row(i);
|
|
|
|
|
currdesc = ri.get(1);
|
|
|
|
|
configfile.set("Filter", ri.get(0), NULL, true, i);
|
|
|
|
|
configfile.set("Descr", currdesc, NULL, true, i);
|
|
|
|
|
configfile.set("InsertRemain", ri.get(2), NULL, true, i);
|
|
|
|
|
configfile.set("ModifyRemain", ri.get(3), NULL, true, i);
|
|
|
|
|
configfile.set("DocColl", ri.get(4), NULL, true, i);
|
|
|
|
|
configfile.set("NumColl", ri.get(5), NULL, true, i);
|
|
|
|
|
configfile.set("TipoColl", ri.get(6), NULL, true, i);
|
|
|
|
|
configfile.set("StatoColl", ri.get(7), NULL, true, i);
|
|
|
|
|
configfile.set("ModColl", ri.get(8), NULL, true, i);
|
|
|
|
|
configfile.set("Var", ri.get(9), NULL, true, i);
|
|
|
|
|
configfile.set("DeleteClosed", ri.get(10), NULL, true, i);
|
|
|
|
|
totlen += currdesc.len();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
FOR_EACH_MASK_FIELD(m, i, f)
|
|
|
|
|
{
|
|
|
|
|
const TFieldref* fr = f->field();
|
|
|
|
|
if (fr != NULL)
|
|
|
|
|
{
|
|
|
|
|
const TString& v = f->get();
|
|
|
|
|
configfile.set(fr->name(), v);
|
|
|
|
|
}
|
2005-05-05 15:17:38 +00:00
|
|
|
|
}
|
2005-05-05 16:39:19 +00:00
|
|
|
|
|
|
|
|
|
if (totlen>_maxlen)
|
2013-07-26 15:43:33 +00:00
|
|
|
|
warning_box(TR("E' probabile che la lunghezza delle descrizioni inserite ne impedisca la totale visualizzazione sullo schermo"));
|
2005-05-05 15:17:38 +00:00
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
///////////////////////////////////////////////////////////
|
|
|
|
|
// Main
|
|
|
|
|
///////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
|
|
int ci0300(int argc, char* argv[])
|
|
|
|
|
{
|
|
|
|
|
TConfigurazioneIndustriale_app a ;
|
|
|
|
|
a.run(argc, argv, TR("Contabilit<EFBFBD> Industriale"));
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
|