Patch level : 10.0

Files correlati     : f22.dir f22.trr
Ricompilazione Demo : [ ]
Commento            :
Aggiornati tracciati record allegatiin base alle specifiche in "totalone.pdf"
(nome originale del file ministeriale ottenuto tramite copia e incolla casuale)


git-svn-id: svn://10.65.10.50/branches/R_10_00@22374 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 2011-07-05 16:09:40 +00:00
parent 1317834b58
commit 0029f96c42
2 changed files with 25 additions and 15 deletions

View File

@ -17,7 +17,6 @@ DEFFLD(NUMREG) // Can be null
// Flags
DEFFLD(IGNORA)
DEFFLD(CONTRATTO)
// Content fields
DEFFLD(DATAREG)
@ -26,7 +25,12 @@ DEFFLD(IMPORTO)
DEFFLD(IMPOSTA)
DEFFLD(NATOPE)
DEFFLD(TIPOPE)
DEFFLD(TOTALE)
DEFFLD(CONTRATTO)
DEFFLD(IMPORTOTOT)
DEFFLD(IMPOSTATOT)
DEFFLD(NUMRETT)
#undef DEFFLD

View File

@ -20,7 +20,10 @@ TFast_isamfile::TFast_isamfile(int logicnum) : TIsamfile(logicnum)
}
TFast_isamfile::~TFast_isamfile()
{ close(); }
{
close();
// prefix().close_closeable_isamfiles(); // Non strettamente necessario
}
///////////////////////////////////////////////////////////
// TRecord_Array
@ -58,7 +61,7 @@ TRecord_array::TRecord_array(const char* keytok, int logicnum, int first)
if (keytok && *keytok) // La stringa chiave non e' vuota
{
const TToken_string key(keytok);
TString80 val; // Un campo chiave non puo' mai superare i 50
TString80 val; // Un campo chiave non puo' mai superare i 70 (4->S0)
for (int i = 0; i < kd.NkFields-1; i++) // Riempio "quasi" tutta la chiave primaria
{
const int nPos = kd.FieldSeq[i] % MaxFields; // Posizione del campo i della chiave
@ -88,7 +91,7 @@ void TRecord_array::set_key(TRectype* r)
const KeyDes& kd = recd.Ky[0]; // Elenco dei campi della chiave 1
// Copia tutti i campi chiave, tranne l'ultimo, in tutti i records
TString val;
TString80 val;
for (int i = kd.NkFields-2; i >= 0; i--)
{
const int nf = kd.FieldSeq[i] % MaxFields;
@ -104,7 +107,6 @@ const TRectype& TRecord_array::key() const
{
const TRectype* r = (const TRectype*)_data.objptr(0);
CHECK(r != NULL, "TRecord_array lost its key");
return *r;
}
@ -179,13 +181,16 @@ bool TRecord_array::renum_key(const char* field, long num)
void TRecord_array::sort(COMPARE_FUNCTION sort_func)
{
TObject * rec = _data.remove(0); // salva chiave
TObject * rec = _data.remove(0); // salva chiave
_data.sort(sort_func); // ordina
_data.insert(rec,0); // ripristina chiave
_data.sort(sort_func); // ordina
_data.insert(rec,0); // ripristina chiave
TString16 n;
for (int i = _data.last(); i > 0; i--)
row(i, false).renum_key(_num, n.format("%d", i)); // Rinumera
{
n.cut(0) << i;
row(i, false).renum_key(_num, n); // Rinumera
}
}
int TRecord_array::rec2row(const TRectype& r) const
@ -207,9 +212,8 @@ int TRecord_array::insert_row(TRectype* r)
TString16 n;
for (int f = _data.last(); f > nr; f = _data.pred(f))
{
TRectype& rec = row(f, FALSE);
n.format("%ld", (long)_offset + f);
TRectype& rec = row(f, false);
n.cut(0) << long(_offset + f);
rec.renum_key(_num, n);
}
}
@ -234,12 +238,13 @@ void TRecord_array::pack()
{
_data.pack();
TString16 n;
for (int i = _data.last(); i > 0; i--)
{
TRectype* r = (TRectype*)_data.objptr(i);
if (r != NULL)
{
TString16 n; n << i+_offset;
n.cut(0) << long(i+_offset);
r->renum_key(_num, n);
}
}
@ -266,12 +271,13 @@ bool TRecord_array::destroy_row(
if (ok && pack)
{
TString16 n;
for (int i = _data.size()-1; i >= index; i--)
{
TRectype* r = (TRectype*)_data.objptr(i);
if (r != NULL)
{
TString16 n; n << i+_offset;
n.cut(0) << long(i+_offset);
r->renum_key(_num, n);
}
}