Miklix

Kumaha Ngulangkeun Unsur-unsur Enum tina Kode X ++ dina Dinamika AX 2012

Diterbitkeun: 15 Pébruari 2025 jam 23.16.06 UTC
Panungtungan diropéa: 12 Januari 2026 jam 8.42.27 UTC

Artikel ieu ngajelaskeun kumaha carana ngadaptar sareng ngulang unsur-unsur enum dasar dina Dynamics AX 2012, kalebet 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. Éta tiasa valid atanapi henteu pikeun vérsi anu sanés.

Kuring nembe nyieun formulir anu kedah nampilkeun nilai pikeun unggal unsur dina enum. Tinimbang nyieun kolom sacara manual (terus kedah ngajaga formulir upami enum kantos dirobih), kuring mutuskeun pikeun nerapkeunana sacara dinamis supados sacara otomatis nambihan kolom kana desain nalika waktos dijalankeun.

Nanging, kuring teu lila mendakan yén ngulang-ngulang nilai dina enum, sanaos gampang sakali anjeun terang kumaha carana, rada ngabingungkeun.

Anjeun tangtosna kedah ngamimitian ku kelas DictEnum. Sakumaha anu anjeun bakal tingali, kelas ieu ngagaduhan sababaraha metode pikeun kéngingkeun inpormasi sapertos nami sareng labél tina indéks sareng nilai.

Bédana antara indéks sareng nilai nyaéta indéks nyaéta nomer hiji élémen dina enum, upami élémen enum dinomeran sacara runtut dimimitian ti nol, sedengkeun nilai nyaéta sipat "nilai" élémen anu saleresna. Kusabab kalolobaan enum gaduh nilai anu dinomeran sacara runtut ti 0, indéks sareng nilai hiji élémen sering sami, tapi pastina henteu salawasna.

Tapi kumaha anjeun terang nilai mana anu dipiboga ku hiji enum? Di dieu pisan matak bingung. Kelas DictEnum gaduh metode anu disebut values(). Anjeun panginten ngarepkeun metode ieu bakal mulangkeun daptar nilai enum, tapi éta tangtosna bakal gampang teuing, janten gantina mulangkeun jumlah nilai anu dikandung ku enum. Nanging, jumlah nilai teu aya hubunganana sareng nilai anu saleresna, janten anjeun kedah nganggo nomer ieu salaku dasar pikeun nyauran metode anu berbasis indéks, sanés anu berbasis nilai.

Saupama waé maranéhna méré ngaran métode ieu indexes() , tangtu bakal leuwih gampang ngabingungkeun ;-)

Ogé émut yén nilai enum (sareng sigana "indéks" ieu) dimimitian ti 0, teu sapertos indéks array sareng wadah dina X++, anu dimimitian ti 1, janten pikeun ngulang unsur-unsur dina enum anjeun tiasa ngalakukeun hal 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 ngaluarkeun simbol sareng labél unggal unsur dina enum ka infolog.

Bacaan salajengna

Upami anjeun resep kana tulisan ieu, anjeun ogé tiasa resep saran ieu:


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

Mikkel Christensen

Ngeunaan Pangarang

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