$Currec

From m204wiki
Revision as of 23:03, 10 December 2014 by JAL (talk | contribs) (minor cleanup)
Jump to navigation Jump to search

The $Currec function returns an integer equal to the internal number of the current record.

At the beginning of a request, $Currec is set to minus one, an invalid record number.

At the beginning of each pass through a FOR EACH RECORD loop, $Currec is set to the record number of the record to be processed in that pass. When the FOR loop is exited, because all records have been processed or because a LOOP END or JUMP statement has been encountered, $Currec is restored to its value prior to the FOR statement.

$Currec takes no arguments.

Be aware of these facts when using $Currec:

  • A STORE RECORD statement resets $Currec to the record number of the newly stored record. If the STORE RECORD statement is issued inside of a FOR RECORD loop, $Currec retains the stored record number until the next pass through the FOR loop or until the next STORE RECORD statement. If the STORE RECORD statement is issued outside of a FOR RECORD loop, $Currec will retain the stored record number until the next STORE RECORD or the next FOR RECORD loop.
  • In a record loop on the records of a SORT statement, $Currec is set to the record number of the record from which the temporary sort copy was made.
  • Record numbers are not unique within a file group. The number returned by $Currec is valid only in reference to the file from which the record came.

Examples

This request prints the record number of a new record:

BEGIN GET.RECS: FIND ALL RECORDS END FIND FOR 5 RECORDS IN GET.RECS PRINT 'THE INTERNAL RECORD NO IS ' WITH $CURREC END FOR END

Also, as of Model 204 version 7.5, the FOR RECORD NUMBER statement accepts an expression after it, for example:

IN FILE CLAIMS STORE RECORD ... END STORE IN FILE CLAIMS FRN $CURREC ... END FOR