Controllare !!!!

git-svn-id: svn://10.65.10.50/trunk@1702 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
alex 1995-08-11 10:45:34 +00:00
parent c431c94326
commit 20e6d0660a

View File

@ -1,34 +1,51 @@
int numerazione_definitiva( TRectype& rec )
// DOVE COMPARE !! SONO STATE FATTE MODIFICHE DA GIANLUCA O GUIDO
// !!
#include <rectypes.h>
#include <relation.h>
#include <tabutil.h>
int numerazione_definitiva( TLocalisamfile& doc )
{ TTable tabnum( "NUM" );
TRectype* oldrec( rec.dup );
TRectype &rec= doc.curr();
doc.read( rec, _lock );
TRectype oldrec( doc.curr() );
tabnum.zero( );
tabnum.set( "CODTAB", rec.get( "CODNUM" ) );
int err = tabnum.read( _islock );
tabnum.put( "CODTAB", rec.get( "CODNUM" ) );
int err = tabnum.read( _lock );
// Modifico la chiave del record passato!
rec.set( "NDOC", tabnum.get_long( "I1" ) );
rec.set( "PROVV", "D" );
rec.put( "NDOC", tabnum.get_long( "I1" ) );
rec.put( "PROVV", "D" );
// !! Matteo, qui non manca qualcosina!? (tipo, che so', la scrittura del record...)
if ( err == NOERR )
{ // Aggiorno la tabella!
tabnum.put( "I1", tabnum.get_long( "I1" ) + 1 );
err = tabnum.rewrite();
}
int err = tabnum.read( _isunlock );
doc.read( rec, _unlock );
// !! che casino! non si può prendere un record, bloccarlo, cambiargli la chiave,
// !! riscriverlo e poi sbloccarlo: deve essere letto e duplicato, modificato nella copia
// !! con la nuova chiave, scritto e cancellato il vecchio (!)... almeno così dice Guido.
// !! occhio! :-)
err = tabnum.read( _unlock );
if ( err = NOERR )
{
// carico le righe usando la vecchia chiave
TRecord_array righe_rec( LF_RIGHEDOC, "NRIGA" );
righe_rec.read( r );
int last = righe_rec->last_row();
righe_rec.read( rec );
int last = righe_rec.last_row();
for ( int i = 1; i <= last; i ++ )
{ // Le aggiorno con la nuova chiave
TRectype &rigarec = righe_rec->row( i, TRUE );
rigarec.set( "PROVV", "D" );
rigarec.set( "NDOC", rec.get( "NDOC" ) );
TRectype &rigarec = righe_rec.row( i, TRUE );
rigarec.put( "PROVV", "D" );
rigarec.put( "NDOC", rec.get( "NDOC" ) );
}
righe_rec.rewrite( );
righe_rec.write( );
};
return err;
};