Patch level : 12.0 no-patch
Files correlati : ps Commento : Modifiche Diana 2000: - Aggiunta modalità auto senza finestra - Aggiunto lancio eseguibile post-esportazione - Aggiunto prefisso tabelle
This commit is contained in:
parent
a150b1039c
commit
3e6707c33e
@ -125,6 +125,7 @@ void TDianaExport_mask::save_all() const
|
|||||||
ini_set_string(CONFIG_DITTA, "ps1004", "db", get(F_DATABASE));
|
ini_set_string(CONFIG_DITTA, "ps1004", "db", get(F_DATABASE));
|
||||||
ini_set_string(CONFIG_DITTA, "ps1004", "usr", get(F_USER));
|
ini_set_string(CONFIG_DITTA, "ps1004", "usr", get(F_USER));
|
||||||
ini_set_string(CONFIG_DITTA, "ps1004", "psw", encode(get(F_PASSWORD)));
|
ini_set_string(CONFIG_DITTA, "ps1004", "psw", encode(get(F_PASSWORD)));
|
||||||
|
ini_set_string(CONFIG_DITTA, "ps1004", "ext", get(F_EXTERNAL));
|
||||||
}
|
}
|
||||||
|
|
||||||
void TDianaExport_mask::load_all()
|
void TDianaExport_mask::load_all()
|
||||||
@ -133,6 +134,7 @@ void TDianaExport_mask::load_all()
|
|||||||
set(F_DATABASE, ini_get_string(CONFIG_DITTA, "ps1004", "db"));
|
set(F_DATABASE, ini_get_string(CONFIG_DITTA, "ps1004", "db"));
|
||||||
set(F_USER, ini_get_string(CONFIG_DITTA, "ps1004", "usr"));
|
set(F_USER, ini_get_string(CONFIG_DITTA, "ps1004", "usr"));
|
||||||
set(F_PASSWORD, decode(ini_get_string(CONFIG_DITTA, "ps1004", "psw")));
|
set(F_PASSWORD, decode(ini_get_string(CONFIG_DITTA, "ps1004", "psw")));
|
||||||
|
set(F_EXTERNAL, ini_get_string(CONFIG_DITTA, "ps1004", "ext"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -148,8 +150,10 @@ class TDianaExport_app : public TSkeleton_application
|
|||||||
bool create_table(const int logicnum);
|
bool create_table(const int logicnum);
|
||||||
bool deploy_data(const int logicnum);
|
bool deploy_data(const int logicnum);
|
||||||
inline bool rko_outta_nowhere(const int logicnum);
|
inline bool rko_outta_nowhere(const int logicnum);
|
||||||
|
bool launch_ext();
|
||||||
public:
|
public:
|
||||||
virtual bool create();
|
virtual bool create();
|
||||||
|
|
||||||
virtual void main_loop();
|
virtual void main_loop();
|
||||||
TDianaExport_app() : _visual(false) {}
|
TDianaExport_app() : _visual(false) {}
|
||||||
};
|
};
|
||||||
@ -176,7 +180,7 @@ bool TDianaExport_app::create_table(const int logicnum)
|
|||||||
const RecDes& rd = prefix().get_recdes(logicnum);
|
const RecDes& rd = prefix().get_recdes(logicnum);
|
||||||
|
|
||||||
// Create new table
|
// Create new table
|
||||||
TString sql; sql.cut(0) << "CREATE TABLE " << table << "\n(";
|
TString sql; sql.cut(0) << "CREATE TABLE CAMPO_" << table << "\n(";
|
||||||
for (int i = 0; i < rd.NFields; i++)
|
for (int i = 0; i < rd.NFields; i++)
|
||||||
{
|
{
|
||||||
if (i > 0) sql << ',';
|
if (i > 0) sql << ',';
|
||||||
@ -218,7 +222,7 @@ bool TDianaExport_app::deploy_data(const int logicnum)
|
|||||||
{
|
{
|
||||||
if (_visual && !p.add_status())
|
if (_visual && !p.add_status())
|
||||||
return false;
|
return false;
|
||||||
queryF.cut(0) << "INSERT INTO [" << logic2table(logicnum) << "] ("; // Tolgo il simbolo iniziale
|
queryF.cut(0) << "INSERT INTO [CAMPO_" << logic2table(logicnum) << "] ("; // Tolgo il simbolo iniziale
|
||||||
queryV.cut(0) << "(";
|
queryV.cut(0) << "(";
|
||||||
for (int k = 0; k < rd.NFields; k++)
|
for (int k = 0; k < rd.NFields; k++)
|
||||||
{
|
{
|
||||||
@ -279,7 +283,18 @@ bool TDianaExport_app::deploy_data(const int logicnum)
|
|||||||
|
|
||||||
bool TDianaExport_app::rko_outta_nowhere(const int logicnum)
|
bool TDianaExport_app::rko_outta_nowhere(const int logicnum)
|
||||||
{
|
{
|
||||||
diana_db().sq_set_exec(TString().cut(0) << "DROP TABLE " << logic2table(logicnum) << ';') && diana_db().sq_commit();
|
diana_db().sq_set_exec(TString().cut(0) << "DROP TABLE CAMPO_" << logic2table(logicnum) << ';') && diana_db().sq_commit();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TDianaExport_app::launch_ext()
|
||||||
|
{
|
||||||
|
TString ext = ini_get_string(CONFIG_DITTA, "ps1004", "ext");
|
||||||
|
if(ext.full())
|
||||||
|
{
|
||||||
|
TExternal_app e(ext);
|
||||||
|
e.run(true);
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -292,6 +307,15 @@ bool TDianaExport_app::create()
|
|||||||
|
|
||||||
void TDianaExport_app::main_loop()
|
void TDianaExport_app::main_loop()
|
||||||
{
|
{
|
||||||
|
const TFixed_string arg = argv(2);
|
||||||
|
if(arg.starts_with("-a") || arg.starts_with("-A"))
|
||||||
|
{
|
||||||
|
const WINDOW task = TASK_WIN;
|
||||||
|
xvt_vobj_set_visible(task, FALSE);
|
||||||
|
export_all() && launch_ext();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
TDianaExport_mask msk;
|
TDianaExport_mask msk;
|
||||||
while (msk.run() == K_ENTER)
|
while (msk.run() == K_ENTER)
|
||||||
{
|
{
|
||||||
@ -312,7 +336,8 @@ void TDianaExport_app::main_loop()
|
|||||||
error_box("Impossibile stabilire una connessione al database");
|
error_box("Impossibile stabilire una connessione al database");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
connected && yesno_box("Vuoi eseguire l'esportazione dei dati?") && export_all();
|
connected && yesno_box("Vuoi eseguire l'esportazione dei dati?") && export_all() && launch_ext();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2,3 +2,4 @@
|
|||||||
#define F_DATABASE 102
|
#define F_DATABASE 102
|
||||||
#define F_USER 103
|
#define F_USER 103
|
||||||
#define F_PASSWORD 104
|
#define F_PASSWORD 104
|
||||||
|
#define F_EXTERNAL 105
|
@ -40,4 +40,9 @@ BEGIN
|
|||||||
CHECKTYPE REQUIRED
|
CHECKTYPE REQUIRED
|
||||||
END
|
END
|
||||||
|
|
||||||
|
|
||||||
|
STRING F_EXTERNAL 255 50
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 7 "Programma esterno"
|
||||||
|
END
|
||||||
ENDPAGE
|
ENDPAGE
|
Loading…
x
Reference in New Issue
Block a user