Corretta check (utilizzato il modo corrente della maschera)
git-svn-id: svn://10.65.10.50/trunk@4488 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
e6ff4aa8c2
commit
797062113f
@ -1280,8 +1280,8 @@ bool TSpreadsheet::event_handler(XI_OBJ* itf, XI_EVENT *xiev)
|
||||
if (rec < items())
|
||||
str2mask(rec);
|
||||
notify(rec, K_CTRL+K_DEL); // Notifica l'avvenuta cancellazione
|
||||
set_dirty();
|
||||
if (rec >= items())
|
||||
set_dirty();
|
||||
if (rec >= items())
|
||||
rec = items() - 1;
|
||||
if (rec >= 0)
|
||||
select(rec, FALSE);
|
||||
@ -2047,9 +2047,9 @@ KEY TSpreadsheet::edit(int n)
|
||||
|
||||
// Certified 100%
|
||||
TSheet_field::TSheet_field(TMask* m)
|
||||
: TLoadable_field(m), _append(TRUE),
|
||||
_enable_autoload(FALSE),_sheetfile(NULL),_linee_rec(NULL),_external_record(FALSE),
|
||||
_userput(NULL),_userget(NULL)
|
||||
: TLoadable_field(m), _append(TRUE),
|
||||
_enable_autoload(FALSE),_sheetfile(NULL),_linee_rec(NULL),_external_record(FALSE),
|
||||
_userput(NULL),_userget(NULL)
|
||||
{
|
||||
}
|
||||
|
||||
@ -2065,10 +2065,10 @@ bool TSheet_field::is_kind_of(word cid) const
|
||||
// Certified 100%
|
||||
TSheet_field::~TSheet_field()
|
||||
{
|
||||
if (_sheetfile!=NULL)
|
||||
delete _sheetfile;
|
||||
if (_linee_rec!=NULL && !_external_record)
|
||||
delete _linee_rec;
|
||||
if (_sheetfile!=NULL)
|
||||
delete _sheetfile;
|
||||
if (_linee_rec!=NULL && !_external_record)
|
||||
delete _linee_rec;
|
||||
|
||||
}
|
||||
|
||||
@ -2109,13 +2109,13 @@ void TSheet_field::parse_head(TScanner& scanner)
|
||||
// Certified: ...under debug...
|
||||
bool TSheet_field::parse_item(TScanner& scanner)
|
||||
{
|
||||
if (scanner.key() == "IT") // ITEM
|
||||
if (scanner.key() == "IT") // ITEM
|
||||
{
|
||||
_ctl_data._park.add(scanner.string());
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
if (scanner.key() == "FL") // FLAGS
|
||||
if (scanner.key() == "FL") // FLAGS
|
||||
{
|
||||
_enable_autoload=scanner.string()=="A";
|
||||
return TRUE;
|
||||
@ -2132,21 +2132,21 @@ bool TSheet_field::parse_item(TScanner& scanner)
|
||||
if (fexist(d.filename())) // Controlla l'esistenza del file
|
||||
{
|
||||
_sheetfile = new TLocalisamfile(logicnum);
|
||||
TString s = scanner.pop();
|
||||
TString s = scanner.pop();
|
||||
|
||||
// cerca l'indicazione del campo di numerazione
|
||||
if (s == "KE")
|
||||
{
|
||||
s = scanner.pop();
|
||||
_linee_rec= new TRecord_array(logicnum, s);// alloca i record
|
||||
}
|
||||
else
|
||||
{
|
||||
NFCHECK("Manca la definizione del campo di autonumerazione nel campo %d",
|
||||
// cerca l'indicazione del campo di numerazione
|
||||
if (s == "KE")
|
||||
{
|
||||
s = scanner.pop();
|
||||
_linee_rec= new TRecord_array(logicnum, s);// alloca i record
|
||||
}
|
||||
else
|
||||
{
|
||||
NFCHECK("Manca la definizione del campo di autonumerazione nel campo %d",
|
||||
(int)dlg());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
@ -2636,7 +2636,7 @@ void TSheet_field::check_row(int n)
|
||||
const int max = m.fields();
|
||||
TMaskmode mask_mode = (TMaskmode) m.mode();
|
||||
|
||||
m.set_mode(MODE_INS);
|
||||
m.set_mode(mask().mode());
|
||||
for (int i = max - 1; i >= 0; i--)
|
||||
{
|
||||
TMask_field & f = m.fld(i);
|
||||
@ -2654,49 +2654,49 @@ void TSheet_field::check_row(int n)
|
||||
// Certified: ...under debug..
|
||||
void TSheet_field::set_lines_record(TRecord_array & r_a)
|
||||
{
|
||||
if (_linee_rec && !_external_record)
|
||||
delete _linee_rec;
|
||||
_linee_rec= & r_a;
|
||||
_external_record=TRUE; // il record attuale è esterno...
|
||||
if (_linee_rec && !_external_record)
|
||||
delete _linee_rec;
|
||||
_linee_rec= & r_a;
|
||||
_external_record=TRUE; // il record attuale è esterno...
|
||||
}
|
||||
|
||||
// Certified: ...under debug..
|
||||
TRectype * TSheet_field::putkey(const TRelation& r)
|
||||
{
|
||||
if (_sheetfile) {
|
||||
// *******
|
||||
// costruisce la chiave per il record array
|
||||
_sheetfile->zero();
|
||||
_file_k_names.restart();
|
||||
_file_k_ids.restart();
|
||||
TString dbfieldname;
|
||||
while ((dbfieldname=_file_k_names.get())!="") {
|
||||
TMask_field & f= mask().field(atoi(_file_k_ids.get()));
|
||||
((TLoadable_field&)f).autoload(r);
|
||||
_sheetfile->put(dbfieldname, f.get());
|
||||
}
|
||||
return &_sheetfile->curr();
|
||||
}
|
||||
return NULL;
|
||||
// *******
|
||||
// costruisce la chiave per il record array
|
||||
_sheetfile->zero();
|
||||
_file_k_names.restart();
|
||||
_file_k_ids.restart();
|
||||
TString dbfieldname;
|
||||
while ((dbfieldname=_file_k_names.get())!="") {
|
||||
TMask_field & f= mask().field(atoi(_file_k_ids.get()));
|
||||
((TLoadable_field&)f).autoload(r);
|
||||
_sheetfile->put(dbfieldname, f.get());
|
||||
}
|
||||
return &_sheetfile->curr();
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
// Certified: ...under debug..
|
||||
bool TSheet_field::autoload_line(int i,TRectype & rec)
|
||||
{
|
||||
TToken_string &row= this->row(i-1);
|
||||
TToken_string &row= this->row(i-1);
|
||||
|
||||
row = "";
|
||||
// riempie le colonne dello sheet i cui campi hanno attributo "FIELD"
|
||||
for (int f=FIRST_FIELD; f<=_last_column_id; f++) {
|
||||
TFieldref const *dbfield=sheet_mask().field(f).field();
|
||||
if (dbfield) {
|
||||
row.add(dbfield->read(rec),cid2index(f));
|
||||
}
|
||||
// completa l'operazione con le funzioni definite dall'utente
|
||||
TFieldref const *dbfield=sheet_mask().field(f).field();
|
||||
if (dbfield) {
|
||||
row.add(dbfield->read(rec),cid2index(f));
|
||||
}
|
||||
// completa l'operazione con le funzioni definite dall'utente
|
||||
}
|
||||
if (_userget)
|
||||
_userget(*this,i);
|
||||
check_row(i-1);
|
||||
if (_userget)
|
||||
_userget(*this,i);
|
||||
check_row(i-1);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@ -2704,14 +2704,14 @@ bool TSheet_field::autoload_line(int i,TRectype & rec)
|
||||
bool TSheet_field::autosave_line(int i,TRectype & rec)
|
||||
{
|
||||
for (int f=FIRST_FIELD; f<=_last_column_id; f++) {
|
||||
TFieldref const *dbfield=sheet_mask().field(f).field();
|
||||
if (dbfield)
|
||||
dbfield->write(cell(i-1,cid2index(f)),rec);
|
||||
TFieldref const *dbfield=sheet_mask().field(f).field();
|
||||
if (dbfield)
|
||||
dbfield->write(cell(i-1,cid2index(f)),rec);
|
||||
}
|
||||
// completa l'operazione con le funzioni definite dall'utente
|
||||
if (_userput)
|
||||
_userput(*this,i);
|
||||
return FALSE;
|
||||
// completa l'operazione con le funzioni definite dall'utente
|
||||
if (_userput)
|
||||
_userput(*this,i);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
// Certified: ...under debug..
|
||||
@ -2719,18 +2719,18 @@ bool TSheet_field::autoload(const TRelation& rel)
|
||||
{
|
||||
if (_enable_autoload)
|
||||
{
|
||||
CHECK(_linee_rec !=NULL, "Iu ev forgotten tu declare de Record array for de scit");
|
||||
CHECK(_linee_rec !=NULL, "Iu ev forgotten tu declare de Record array for de scit");
|
||||
// *******
|
||||
// trasferisce le linee dal record array allo sheet
|
||||
destroy(); // cancella lo sheet
|
||||
const int last_line = _linee_rec->last_row();
|
||||
for (int i= 1; i <= last_line; i++)
|
||||
{
|
||||
autoload_line(i,_linee_rec->row(i, TRUE));
|
||||
autoload_line(i,_linee_rec->row(i, TRUE));
|
||||
}
|
||||
|
||||
return(0);
|
||||
}
|
||||
}
|
||||
return _enable_autoload;
|
||||
}
|
||||
|
||||
@ -2739,30 +2739,30 @@ bool TSheet_field::autosave(TRelation& rel)
|
||||
{
|
||||
if (_enable_autoload)
|
||||
{
|
||||
CHECK(_linee_rec !=NULL, "Iu ev forgotten tu declare de Record array for de scit");
|
||||
_linee_rec->destroy_rows();
|
||||
if (_sheetfile)
|
||||
{
|
||||
// trasferisce dal file locale
|
||||
if (mask().insert_mode()) {
|
||||
// rinumera la chiave
|
||||
_file_k_names.restart();
|
||||
_file_k_ids.restart();
|
||||
TString dbfieldname;
|
||||
while ((dbfieldname=_file_k_names.get())!="") {
|
||||
TMask_field & f= mask().field(atoi(_file_k_ids.get()));
|
||||
_linee_rec->renum_key(dbfieldname, f.get());
|
||||
}
|
||||
}
|
||||
}
|
||||
CHECK(_linee_rec !=NULL, "Iu ev forgotten tu declare de Record array for de scit");
|
||||
_linee_rec->destroy_rows();
|
||||
if (_sheetfile)
|
||||
{
|
||||
// trasferisce dal file locale
|
||||
if (mask().insert_mode()) {
|
||||
// rinumera la chiave
|
||||
_file_k_names.restart();
|
||||
_file_k_ids.restart();
|
||||
TString dbfieldname;
|
||||
while ((dbfieldname=_file_k_names.get())!="") {
|
||||
TMask_field & f= mask().field(atoi(_file_k_ids.get()));
|
||||
_linee_rec->renum_key(dbfieldname, f.get());
|
||||
}
|
||||
}
|
||||
}
|
||||
// *******
|
||||
// trasferisce le linee dallo sheet al record array
|
||||
for (int i= 1; i <= items(); i++)
|
||||
{
|
||||
{
|
||||
autosave_line(i,_linee_rec->row(i, TRUE));
|
||||
}
|
||||
}
|
||||
return _enable_autoload;
|
||||
}
|
||||
}
|
||||
return _enable_autoload;
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user