111 lines
2.6 KiB
C++
111 lines
2.6 KiB
C++
#include "f90.h"
|
|
#include "applicat.h"
|
|
#include "automask.h"
|
|
#include "f90200a.h"
|
|
#include "tsdb.h"
|
|
#include "../fp/fplib.h"
|
|
#include "f901tab.h"
|
|
#include "f9lib.h"
|
|
|
|
///////////////////////////////////////////////////////////////
|
|
// TConfigurazione_sostitutiva_msk
|
|
///////////////////////////////////////////////////////////////
|
|
|
|
class TConfigurazione_sostitutiva_msk : public TAutomask
|
|
{
|
|
|
|
bool on_field_event(TOperable_field& o, TField_event e, long jolly) override;
|
|
bool on_key(KEY key) override;
|
|
|
|
public:
|
|
|
|
TConfigurazione_sostitutiva_msk() : TAutomask("f90200a") { }
|
|
};
|
|
|
|
bool TConfigurazione_sostitutiva_msk::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
|
{
|
|
switch(o.dlg())
|
|
{
|
|
case DLG_OK:
|
|
if (e == fe_button)
|
|
bool simo = true;
|
|
break;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
bool TConfigurazione_sostitutiva_msk::on_key(KEY key)
|
|
{
|
|
if (key == K_DEL)
|
|
{
|
|
TSheet_field& sf = sfield(S_CLASSDOC);
|
|
sf.hide();
|
|
int row = sf.selected();
|
|
TString_array& arr = sf.rows_array();
|
|
arr.destroy(row, true);
|
|
sf.force_update();
|
|
sf.show();
|
|
}
|
|
return TAutomask::on_key(key);
|
|
}
|
|
|
|
|
|
///////////////////////////////////////////////////////////////
|
|
// TConfigurazione_sostitutiva_app
|
|
///////////////////////////////////////////////////////////////
|
|
|
|
class TConfigurazione_sostitutiva_app : public TSkeleton_application
|
|
{
|
|
TString _log;
|
|
void add_error_log(TString& query);
|
|
void main_loop() override;
|
|
|
|
public:
|
|
|
|
TConfigurazione_sostitutiva_app() { }
|
|
};
|
|
|
|
|
|
void TConfigurazione_sostitutiva_app::add_error_log(TString& query)
|
|
{
|
|
_log << "\n" << query << "\n" << db().sq_get_text_error() << "\n" << db().sq_get_string_error();
|
|
}
|
|
|
|
void TConfigurazione_sostitutiva_app::main_loop()
|
|
{
|
|
TConfigurazione_sostitutiva_msk msk;
|
|
while(msk.run() == K_ENTER)
|
|
{
|
|
TSheet_field& sf = msk.sfield(S_CLASSDOC);
|
|
TString query;
|
|
FOR_EACH_SHEET_ROW(sf, nr, row)
|
|
{
|
|
TString where_s;
|
|
where_s << "";
|
|
query << "IF EXIST (SELECT * FROM " F9_DRT " WHERE " << where_s << ")\n"
|
|
" UPDATE " F9_DRT " SET \n"
|
|
" WHERE " << where_s << ";\n"
|
|
"ELSE"
|
|
" INSERT INTO " F9_DRT " ( ) \n"
|
|
" VALUES ();\n";
|
|
}
|
|
bool ok = db().sq_set_exec(query, false);
|
|
ok &= db().sq_commit();
|
|
if (false)
|
|
{
|
|
add_error_log(query);
|
|
ofstream fout;
|
|
fout.open("f9.config.error.txt");
|
|
fout << _log << "\n";
|
|
error_box("Errore nel salvataggio dei dati. Controllare file di errore f9.config.error.txt");
|
|
}
|
|
}
|
|
}
|
|
|
|
int f90200(int argc, char* argv[])
|
|
{
|
|
TConfigurazione_sostitutiva_app app;
|
|
app.run(argc, argv, TR("Configurazione Archiviazione Sostitutiva"));
|
|
return 0;
|
|
}
|