Announcements
Hello
I write a function containing a local record variable lrPurchaseHeader associated to the table 38 "Purchase Header" . The field "Document Type" is an Option field
if I write the following I get an error
lrPurchaseHeader.SETFILTER("Document Type", lrPurchaseHeader."Document Type"::Invoice);
"Type conversion is not possible because one of the operators contains an invalid type Text := Option"
If I write the following the compiler does not complain, but I think it's not correct.
lrPurchaseHeader.SETFILTER("Document Type", 'Invoice');
Please clarify me where is my error, thank you in advance.
Hi,
Please find the difference between SETRANGE and SETFILTER-
SETRANGE only accepts values - a single value or a range of values(minimum, maximum) of the same type of the field on which the filter will be applied.
Example-
Customer.SETRANGE("No.",10000, 20000); // Rec.SETRANGE(FieldName, LowerRange, UpperRange)
SETFILTER accepts a string containing a filter expression.
Example-
Customer.SETFILTER("No.",'<>%1',20000);// all values other than 20000
Customer.SETFILTER("No.",'>%1',20000); //all values greater than 20000
Customer.SETFILTER("No.",'<%1',20000); //all values less than 20000
In case if you need filter on Option field, Please use PurchaseHeader.SETRANGE("Document Type", PurchaseHeader."Document Type"::Invoice).
Thanks.
André Arnaud de Cal... 291,359 Super User 2024 Season 2
Martin Dráb 230,370 Most Valuable Professional
nmaenpaa 101,156