Patch level : 10.0

Files correlati     : report.alx
Ricompilazione Demo : [ ]
Commento            :
Eliminata segnalazione errata "Unknown Word: FIRM"


git-svn-id: svn://10.65.10.50/trunk@19495 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 2009-10-22 10:03:55 +00:00
parent a9911d9e17
commit 7fa9600147
5 changed files with 45 additions and 15 deletions

View File

@ -32,7 +32,7 @@ bool error_box(
// e l'icona punto esclamativo.
{
buildmsg();
xvt_dm_popup_error(msg);
xvt_dm_post_error(msg);
return false;
}
@ -45,7 +45,7 @@ bool warning_box(
// e l'icona punto di domanda.
{
buildmsg();
xvt_dm_popup_warning(msg);
xvt_dm_post_warning(msg);
return 0;
}
@ -58,7 +58,7 @@ bool message_box(
// e l'icona informazioni.
{
buildmsg();
xvt_dm_popup_message(msg);
xvt_dm_post_message(msg);
return false;
}

View File

@ -76,8 +76,15 @@ const TToken_string& TRecordset::sheet_head() const
maxlen = len;
}
head << '@' << max(ci._width, maxlen);
if (ci._type == _wordfld || ci._type == _intfld || ci._type == _longfld || ci._type == _realfld)
head << 'R';
switch (ci._type)
{
case _boolfld: head << 'C'; break;
case _wordfld:
case _intfld:
case _longfld:
case _realfld: head << 'R'; break;
default: break;
}
}
// Creo la stringa temporanea solo ora, altrimenti puo' essere sovrascritta!
@ -1385,24 +1392,26 @@ const TVariant& TISAM_recordset::get_field(int logic, const char* fldname) const
if (ft == _nullfld)
{
if (logic == LF_DOC) // Proviamo la magia
switch (logic) // Proviamo la magia dei campi virtuali
{
subfield = name;
name = "G1";
case LF_DOC : subfield = name; name = "G1"; break;
case LF_RIGHEDOC: subfield = name; name = "RG1"; break;
default: return NULL_VARIANT;
}
else
return NULL_VARIANT;
}
TVariant& var = get_tmp_var();
switch (ft)
{
case _boolfld: var.set(rec.get_bool(name)); break;
case _datefld: var.set(rec.get_date(name)); break;
case _realfld: var.set(rec.get_real(name)); break;
case _intfld :
case _longfld:
case _wordfld: var.set(rec.get_long(name)); break;
default : var.set(rec.get(name)); break;
case _intzerofld : // Non usare il convertitore degll interi
case _longzerofld: // in modo da preservare gli zeri iniziali
default : var.set(rec.get(name)); break;
}
if (subfield.not_empty())

View File

@ -213,6 +213,6 @@
#THIS ! \ Setto il campo corrente con la data
;
: MESSAGE_DITTA ( s1 -- )
FIRM \ Campi della ditta corrente
GET_FIRM_DATA \ Campi della ditta corrente
;

View File

@ -61,16 +61,26 @@ void TVariant::set(const TDate& d)
void TVariant::set(const long n)
{
if (_type != _longfld)
if (_type == _realfld || _type == _alfafld)
set_null();
_type = _longfld;
_ptr = (void*)n;
}
void TVariant::set(const bool b)
{
if (_type == _realfld || _type == _alfafld)
set_null();
_type = _boolfld;
_ptr = (void*)(b != false);
}
bool TVariant::is_zero() const
{
switch (_type)
{
case _boolfld:
case _datefld:
case _longfld: return _ptr == NULL;
case _realfld: return as_real().is_zero();
@ -99,6 +109,7 @@ long TVariant::as_int() const
long n = 0;
switch(_type)
{
case _boolfld:
case _datefld:
case _longfld: n = (long)_ptr; break;
case _realfld: n = as_real().integer(); break;
@ -151,6 +162,7 @@ real TVariant::as_real() const
return *(real*)_ptr;
switch(_type)
{
case _boolfld: return _ptr ? UNO : ZERO; break;
case _alfafld: return real(as_string()); break;
case _longfld: return real(as_int()); break;
default : break;
@ -163,6 +175,7 @@ bool TVariant::as_string(TString& tmp) const
tmp.cut(0);
switch(_type)
{
case _boolfld: tmp = _ptr ? "X" : ""; break;
case _alfafld: tmp = *(TString*)_ptr; break;
case _datefld: tmp = as_date().string(); break;
case _longfld: tmp << as_int(); break;
@ -190,13 +203,13 @@ void TVariant::convert_to(TFieldtypes ft)
switch (ft)
{
case _nullfld : set_null(); break;
case _boolfld : set(as_bool()); break;
case _datefld : set(as_date()); break;
case _intfld :
case _intzerofld :
case _longzerofld:
case _wordfld :
case _longfld : set(as_int()); break;
case _boolfld : set(as_bool()); break;
case _realfld : set(as_real()); break;
default : set(as_string()); break;
}
@ -207,6 +220,7 @@ void TVariant::copy(const TVariant& var)
{
switch (var._type)
{
case _boolfld: set(var.as_bool()); break;
case _datefld: set(var.as_date()); break;
case _longfld: set(var.as_int()); break;
case _realfld: set(var.as_real()); break;
@ -233,6 +247,7 @@ int TVariant::compare(const TSortable& s) const
switch (_type)
{
case _datefld: cmp = as_date() - var.as_date(); break;
case _boolfld:
case _longfld: cmp = as_int() - var.as_int(); break;
case _realfld:
{
@ -250,6 +265,7 @@ TVariant& TVariant::add(const TVariant& var)
{
switch (_type)
{
case _boolfld: set(as_bool() || var.as_bool()); break;
case _datefld: set(as_date() + var.as_int()); break;
case _longfld: set(as_int() + var.as_int()); break;
case _alfafld: *(TString*)_ptr << var.as_string(); break;
@ -263,6 +279,9 @@ TVariant& TVariant::sub(const TVariant& var)
{
switch (_type)
{
case _boolfld:
set(as_int() > var.as_int());
break;
case _datefld:
if (var.type() == _datefld)
set(as_date() - var.as_date());

View File

@ -31,6 +31,7 @@ protected:
public:
TFieldtypes type() const { return _type; } // Internal use only
bool is_string() const { return _type == _alfafld; }
bool is_bool() const { return _type == _boolfld; }
bool is_date() const { return _type == _datefld; }
bool is_real() const { return _type == _realfld; }
bool is_empty() const;
@ -42,6 +43,7 @@ public:
void set(const real& r);
void set(const long n);
void set(const TDate& d);
void set(const bool b);
TVariant& operator=(const TVariant& var) { copy(var); return *this; }
TVariant& operator=(const char* str) { set(str); return *this; }
@ -49,7 +51,7 @@ public:
TVariant& operator=(const real& r) { set(r); return *this; }
TVariant& operator=(const long n) { set(n); return *this; }
TVariant& operator=(const TDate& d) { set(d); return *this; }
TVariant& operator=(bool b) { set(long(b)); return *this; }
TVariant& operator=(bool b) { set(b); return *this; }
TVariant& operator+=(const TVariant& var) { return add(var); }
const TString& as_string() const;