Patch level : 12.0 1232
Files correlati : ba8.exe Commento : Programma per l'esecuzione di query in interattivo o batch. Si chiama in questo modo ba8 -7 <query> <outputfile> <formato> <variabili> -uADMIN formato=html|txt|excel(csv)|campo|dbf variabili nel formato VARIABILE=valore,VARIABILE=valore,.....
This commit is contained in:
parent
bf77228756
commit
9a38e20534
@ -1413,6 +1413,13 @@ void TButton_field::create(WINDOW parent)
|
|||||||
if (_ctl_data._bmp_up <= 0 && _ctl_data._prompt == BR("~Stampa", _ctl_data._width))
|
if (_ctl_data._bmp_up <= 0 && _ctl_data._prompt == BR("~Stampa", _ctl_data._width))
|
||||||
_ctl_data._bmp_up = BMP_PRINT;
|
_ctl_data._bmp_up = BMP_PRINT;
|
||||||
break;
|
break;
|
||||||
|
case DLG_PREVIEW:
|
||||||
|
if (_ctl_data._prompt.empty() || _ctl_data._prompt == "Anteprima")
|
||||||
|
_ctl_data._prompt = BR("~Anteprima", _ctl_data._width);
|
||||||
|
_exit_key = K_ENTER;
|
||||||
|
if (_ctl_data._bmp_up <= 0 && _ctl_data._prompt == BR("~Anteprima", _ctl_data._width))
|
||||||
|
_ctl_data._bmp_up = BMP_PREVIEW;
|
||||||
|
break;
|
||||||
case DLG_QUIT:
|
case DLG_QUIT:
|
||||||
if (_ctl_data._prompt.empty())
|
if (_ctl_data._prompt.empty())
|
||||||
_ctl_data._prompt = BR("Fine", _ctl_data._width);
|
_ctl_data._prompt = BR("Fine", _ctl_data._width);
|
||||||
@ -1445,6 +1452,7 @@ void TButton_field::create(WINDOW parent)
|
|||||||
_ctl_data._bmp_up, _ctl_data._bmp_dn);
|
_ctl_data._bmp_up, _ctl_data._bmp_dn);
|
||||||
|
|
||||||
TToken_string* mess = message(0);
|
TToken_string* mess = message(0);
|
||||||
|
|
||||||
if (mess)
|
if (mess)
|
||||||
{
|
{
|
||||||
TToken_string msg(mess->get(0), ',');
|
TToken_string msg(mess->get(0), ',');
|
||||||
@ -1465,6 +1473,7 @@ void TButton_field::create(WINDOW parent)
|
|||||||
if (_virtual_key == 0)
|
if (_virtual_key == 0)
|
||||||
{
|
{
|
||||||
const char acc = ((TPushbutton_control*)_ctl)->mnemonic();
|
const char acc = ((TPushbutton_control*)_ctl)->mnemonic();
|
||||||
|
|
||||||
_virtual_key = (acc > ' ') ? toupper(acc) : _exit_key;
|
_virtual_key = (acc > ' ') ? toupper(acc) : _exit_key;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -394,14 +394,16 @@ bool TRecordset::save_as_dbf(const char* table, int mode)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
const TString & query = query_text();
|
const TString & query = query_text();
|
||||||
|
int posfield = query.find("SELECT");
|
||||||
int pos = query.find("FROM");
|
int pos = query.find("FROM");
|
||||||
TArray records;
|
TAssoc_array records;
|
||||||
|
|
||||||
if (pos > 0)
|
if (pos > 0)
|
||||||
{
|
{
|
||||||
TToken_string tables(query.mid(pos + 5), ',');
|
TToken_string tables(query.mid(pos + 5), ',');
|
||||||
const int len = tables.len();
|
const int len = tables.len();
|
||||||
int stop = 0;
|
int stop = 0;
|
||||||
|
bool first = true;
|
||||||
|
|
||||||
tables.upper();
|
tables.upper();
|
||||||
while (stop < len && ((tables[stop] >= 'A') && (tables[stop] <= 'Z') || tables[stop] == ','))
|
while (stop < len && ((tables[stop] >= 'A') && (tables[stop] <= 'Z') || tables[stop] == ','))
|
||||||
@ -413,22 +415,44 @@ bool TRecordset::save_as_dbf(const char* table, int mode)
|
|||||||
int logic = table2logic(table);
|
int logic = table2logic(table);
|
||||||
|
|
||||||
if (logic > LF_USER)
|
if (logic > LF_USER)
|
||||||
records.add(new TTrec(logic));
|
{
|
||||||
|
if (first)
|
||||||
|
records.add("*", new TTrec(logic));
|
||||||
|
records.add(table, new TTrec(logic));
|
||||||
|
}
|
||||||
|
first = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (posfield >= 0)
|
||||||
|
{
|
||||||
|
posfield += 6;
|
||||||
|
while (isspace(query[posfield++]));
|
||||||
|
}
|
||||||
|
TToken_string fields(query.mid(posfield - 1, pos - posfield), ',');
|
||||||
TTrec def(LF_EXTERNAL);
|
TTrec def(LF_EXTERNAL);
|
||||||
TToken_string keydef("", '+');
|
TToken_string keydef("", '+');
|
||||||
int keylen = 0;
|
int keylen = 0;
|
||||||
|
|
||||||
|
fields.trim();
|
||||||
for (unsigned int j = 0; j < columns(); j++)
|
for (unsigned int j = 0; j < columns(); j++)
|
||||||
{
|
{
|
||||||
TRecordset_column_info & c = (TRecordset_column_info &)column_info(j);
|
TRecordset_column_info & c = (TRecordset_column_info &)column_info(j);
|
||||||
const TString& name = c._name;
|
const TString& colname = c._name;
|
||||||
|
const TString fld = fields.get();
|
||||||
|
int dot = fld.find('.');
|
||||||
|
TString table;
|
||||||
|
TString name(colname);
|
||||||
|
|
||||||
FOR_EACH_ARRAY_ITEM(records, r, obj)
|
if (dot > 0 && name == fld.mid(dot + 1))
|
||||||
|
table = fld.left(dot);
|
||||||
|
|
||||||
|
const TTrec * tr = (const TTrec *)records.objptr(table);
|
||||||
|
|
||||||
|
if (tr == nullptr)
|
||||||
|
tr = (const TTrec *)records.objptr("*");
|
||||||
|
if (tr != nullptr)
|
||||||
{
|
{
|
||||||
TTrec & rec = (TTrec &)*obj;
|
TTrec & rec = (TTrec &)*tr;
|
||||||
const int nfield = rec.field(name);
|
const int nfield = rec.field(name);
|
||||||
|
|
||||||
if (nfield >= 0)
|
if (nfield >= 0)
|
||||||
|
@ -105,15 +105,22 @@ void TButton_tool::create(WINDOW toolbar)
|
|||||||
_ctl_data._bmp_up = TOOL_DELREC;
|
_ctl_data._bmp_up = TOOL_DELREC;
|
||||||
break;
|
break;
|
||||||
case DLG_PRINT:
|
case DLG_PRINT:
|
||||||
if (_ctl_data._prompt.blank())
|
if (_ctl_data._prompt.blank() || _ctl_data._prompt == "Stampa")
|
||||||
_ctl_data._prompt = TR("~Stampa");
|
_ctl_data._prompt = TR("~Stampa");
|
||||||
set_exit_key(K_ENTER);
|
set_exit_key(K_ENTER);
|
||||||
if (_ctl_data._bmp_up <= 0)
|
if (_ctl_data._bmp_up <= 0)
|
||||||
_ctl_data._bmp_up = TOOL_PRINT;
|
_ctl_data._bmp_up = TOOL_PRINT;
|
||||||
break;
|
break;
|
||||||
|
case DLG_PREVIEW:
|
||||||
|
if (_ctl_data._prompt.blank() || _ctl_data._prompt.starts_with("Antepr"))
|
||||||
|
_ctl_data._prompt = TR("~Anteprima");
|
||||||
|
set_exit_key(M_FILE_PREVIEW);
|
||||||
|
if (_ctl_data._bmp_up <= 0)
|
||||||
|
_ctl_data._bmp_up = TOOL_PREVIEW;
|
||||||
|
break;
|
||||||
case DLG_SETPRINT:
|
case DLG_SETPRINT:
|
||||||
if (_ctl_data._prompt.blank())
|
if (_ctl_data._prompt.blank() || _ctl_data._prompt == "Imposta")
|
||||||
_ctl_data._prompt = TR("Imposta");
|
_ctl_data._prompt = TR("~Imposta");
|
||||||
set_exit_key(M_FILE_PG_SETUP);
|
set_exit_key(M_FILE_PG_SETUP);
|
||||||
if (_ctl_data._bmp_up <= 0)
|
if (_ctl_data._bmp_up <= 0)
|
||||||
_ctl_data._bmp_up = TOOL_SETPRINT;
|
_ctl_data._bmp_up = TOOL_SETPRINT;
|
||||||
@ -136,7 +143,6 @@ void TButton_tool::create(WINDOW toolbar)
|
|||||||
_ctl_data._bmp_up = TOOL_MULTISEL;
|
_ctl_data._bmp_up = TOOL_MULTISEL;
|
||||||
_virtual_key = K_CTRL + 'T';
|
_virtual_key = K_CTRL + 'T';
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DLG_HELP:
|
case DLG_HELP:
|
||||||
if (_ctl_data._prompt.blank())
|
if (_ctl_data._prompt.blank())
|
||||||
_ctl_data._prompt = TR("Help");
|
_ctl_data._prompt = TR("Help");
|
||||||
@ -158,6 +164,7 @@ void TButton_tool::create(WINDOW toolbar)
|
|||||||
if (_virtual_key <= 0)
|
if (_virtual_key <= 0)
|
||||||
{
|
{
|
||||||
const char acc = _ctl_data._prompt.after("~")[0];
|
const char acc = _ctl_data._prompt.after("~")[0];
|
||||||
|
|
||||||
if (acc >= 'A'&& acc <= 'z')
|
if (acc >= 'A'&& acc <= 'z')
|
||||||
_virtual_key = toupper(acc);
|
_virtual_key = toupper(acc);
|
||||||
}
|
}
|
||||||
@ -169,6 +176,7 @@ void TButton_tool::create(WINDOW toolbar)
|
|||||||
_ctl_data._bmp_up, _ctl_data._width, -1);
|
_ctl_data._bmp_up, _ctl_data._width, -1);
|
||||||
|
|
||||||
TToken_string* mess = message(0);
|
TToken_string* mess = message(0);
|
||||||
|
|
||||||
if (mess != NULL)
|
if (mess != NULL)
|
||||||
{
|
{
|
||||||
TToken_string msg(mess->get(0), ',');
|
TToken_string msg(mess->get(0), ',');
|
||||||
|
Loading…
x
Reference in New Issue
Block a user