CURRENTKEYINDEX Function (RecordRef)

Gets or sets the current key of the table referred to by the RecordRef. The current key is set or returned as a number. This first key = 1, and so on.


If RecordRef does not have an active record, CURRENTKEYINDEX will return -1. If this value is then passed to KEYINDEX, an index out of bounds error will occur. Therefore it is important to implement a check of the RecordRef parameter.


[CurrKeyIndex :=] RecordRef.CURRENTKEYINDEX([NewKeyIndex])  


Type: RecordRef

Type: Integer

The number of the new key.

Property Value/Return Value

Type: Integer

The number of the current key.


The following example loops through four tables (36-39) opens each table as a RecordRef variable that is named MyRecordRef. The CURRENTKEYINDEX function retrieves the current key index of the tables. The name of the table and the current key index of each table are displayed in a message box. Each table is close before the next one is opened. This example requires that you create the following variables and text constant in the C/AL Globals window.

Variable name DataType
MyRecordRef RecordRef
CurrentKeyIndex Integer
i Integer
varFromTable Integer
varToTable Integer
Text constant name DataType ENU value
Text000 Text Table: %1 Current key index: %2
varFromTable := 36;  
varToTable := 39;  
FOR i := varFromTable TO varToTable DO BEGIN  
  CurrentKeyIndex := MyRecordRef.CURRENTKEYINDEX;  
  MESSAGE(Text000, MyRecordRef.NAME, CurrentKeyIndex);  

See Also

RecordRef Data Type