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:
alex 1997-06-02 10:12:05 +00:00
parent e6ff4aa8c2
commit 797062113f

View File

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