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.

Warning
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])

Parameters

RecordRef

Type: RecordRef

NewKeyIndex

Type: Integer

The number of the new key.

Property Value/Return Value

Type: Integer

The number of the current key.

Example

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

 Copy Code
varFromTable := 36;
varToTable := 39;
FOR i := varFromTable TO varToTable DO BEGIN
  MyRecordRef.OPEN(i);
  CurrentKeyIndex := MyRecordRef.CURRENTKEYINDEX;
  MESSAGE(Text000, MyRecordRef.NAME, CurrentKeyIndex);
  MyRecordRef.CLOSE;
END

See Also