Miklix

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

Diterbitake: 15 Februari 2025 ing 23:11:21 UTC

Artikel iki nerangake carane enumerate lan daur ulang liwat unsur 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 kirim iki adhedhasar Dynamics AX 2012 R3. Bisa uga ora bener kanggo versi liyane.

Aku bubar nggawe formulir sing perlu kanggo nampilake nilai kanggo saben unsur ing enum. Tinimbang nggawe lapangan kanthi manual (banjur kudu njaga formulir kasebut yen enum wis diowahi), aku mutusake kanggo ngetrapake kanthi dinamis supaya kanthi otomatis nambah lapangan menyang desain nalika mbukak.

Nanging, aku rauh katutup sing bener iterating liwat nilai ing enum, nalika cukup gampang yen ngerti carane, punika dicokot bingung.

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

Bentenipun antarane indeks lan nilai yaiku indeks minangka nomer unsur ing enum, yen unsur enum diwenehi nomer urut saka nol, dene nilai kasebut minangka properti "nilai" sing nyata. Minangka paling enums duwe angka urutan saka 0, indeks lan nilai saka unsur bakal asring padha, nanging mesthi ora tansah .

Nanging kepiye sampeyan ngerti nilai enum? Iki ngendi dadi bingung. Kelas DictEnum nduweni metode sing diarani nilai (). Sampeyan bisa uga nyana cara iki ngasilake dhaptar nilai enum, nanging mesthi gampang banget, mula bakal ngasilake jumlah nilai sing ana ing enum. Nanging, jumlah nilai ora ana hubungane karo nilai sing nyata, mula sampeyan kudu nggunakake nomer kasebut minangka basis kanggo nelpon metode basis indeks, dudu metode adhedhasar nilai.

Yen mung padha ngarani metode iki indeks () tinimbang, mesthine ora mbingungake ;-)

Uga elinga yen nilai enum (lan ketoke "indeks") iki diwiwiti ing 0, ora kaya indeks array lan wadah ing X++, sing diwiwiti ing 1, supaya bisa ngubengi unsur 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 unsur ing enum menyang infolog.

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

Mikkel Bang Christensen

Babagan Penulis

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