Miklix

Cara Ngulangi Elemen Enum saka Kode X++ ing Dynamics AX 2012

Diterbitake: 15 Februari 2025 ing 23:11:21 UTC
Dianyari pungkasan: 12 Januari 2026 ing 08:42:21 UTC

Artikel iki njelasake carane ngetung lan ngulang elemen enum dhasar ing Dynamics AX 2012, kalebu conto kode X++.


Kaca iki diterjemahake mesin saka basa Inggris supaya bisa diakses dening akeh wong. Sayange, terjemahan mesin durung dadi teknologi sing sampurna, mula kesalahan bisa kedadeyan. Yen sampeyan seneng, sampeyan bisa ndeleng versi Inggris asli ing kene:

How to Iterate Over the Elements of an Enum from X++ Code in Dynamics AX 2012

Informasi ing kiriman iki adhedhasar Dynamics AX 2012 R3. Iki bisa uga valid utawa ora valid kanggo versi liyane.

Aku bubar nggawe formulir sing kudu nampilake nilai kanggo saben elemen ing enum. Tinimbang nggawe kolom kanthi manual (banjur kudu njaga formulir kasebut yen enum kasebut diowahi), aku mutusake kanggo ngetrapake kanthi dinamis supaya bisa kanthi otomatis nambahake kolom menyang desain nalika wektu mlaku.

Nanging, aku ora suwe nemokake yen ngulang nilai ing enum, sanajan cukup gampang yen sampeyan ngerti carane, rada mbingungake.

Sampeyan mesthi kudu miwiti karo kelas DictEnum. Kaya sing bakal sampeyan deleng, kelas iki duwe sawetara cara kanggo entuk informasi kayata jeneng lan label saka indeks lan nilai.

Bedane antarane indeks lan nilai yaiku indeks minangka nomer elemen ing enum, yen elemen enum kasebut diwenehi nomer kanthi runtut wiwit saka nol, dene nilai minangka properti "nilai" elemen kasebut. Amarga umume enum duwe nilai sing diwenehi nomer kanthi runtut wiwit saka 0, indeks lan nilai elemen asring padha, nanging mesthi ora mesthi.

Nanging kepiye carane ngerti nilai endi sing diduweni enum? Ing kene iki dadi bingung. Kelas DictEnum duwe metode sing diarani values(). Sampeyan bisa uga ngarepake metode iki bakal ngasilake dhaptar nilai enum, nanging mesthi bakal gampang banget, mula tinimbang ngasilake jumlah nilai sing ana ing enum. Nanging, jumlah nilai ora ana hubungane karo nilai sing nyata, mula sampeyan kudu nggunakake nomer iki minangka dhasar kanggo nelpon metode adhedhasar indeks, dudu sing adhedhasar nilai.

Saupama waé cara iki dijenengi indexes() waé, mesthiné bakal luwih gampang mbingungaké ;-)

Uga elinga yen nilai enum (lan ketoke "indeks" iki) diwiwiti saka 0, ora kaya indeks array lan kontainer ing X++, sing diwiwiti saka 1, mula kanggo ngulang elemen ing enum sampeyan bisa nindakake kaya iki:

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)));
}

Iki bakal ngasilake simbol lan label saben elemen ing enum menyang infolog.

Wacan Salajengipun

Yen sampeyan seneng karo kiriman iki, sampeyan bisa uga seneng saran iki:


Nuduhake ing BlueskyNuduhake ing FacebookNuduhake ing LinkedInNuduhake ing TumblrNuduhake ing XNuduhake ing LinkedInPin ing Pinterest

Mikkel Christensen

Babagan Penulis

Mikkel Christensen
Mikkel minangka pencipta lan pemilik miklix.com. Dheweke duwe pengalaman luwih saka 20 taun minangka programmer komputer / pangembang piranti lunak profesional lan saiki kerja full-time kanggo perusahaan IT Eropa sing gedhe. Nalika ora ngeblog, dheweke mbuwang wektu luang kanggo macem-macem minat, hobi, lan kegiatan, sing bisa uga katon ing macem-macem topik sing dibahas ing situs web iki.