Morning, this should be simple but its evading me, hope someone can help
I am creating a report for "Item Ledger Entries", and for each record, i want to find another record in "Item Ledger Entries" based on fields from my report record.
To explain, currently I return a list of Item Ledger Entries, based on a specific customer and "document Type" "Sales Shipment" .. i then use the C/AL trigger "OnAfterGetREcord()" to take the serial number and return another record in the Item Ledger Entries, but this time with the "Document Type" of "Purchase Receipt" ..
I'm doing it this way as there is no clear relationship between the Purchase receipt of a given serialnumbered item, and the subsequent Sales Shipment of the same serial number. But i keep getting "Syntax error" when setting the second SETFILTER (i'm new to C/AL coding but that's not a brilliant error code unless i'm looking in the wrong place!)
I understand from research that SetFilter overwrites previous SetFilter statements but in that case i cant easily understand how to apply two filters ?
I have a global set for "Item Ledger entry" named ILERec ... and i have only one dataitem in my dataset, which is again "Item Ledger Entry"
Item Ledger Entry - OnAfterGetRecord()
ILERec.SETRANGE("Serial No.","Serial No.")
ILERec.SETRANGE("Document Type",Rec."Document Type"::"Purchase Receipt")
IF ILERec.FINDFIRST THEN
MESSAGE(Text000 + ILERec."Document No.")
ELSE
MESSAGE(Text001 + ILERec."Document No.")
Answers
And in your second filter, you might wanna use ILERec instead of Rec when selecting Document Type option, i.e.
Setfilter statements will only overwrite eachother if it's on the same key, i.e:
Will set both filters and not overwrite eachother, for more info see the microsoft documentation on setfilter.