Miklix

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 ++.


Kaca ieu ditarjamahkeun ku mesin tina basa Inggris supados tiasa diaksés ku saloba-lobana jalma. Hanjakalna, tarjamahan mesin henteu acan janten téknologi anu sampurna, janten kasalahan tiasa lumangsung. Upami anjeun hoyong, anjeun tiasa ningali versi Inggris asli di dieu:

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:

DictEnum dictEnum = new DictEnum(enumNum(SalesStatus));
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.

Bagikeun on BlueskyBagikeun dina FacebookBagikeun on LinkedInBagikeun dina TumblrBagikeun harga XBagikeun on LinkedInPin on Pinterest

Mikkel Bang Christensen

Ngeunaan Pangarang

Mikkel Bang Christensen
Mikkel mangrupikeun panyipta sareng pamilik miklix.com. Anjeunna gaduh pangalaman langkung ti 20 taun salaku programmer komputer / pamekar software profésional sareng ayeuna padamelan full-time pikeun korporasi IT Éropa anu ageung. Nalika henteu ngeblog, anjeunna nyéépkeun waktos luangna dina sajumlah ageung minat, hobi, sareng kagiatan, anu tiasa ditingali dina rupa-rupa topik anu aya dina halaman wéb ieu.