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())
|
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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user