int numerazione_definitiva( TRectype& rec ) { TTable tabnum( "NUM" ); TRectype* oldrec( rec.dup ); tabnum.zero( ); tabnum.set( "CODTAB", rec.get( "CODNUM" ) ); int err = tabnum.read( _islock ); // Modifico la chiave del record passato! rec.set( "NDOC", tabnum.get_long( "I1" ) ); rec.set( "PROVV", "D" ); if ( err == NOERR ) { // Aggiorno la tabella! tabnum.put( "I1", tabnum.get_long( "I1" ) + 1 ); err = tabnum.rewrite(); } int err = tabnum.read( _isunlock ); 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(); 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" ) ); } righe_rec.rewrite( ); }; return err; };