Announcements
Say I have a dictionary: { 'a':0, 'b':2, 'c':3 }. Can this be turned into two columns where one column are the keys, and the values for the other?
column(chars; chars){}
column(ints; ints){}
Hi, 'm not sure what your specific needs are, but here's a simple example that hopefully will give you some hints.
page 50100 TestPageForDictionary { Caption = 'Test Page For Dictionary'; PageType = List; UsageCategory = Lists; ApplicationArea = All; Editable = false; SourceTable = TestTableForDictionary; layout { area(Content) { repeater(Group) { field(DictionaryKey; Rec.DictionaryKey) { ApplicationArea = All; } field(DictionaryValue; Rec.DictionaryValue) { ApplicationArea = All; } } } } trigger OnOpenPage() begin InsertColumns(); end; local procedure InsertColumns() var Dict: Dictionary of [Text, Integer]; KeyText: Text; IntValue: Integer; begin Dict.Add('a', 0); Dict.Add('b', 2); Dict.Add('c', 3); foreach KeyText in Dict.Keys do begin Rec.Init(); Rec.DictionaryKey := KeyText; Rec.DictionaryValue := Format(Dict.Get(KeyText)); Rec.Insert(); end; end; } table 50100 TestTableForDictionary { DataClassification = CustomerContent; fields { field(1; DictionaryKey; Text[50]) { DataClassification = CustomerContent; } field(2; DictionaryValue; Text[50]) { DataClassification = CustomerContent; } } keys { key(Key1; DictionaryKey) { Clustered = true; } } }
Thanks.
ZHU
HI yzhums , I am now in the process of trying to insert the keys and values into two columns. Not sure how to go about that.
Hi, you can try to use Foreach method.
Using this method you can get the key and value separately. Then insert them into the columns you want to use.
For example:
pageextension 50100 MyExtension extends "Customer List" { trigger OnOpenPage() begin Test(); end; local procedure Test() var Dict: Dictionary of [Text, Integer]; KeyText: Text; IntValue: Integer; begin Dict.Add('a', 0); Dict.Add('b', 2); Dict.Add('c', 3); foreach KeyText in Dict.Keys do begin Message(Format(KeyText)); Message(Format(Dict.Get(KeyText))); end; end; }
Hope this helps.
Thanks.
ZHU
André Arnaud de Cal... 291,359 Super User 2024 Season 2
Martin Dráb 230,370 Most Valuable Professional
nmaenpaa 101,156