Patch level : 10.0
Files correlati : lv0 Ricompilazione Demo : [ ] Commento : Corretta valutazione BETWEEN nelle espressioni. Ora gestisce correttamente anche limiti del tipo "000" git-svn-id: svn://10.65.10.50/trunk@17346 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
f1ab3282b3
commit
4f5788f438
@ -361,6 +361,14 @@ static bool str2date(const TString& s, TDate& d)
|
||||
return false;
|
||||
}
|
||||
|
||||
static bool all_zeroes(const TString& str)
|
||||
{
|
||||
bool yes = str.not_empty();
|
||||
for (const char* s = str; *s && yes; s++)
|
||||
yes = (*s == '0') || isspace(*s);
|
||||
return yes;
|
||||
}
|
||||
|
||||
void TExpression::eval()
|
||||
{
|
||||
TEval_stack evalstack;
|
||||
@ -763,8 +771,10 @@ void TExpression::eval()
|
||||
break;
|
||||
case _between:
|
||||
{
|
||||
const TString& s3 = evalstack.pop_string();
|
||||
const TString& s2 = evalstack.pop_string();
|
||||
TString& s3 = evalstack.pop_string();
|
||||
if (all_zeroes(s3)) s3.cut(0); // Svuota una stringa finale di soli zeri
|
||||
TString& s2 = evalstack.pop_string();
|
||||
if (all_zeroes(s2)) s2.cut(0); // Svuota una stringa iniziale di soli zeri
|
||||
const TString& s1 = evalstack.pop_string();
|
||||
bool good = true;
|
||||
if (s2.full() || s3.full())
|
||||
|
@ -1337,17 +1337,11 @@ bool TSheet::export_handler(TMask_field& f, KEY k)
|
||||
{
|
||||
TSheet& s = (TSheet&)f.mask();
|
||||
TString cap; s.get_caption(cap);
|
||||
if (cap.blank())
|
||||
cap = "export";
|
||||
TFilename name;
|
||||
name.tempdir();
|
||||
name.add(cap);
|
||||
name.ext("xls");
|
||||
/* Non vogliono pedere tempo a Milano!
|
||||
FILE_SPEC fs;
|
||||
xvt_fsys_convert_str_to_fspec(name, &fs);
|
||||
if (xvt_dm_post_file_save(&fs, TR("Selezionare il file di destinazione")) == FL_OK)
|
||||
{
|
||||
xvt_fsys_convert_fspec_to_str(&fs, name.get_buffer(), name.size());
|
||||
*/
|
||||
name.tempdir(); name.add(cap); name.ext("xls");
|
||||
if (name.full()) // Dummy test
|
||||
{
|
||||
ofstream xls(name);
|
||||
const char sep = '\t';
|
||||
@ -1364,11 +1358,10 @@ bool TSheet::export_handler(TMask_field& f, KEY k)
|
||||
}
|
||||
xls << tab << endl;
|
||||
|
||||
for (long n = 0; n < s.items(); n++)
|
||||
for (long i = 0; i < s.items(); i++)
|
||||
{
|
||||
const TToken_string& r = s.row(n);
|
||||
tab = r;
|
||||
tab.replace(r.separator(), sep);
|
||||
tab = s.row(i);
|
||||
tab.replace('|', sep);
|
||||
tab.separator(sep);
|
||||
for (int c = 0; c < columns; c++)
|
||||
{
|
||||
@ -1382,9 +1375,9 @@ bool TSheet::export_handler(TMask_field& f, KEY k)
|
||||
}
|
||||
xls << tab << endl;
|
||||
}
|
||||
xls.close();
|
||||
xvt_sys_goto_url(name, "open");
|
||||
}
|
||||
if (name.exist())
|
||||
xvt_sys_goto_url(name, "open");
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user