Patch level : 12.0 nopatch
Files correlati : Commento : aggiunti metodi per verificare e aggiornare se il valore è cambiato.
This commit is contained in:
parent
d56c40040c
commit
9f06f16f5a
@ -3243,6 +3243,22 @@ void TRectype::init(int logicnum)
|
||||
init_memo(RECORD_NON_FISICO);
|
||||
}
|
||||
|
||||
bool TRectype::changed(const char* fieldname, const char* val, const char* compare_to)
|
||||
{
|
||||
const TString & value = get(fieldname);
|
||||
|
||||
return (value != compare_to) && (value != val);
|
||||
}
|
||||
|
||||
bool TRectype::update(const char* fieldname, const char* val, const char* compare_to)
|
||||
{
|
||||
const bool val_changed = changed(fieldname, compare_to);
|
||||
|
||||
if (val_changed)
|
||||
put(fieldname, val);
|
||||
|
||||
return val_changed;
|
||||
}
|
||||
TRectype::TRectype(int logicnum)
|
||||
: _memo_data(NULL)
|
||||
{
|
||||
|
@ -310,6 +310,58 @@ public:
|
||||
virtual word class_id() const { return CLASS_RECTYPE; }
|
||||
virtual bool is_kind_of(word id) const { return id == class_id() || TSortable::is_kind_of(id); }
|
||||
|
||||
// @cmember verifica se è cambiato il contenuto del campo <p fieldname> in formato int
|
||||
bool changed(const char* fieldname, int val, const char* compare_to = "~~") { TString s; s << val; return changed(fieldname, s, compare_to); }
|
||||
bool changed_if_full(const char* fieldname, int val) { return changed(fieldname, val, ""); }
|
||||
// @cmember verifica se è cambiato il contenuto del campo <p fieldname> in formato long
|
||||
bool changed(const char* fieldname, long val, const char* compare_to = "~~") { TString s; s << val; return changed(fieldname, s, compare_to); }
|
||||
bool changed_if_full(const char* fieldname, long val) { return changed(fieldname, val, ""); }
|
||||
// @cmember verifica se è cambiato il contenuto del campo <p fieldname> in formato word
|
||||
bool changed(const char* fieldname, word val, const char* compare_to = "~~") { TString s; s << val; return changed(fieldname, s, compare_to); }
|
||||
bool changed_if_full(const char* fieldname, word val) { TString s; s << val; return changed(fieldname, s, ""); }
|
||||
// @cmember verifica se è cambiato il contenuto del campo <p fieldname> in formato data
|
||||
bool changed(const char* fieldname, const TDate& val, const char* compare_to = "~~") { return changed(fieldname, val.string(), compare_to); }
|
||||
bool changed_if_full(const char* fieldname, const TDate& val) { return changed(fieldname, val, ""); }
|
||||
// @cmember verifica se è cambiato il contenuto del campo <p fieldname> in formato boolean
|
||||
bool changed(const char* fieldname, bool val, const char* compare_to = "~~") { return changed(fieldname, val ? "X" : "", compare_to); }
|
||||
bool changed_if_full(const char* fieldname, bool val) { return changed(fieldname, val, ""); }
|
||||
// @cmember verifica se è cambiato il contenuto del campo <p fieldname> in formato reale
|
||||
bool changed(const char* fieldname, const real& val, const char* compare_to = "~~") { return changed(fieldname, val.string(), compare_to); }
|
||||
bool changed_if_full(const char* fieldname, const real& val) { return changed(fieldname, val, ""); }
|
||||
// @cmember verifica se è cambiato il contenuto del campo <p fieldname> in formato valuta
|
||||
bool changed(const char* fieldname, const TCurrency& val, const char* compare_to = "~~") { return changed(fieldname, val.string(), compare_to); }
|
||||
bool changed_if_full(const char* fieldname, const TCurrency& val) { return changed(fieldname, val, ""); }
|
||||
// @cmember verifica se è cambiato il contenuto del campo <p fieldname> (non tipizzata)
|
||||
bool changed(const char* fieldname, const char* val, const char* compare_to = "~~");
|
||||
bool changed_if_full(const char* fieldname, const char* val) { return changed(fieldname, val, ""); }
|
||||
|
||||
// @cmember Setta il contenuto del campo <p fieldname> in formato int se è cambiato
|
||||
bool update(const char* fieldname, int val, const char* compare_to = "~~") { TString s; s << val; return update(fieldname, s, compare_to); }
|
||||
bool update_if_full(const char* fieldname, int val) { return update(fieldname, val, ""); }
|
||||
// @cmember Setta il contenuto del campo <p fieldname> in formato long se è cambiato
|
||||
bool update(const char* fieldname, long val, const char* compare_to = "~~") { TString s; s << val; return update(fieldname, s, compare_to); }
|
||||
bool update_if_full(const char* fieldname, long val) { return update(fieldname, val, ""); }
|
||||
// @cmember Setta il contenuto del campo <p fieldname> in formato word se è cambiato
|
||||
bool update(const char* fieldname, word val, const char* compare_to = "~~") { TString s; s << val; return update(fieldname, s, compare_to); }
|
||||
bool update_if_full(const char* fieldname, word val) { return update(fieldname, val, ""); }
|
||||
// @cmember Setta il contenuto del campo <p fieldname> in formato data se è cambiato
|
||||
bool update(const char* fieldname, const TDate& val, const char* compare_to = "~~") { return update(fieldname, val.string(), compare_to); }
|
||||
bool update_if_full(const char* fieldname, const TDate& val) { return update(fieldname, val, ""); }
|
||||
// @cmember Setta il contenuto del campo <p fieldname> in formato boolean se è cambiato
|
||||
bool update(const char* fieldname, bool val, const char* compare_to = "~~") { return update(fieldname, val ? "X" : "", compare_to); }
|
||||
bool update_if_full(const char* fieldname, bool val) { return update(fieldname, val, ""); }
|
||||
// @cmember Setta il contenuto del campo <p fieldname> in formato reale se è cambiato
|
||||
bool update(const char* fieldname, const real& val, const char* compare_to = "~~") { return update(fieldname, val.string(), compare_to); }
|
||||
bool update_if_full(const char* fieldname, const real& val) { return update(fieldname, val, ""); }
|
||||
// @cmember Setta il contenuto del campo <p fieldname> in formato valuta se è cambiato
|
||||
bool update(const char* fieldname, const TCurrency& val, const char* compare_to = "~~") { return update(fieldname, val.string(), compare_to); }
|
||||
bool update_if_full(const char* fieldname, const TCurrency& val) { return update(fieldname, val, ""); }
|
||||
// @cmember Setta il contenuto del campo <p fieldname> (non tipizzata) se è cambiato
|
||||
bool update(const char* fieldname, const char* val, const char* compare_to = "~~");
|
||||
bool update_if_full(const char* fieldname, const char* val) { return update(fieldname, val, ""); }
|
||||
|
||||
// metodi per aggiornare se cambiato
|
||||
|
||||
// @cmember Costruttore Costruisce un record staccato da un file.
|
||||
// Sarebbe meglio utilizzare una delle altre due
|
||||
TRectype(int logicnum);
|
||||
|
Loading…
x
Reference in New Issue
Block a user