
I am trying to sort the records of Item Ledger Entry to give me the expiration date as the earliest date relative to today().
If there are 2 records let us say in ILE
Entry No, Item No, Expiration Date
1, itm01, 5th of October 2020
2, itm02, 10th of October 2020
3, itm03, 11th of September 2020
I want it to be sorted as;
3, itm03, 11th of September 2020
1, itm01, 5th of October 2020
2, itm02, 10th of October 2020
so earliest expiry record first;
local procedure ReturnSortedExpiration(recSalesLine: Record "Sales Line"; Var sortedarr: array[100] of Integer)
var
rec_itemLedgerEntry: Record "Item Ledger Entry";
i: Integer;
begin
Clear(i);
Clear(sortedarr);
i := 1;
rec_itemLedgerEntry.Reset();
rec_itemLedgerEntry.SetCurrentKey("Item No.", "Expiration Date");
rec_itemLedgerEntry.SetAscending("Expiration Date", false);
rec_itemLedgerEntry.SetRange("Entry Type", rec_itemLedgerEntry."Entry Type"::Purchase);
rec_itemLedgerEntry.SetRange("Item No.", recSalesLine."No.");
rec_itemledgerentry.SetRange("Location Code", recSalesLine."Location Code");
if rec_itemLedgerEntry.FindSet() then begin
repeat
sortedarr[i] := rec_itemLedgerEntry."Entry No.";
i := i 1;
until rec_itemLedgerEntry.Next() = 0;
end;
end;
However, I do not get the desired result.
Perhaps a query object is a good idea as an alternative to what you have already: docs.microsoft.com/.../devenv-query-totals-grouping