Finds a record in a table that is based on the values stored in keys.
Ok := Record.FIND([Which]) |
Parameters
- Record
-
Type: Record
On input, Record identifies the record that you want to find. On output, the following possibilities exist:
-
If the record was found, then the record is returned in the Record parameter and any FlowFields in the record are set to zero. You must update the FlowFields using the CALCFIELDS Function (Record).
-
If the record was not found and if you omitted the return value, a run-time error occurs.
-
If the record was found, then the record is returned in the Record parameter and any FlowFields in the record are set to zero. You must update the FlowFields using the CALCFIELDS Function (Record).
- Which
-
Type: Text or code
Specifies how to perform the search. The table is searched until either a record is found or there are no more records. Each character in this string can be present only one time. You can combine the '=', '<', and '>' characters. You can use the following characters:
-
= to search for a record that equals the key values (default)
-
> to search for a record that is larger than the key values
-
< to search for a record that is less than the key values
-
+ to search for the last record in the table (+ can only be used alone)
-
- to search for the first record in the table (- can only be used alone)
-
= to search for a record that equals the key values (default)
Property Value/Return Value
Type: Boolean
true if the record was found; otherwise, false.
If you omit this optional return value and if the record cannot be found, a run-time error occurs. If you include a return value, you must handle any errors.
Remarks
FIND retrieves the first record that meets the conditions set by Which and the filters associated with Record. The search path reflects the sort order defined by the current key. If the current key is not the primary key, several records might have the same values in current key fields. If this occurs, the sort order defined by the primary key as the search path is used.
Example
The following example shows how use the FIND function to find a record in a table. The code sets the number of the record to find to 1100, which is the primary key of the record to find. The FIND function uses the '=' parameter to find the record that has a primary value that equals the specified primary key. If the record is found, then the item number, description, and unit price of the item are displayed in a message box. Otherwise, a message that specifies that the item is not found is displayed. This example requires that you create the following variables and text constants in the C/AL Globals window.
Variable name | DataType | Subtype |
---|---|---|
ItemRec | Record | Item |
Text constant | ENU value |
---|---|
Text000 | Item No. %1.\Description: %2. Price: $%3. |
Text001 | The item was not found. |
Copy Code | |
---|---|
ItemRec."No." := '1100'; IF ItemRec.FIND('=') THEN MESSAGE(TEXT000, ItemRec."No.", ItemRec.Description, ItemRec."Unit Price") ELSE MESSAGE(TEXT001); |
Example
The following example defines a record variable that is named ItemRec. The FIND function uses the ‘+’ parameter to find the last record in the table. If the record is found, then the item number, description, and unit price of the item are displayed in a message box. Otherwise, the message that specifies that the item was not found is displayed. This example requires that you create the following variables and text constants in the C/AL Globals window.
Variable name | DataType | Subtype |
---|---|---|
ItemRec | Record | Item |
Text constant | ENU value |
---|---|
Text000 | Item No. %1.\Description: %2. Price: $%3. |
Text001 | The item was not found. |
Copy Code | |
---|---|
IF ItemRec.FIND('+') THEN MESSAGE(Text000, ItemRec."No.", ItemRec.Description, ItemRec."Unit Price") ELSE MESSAGE(Text001); |