Announcements
Hi Everyone
I have a case in which I need distinct Values from a list.
The common approach to get a unique collection of items is to use a set
. Sets are unordered collections of distinct objects.
Is there a set method in AL ? If not, what would be the common approach ?
Thank you very much for your answer.
Thank you Ashish and Lars
I actually used the List Type as follows:
If ItemVariant.FindFirst() then begin
repeat
Colorlist.add(ItemVariant.Farbe);
until ItemVariant.next = 0;
end;
//Check unique
For i := 1 to ColorList.Count do begin
ContainValue := ColorList.Get(i);
Result := IsUnique.Contains(ContainValue);
if Result = False then
IsUnique.Add(ContainValue);
end;
This worked, thank you both, now I know that I'm on the right way in order to get such values :)
+1 to Ashis' idea.
I am not sure what a set is, but it sounds like a list which we have in BC, example:
codeunit 50107 Test
{
trigger OnRun()
begin
customer.FindSet();
repeat
if not MyList.Contains(Customer.Name) then
MyList.Add(customer.Name);
until Customer.Next() = 0;
end;
var
Customer: Record Customer;
MyList: List of [text];
}
More about List datatype here:
You can do it by writing some code
Item.RESET;
Item.SETCURRENTKEY("Name");
IF item.FINDSET THEN REPEAT
IF prevItemname = item.Name THEN
Previtemname := item.Name;
UNTIL(Item.NEXT=0);
may be it can help
André Arnaud de Cal... 291,359 Super User 2024 Season 2
Martin Dráb 230,370 Most Valuable Professional
nmaenpaa 101,156