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))
|
||||
_ctl_data._bmp_up = BMP_PRINT;
|
||||
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:
|
||||
if (_ctl_data._prompt.empty())
|
||||
_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);
|
||||
|
||||
TToken_string* mess = message(0);
|
||||
|
||||
if (mess)
|
||||
{
|
||||
TToken_string msg(mess->get(0), ',');
|
||||
@ -1465,6 +1473,7 @@ void TButton_field::create(WINDOW parent)
|
||||
if (_virtual_key == 0)
|
||||
{
|
||||
const char acc = ((TPushbutton_control*)_ctl)->mnemonic();
|
||||
|
||||
_virtual_key = (acc > ' ') ? toupper(acc) : _exit_key;
|
||||
}
|
||||
}
|
||||
|
@ -394,14 +394,16 @@ bool TRecordset::save_as_dbf(const char* table, int mode)
|
||||
else
|
||||
{
|
||||
const TString & query = query_text();
|
||||
int posfield = query.find("SELECT");
|
||||
int pos = query.find("FROM");
|
||||
TArray records;
|
||||
TAssoc_array records;
|
||||
|
||||
if (pos > 0)
|
||||
{
|
||||
TToken_string tables(query.mid(pos + 5), ',');
|
||||
const int len = tables.len();
|
||||
int stop = 0;
|
||||
bool first = true;
|
||||
|
||||
tables.upper();
|
||||
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);
|
||||
|
||||
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);
|
||||
TToken_string keydef("", '+');
|
||||
int keylen = 0;
|
||||
|
||||
fields.trim();
|
||||
for (unsigned int j = 0; j < columns(); 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);
|
||||
|
||||
if (nfield >= 0)
|
||||
|
@ -105,15 +105,22 @@ void TButton_tool::create(WINDOW toolbar)
|
||||
_ctl_data._bmp_up = TOOL_DELREC;
|
||||
break;
|
||||
case DLG_PRINT:
|
||||
if (_ctl_data._prompt.blank())
|
||||
if (_ctl_data._prompt.blank() || _ctl_data._prompt == "Stampa")
|
||||
_ctl_data._prompt = TR("~Stampa");
|
||||
set_exit_key(K_ENTER);
|
||||
if (_ctl_data._bmp_up <= 0)
|
||||
_ctl_data._bmp_up = TOOL_PRINT;
|
||||
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:
|
||||
if (_ctl_data._prompt.blank())
|
||||
_ctl_data._prompt = TR("Imposta");
|
||||
if (_ctl_data._prompt.blank() || _ctl_data._prompt == "Imposta")
|
||||
_ctl_data._prompt = TR("~Imposta");
|
||||
set_exit_key(M_FILE_PG_SETUP);
|
||||
if (_ctl_data._bmp_up <= 0)
|
||||
_ctl_data._bmp_up = TOOL_SETPRINT;
|
||||
@ -136,7 +143,6 @@ void TButton_tool::create(WINDOW toolbar)
|
||||
_ctl_data._bmp_up = TOOL_MULTISEL;
|
||||
_virtual_key = K_CTRL + 'T';
|
||||
break;
|
||||
|
||||
case DLG_HELP:
|
||||
if (_ctl_data._prompt.blank())
|
||||
_ctl_data._prompt = TR("Help");
|
||||
@ -158,6 +164,7 @@ void TButton_tool::create(WINDOW toolbar)
|
||||
if (_virtual_key <= 0)
|
||||
{
|
||||
const char acc = _ctl_data._prompt.after("~")[0];
|
||||
|
||||
if (acc >= 'A'&& acc <= 'z')
|
||||
_virtual_key = toupper(acc);
|
||||
}
|
||||
@ -169,6 +176,7 @@ void TButton_tool::create(WINDOW toolbar)
|
||||
_ctl_data._bmp_up, _ctl_data._width, -1);
|
||||
|
||||
TToken_string* mess = message(0);
|
||||
|
||||
if (mess != NULL)
|
||||
{
|
||||
TToken_string msg(mess->get(0), ',');
|
||||
|
Loading…
x
Reference in New Issue
Block a user