#include #include #include #include #include #include #include "bainstlib.h" #include "bainst.h" #include "bainst00.h" class TInstall_BA : public TInstallmodule_app { private: protected: virtual int module_number() const { return 0; } virtual bool install_com(); virtual bool post_installer(); virtual bool something_to_load() const; bool comuni_to_load() const; public: virtual ~TInstall_BA () {} }; HIDDEN int search_edit(TConfig& cfg, void*) { const TString16 module = cfg.get_paragraph().left(2); TAssoc_array& var = cfg.list_variables(); bool dirty = FALSE; FOR_EACH_ASSOC_STRING (var, obj, key, str) { const TFixed_string confr (key); if (confr.compare("Edit_", 5, TRUE) == 0) { if (module.compare(str, 2, TRUE) != 0) { cfg.remove(key); dirty = TRUE; } } } if (dirty) { cfg.set_paragraph(""); } return FALSE; } bool TInstall_BA::post_installer() { // configurazione provvisoria dei programmi gestori di tabelle if (!test_database()) { TConfig studio(CONFIG_STUDIO); const char *confapp="EdApp"; const char *tabapp="TabPrg"; // magazzino studio.set_paragraph("mg"); studio.set(tabapp,"mg0 -0"); studio.set(confapp,"mg0 -2 -1"); // distinta base studio.set_paragraph("db"); studio.set(tabapp,"db0 -0"); studio.set(confapp,""); // statistiche studio.set_paragraph("sv"); studio.set(tabapp,"sv0 -0"); studio.set(confapp,"sv0 -3"); // provvigioni studio.set_paragraph("pr"); studio.set(tabapp,"pr0 -4"); // MRP studio.set_paragraph("mr"); studio.set(tabapp,"mr0 -0"); } TConfig install ("install.ini"); install.for_each_paragraph(search_edit, NULL); return true; } bool TInstall_BA::comuni_to_load() const { //controlla se il file con i comuni è da aggiornare //guarda se esiste il codice M314 che è l'ultimo creato al 28/04/2011... TLocalisamfile comuni(LF_COMUNI); comuni.put(COM_COM, "M314"); //se il comune M314 non c'è -> il file dei comuni è da aggiornare const int err = comuni.read(); return err != NOERR; } bool TInstall_BA::something_to_load() const { if (test_database()) { if (comuni_to_load()) return true; } return TInstallmodule_app::something_to_load(); } bool TInstall_BA::install_com() { //questo serve per caricare i files (e non le tabelle) TStd_filename txtfile; if (txtfile.check(true, "bacomuni.txt") && comuni_to_load()) { TSystemisamfile comuni(LF_COMUNI); comuni.load(txtfile); } return TInstallmodule_app::install_com(); } int bainst00(int argc, char** argv) { TInstall_BA app; app.run(argc, argv); return 0; }