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

View File

@ -76,8 +76,15 @@ const TToken_string& TRecordset::sheet_head() const
maxlen = len; maxlen = len;
} }
head << '@' << max(ci._width, maxlen); head << '@' << max(ci._width, maxlen);
if (ci._type == _wordfld || ci._type == _intfld || ci._type == _longfld || ci._type == _realfld) switch (ci._type)
head << 'R'; {
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! // Creo la stringa temporanea solo ora, altrimenti puo' essere sovrascritta!
@ -1385,23 +1392,25 @@ const TVariant& TISAM_recordset::get_field(int logic, const char* fldname) const
if (ft == _nullfld) if (ft == _nullfld)
{ {
if (logic == LF_DOC) // Proviamo la magia switch (logic) // Proviamo la magia dei campi virtuali
{ {
subfield = name; case LF_DOC : subfield = name; name = "G1"; break;
name = "G1"; case LF_RIGHEDOC: subfield = name; name = "RG1"; break;
default: return NULL_VARIANT;
} }
else
return NULL_VARIANT;
} }
TVariant& var = get_tmp_var(); TVariant& var = get_tmp_var();
switch (ft) switch (ft)
{ {
case _boolfld: var.set(rec.get_bool(name)); break;
case _datefld: var.set(rec.get_date(name)); break; case _datefld: var.set(rec.get_date(name)); break;
case _realfld: var.set(rec.get_real(name)); break; case _realfld: var.set(rec.get_real(name)); break;
case _intfld : case _intfld :
case _longfld: case _longfld:
case _wordfld: var.set(rec.get_long(name)); break; case _wordfld: var.set(rec.get_long(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; default : var.set(rec.get(name)); break;
} }

View File

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

View File

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