Aggiunto metodo per rel.app. in cui cambiano le chiavi a run-time
git-svn-id: svn://10.65.10.50/trunk@1868 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
3d01b209f6
commit
1b80643ca2
@ -432,6 +432,16 @@ word TMask_field::last_key() const
|
||||
return (word)u;
|
||||
}
|
||||
|
||||
|
||||
// Certified 90%
|
||||
void TMask_field::reset_key(byte key)
|
||||
{
|
||||
CHECK(key>0, "Can't reset key 0");
|
||||
_keys.reset(long(key));
|
||||
if (last_key()==0) _keys.reset(0L);
|
||||
}
|
||||
|
||||
|
||||
void TMask_field::set_dirty(bool d)
|
||||
{
|
||||
if (_flags.dirty == 3 && d == FALSE)
|
||||
|
@ -317,6 +317,8 @@ public:
|
||||
// @cmember Setta il campo alla chiave <p key>
|
||||
void set_key(byte key)
|
||||
{ _keys.set(long(key)); _keys.set(0L);}
|
||||
// @cmember Rimuove il campo dalla chiave <p key>
|
||||
void reset_key(byte key);
|
||||
// @cmember Ritorna l'ultima chiave di appartenenza del campo
|
||||
word last_key() const;
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// $Id: relapp.cpp,v 1.65 1995-08-29 09:17:39 gianluca Exp $
|
||||
// $Id: relapp.cpp,v 1.66 1995-09-20 16:56:01 gianluca Exp $
|
||||
#include <mailbox.h>
|
||||
#include <sheet.h>
|
||||
#include <urldefid.h>
|
||||
@ -519,7 +519,13 @@ bool TRelation_application::test_key(byte k, bool err)
|
||||
|
||||
// Guy: doesn't change fields
|
||||
bool TRelation_application::find(byte k)
|
||||
{
|
||||
{
|
||||
if (changing_keys())
|
||||
{
|
||||
delete _maskeys;
|
||||
_maskeys= new TKey_array(_mask);
|
||||
}
|
||||
|
||||
const byte numkeys = _maskeys->items();
|
||||
|
||||
if (k == 0)
|
||||
|
@ -74,6 +74,9 @@ protected:
|
||||
// la futura get_mask ritornera' una maschera diversa dalla corrente.
|
||||
virtual bool changing_mask(int mode) pure;
|
||||
virtual TMask* get_mask(int mode) pure; // Richiede la maschera da usare
|
||||
|
||||
// metodo per far forzare la rigenerazione della lista interna di chiavi ad ogni find()
|
||||
virtual bool changing_keys() const { return FALSE; }
|
||||
|
||||
virtual TRelation* get_relation() const pure; // Relazione da modificare
|
||||
virtual int read(TMask& m); // Legge dalla relazione i valori nella maschera
|
||||
|
Loading…
x
Reference in New Issue
Block a user