Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
The following methods can be used to filter records in a table:
These methods are some of the most commonly used AL methods. They set limits on the value of one or more specified fields, so that only a subset of the records are displayed, modified, deleted, and so on.
SetRange method
SetRange
sets a simple filter on a field.
SetRange
has the following syntax.
Record.SetRange(Field [,From-Value] [,To-Value]);
In the following example, SetRange
filters the Customer table by selecting only those records where the No. field has a value between 10000 and 90000.
Customer.SetRange("No.",'10000','90000');
When you use SetRange
the following rules apply:
SetRange
removes any filters that were set previously and replaces them with the From-Value and To-Value parameters that you specify.- If you use
SetRange
without setting the From-Value and To-Value parameters, the method removes any filters that are already set. - If you only set the From-Value, the To-Value is set to the same value as the From-Value.
SetFilter method
SetFilter
sets a filter in a more general way than SetRange
.
SetFilter
has the following syntax.
Record.SetFilter(Field, String [, Value], ...]);
Field is the name of the field on which you want to set a filter. String is the filter expression. String may contain placeholders, such as %1 and %2, to indicate where to insert the Value parameter(s) in a filter expression.
The following example selects records where the value of No. is larger than 10000 and not equal to 20000.
Customer.SetFilter("No.", '>10000 & <> 20000');
If the variables Value1 and Value2 have been assigned "10000" and "20000" respectively, then you can use the following statement to create the same filter.
Customer.SetFilter("No.",'>%1&<>%2',Value1, Value2);
GetRangeMin method
GetRangeMin
retrieves the minimum value of the filter range that is currently applied to a field.
GetRangeMin
has the following syntax.
Record.GetRangeMin(Field);
A runtime error occurs if the filter that is currently applied is not a range. For example, you can set a filter as follows.
Customer.SetFilter("No.",'10000|20000|30000');
With this filter, the following code fails because the filter isn't a range.
BottomValue := Customer.GetRangeMin("No.");
GetRangeMax method
GetRangeMax
retrieves the maximum value of the filter range that is currently applied to a field.
GetRangeMax
has the following syntax.
Value := Record.GetRangeMax(Field)
Related information
SetRange method
SetFilter method
GetRangeMin method
GetRangeMax method