Kumaha Ngulangkeun Unsur-unsur Enum tina Kode X ++ dina Dinamika AX 2012
Diterbitkeun: 15 Pébruari 2025 jam 23.16.06 UTC
Artikel ieu ngécéskeun kumaha enumerate na loop leuwih elemen dasar enum dina Dinamika AX 2012, kaasup hiji conto kode X ++.
How to Iterate Over the Elements of an Enum from X++ Code in Dynamics AX 2012
Inpormasi dina tulisan ieu dumasar kana Dynamics AX 2012 R3. Ieu bisa atawa bisa jadi teu valid pikeun vérsi séjén.
Kuring ieu nembe nyieun formulir nu diperlukeun pikeun nembongkeun hiji nilai pikeun tiap unsur dina enum. Tinimbang sacara manual nyiptakeun sawah (teras peryogi ngajaga bentuk upami enum parantos dirobih), kuring mutuskeun pikeun nerapkeun éta sacara dinamis supados sacara otomatis nambihan widang kana desain dina waktos jalan.
Najan kitu, kuring geura-giru manggihan yén sabenerna iterating leuwih nilai dina enum, bari cukup gampang sakali anjeun terang kumaha, nyaeta bit ngabingungkeun.
Anjeun écés kudu mimitian ku kelas DictEnum. Sakumaha anjeun tiasa tingali, kelas ieu ngagaduhan sababaraha metode pikeun kéngingkeun inpormasi sapertos nami sareng labél tina indéks sareng nilai.
Beda antara indéks jeung nilai éta indéks mangrupa angka unsur dina enum, lamun elemen enum urang anu wilanganana sequentially mimitian ti enol, bari nilai sabenerna unsur "nilai" sipat. Salaku paling enums boga nilai wilanganana sequentially ti 0, indéks jeung nilai unsur mindeng bakal sarua, tapi pasti moal salawasna .
Tapi kumaha anjeun terang mana nilai anu enum? Ieu dimana eta meunang ngabingungkeun. Kelas DictEnum gaduh metode anu disebut nilai (). Anjeun bisa ngaharepkeun metoda ieu balik daptar nilai nu enum urang, tapi éta écés bakal teuing gampang, jadi gantina eta mulih jumlah nilai nu enum ngandung. Sanajan kitu, jumlah nilai boga nanaon ngalakukeun jeung nilai sabenerna, jadi Anjeun kudu make angka ieu salaku dadasar pikeun nelepon métode dumasar-indéks, teu dumasar-nilai.
Upami ngan ukur aranjeunna namina metode ieu indexes () tibatan, éta bakal kirang ngabingungkeun ;-)
Émut ogé yén nilai-nilai enum (sareng sigana "indeks") ieu dimimitian dina 0, teu sapertos indéks Asép Sunandar Sunarya sareng wadahna dina X ++, anu mimitian jam 1, ku kituna pikeun ngulang unsur-unsur dina enum anjeun tiasa ngalakukeun sapertos kieu:
Counter c;
;
for (c = 0; c < dictEnum.values(); c++)
{
info(strFmt('%1: %2', dictEnum.index2Symbol(c), dictEnum.index2Label(c)));
}
Ieu bakal kaluaran simbol jeung labél unggal unsur dina enum ka infolog nu.