Patch level :10.0

Files correlati     :ca3 per ora, tutti prg con report in futuro
Ricompilazione Demo : [ ]
Commento            :torna ad accettare i bool con valore 'X' nelle espressioni di condizione di sezione (segnalazione rendiconto Dinamica - CRPA)


git-svn-id: svn://10.65.10.50/trunk@19595 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
luca 2009-11-09 16:27:38 +00:00
parent 9f617c7962
commit 7931977267
2 changed files with 4 additions and 2 deletions

View File

@ -284,7 +284,8 @@ const real & TExpression::as_real()
const TString & TExpression::as_string()
{
if (user_func_dirty() || _dirty) eval();
if (user_func_dirty() || _dirty)
eval();
_dirty = FALSE;
return _val.string();
}

View File

@ -276,6 +276,7 @@ const TVariant& TReport_expr::as_variant(TFieldtypes ft)
const TString& str = as_string();
switch (ft)
{
case _boolfld: _var.set(str=="X"||str=="Y"||str=="1"); break;
case _datefld: _var.set(TDate(str)); break;
case _longfld: _var.set(atol(str)); break;
case _realfld: _var.set(real(str)); break;
@ -2138,7 +2139,7 @@ bool TReport::evaluate(const char* expr, TVariant& var, TFieldtypes force_type)
const bool ok = get_usr_val(name, var);
if (!ok)
var = name;
if (var.is_string() || var.is_null())
if (var.is_string() || var.is_null() || var.is_bool())
e.setvar(i, var.as_string());
else
{