Miklix

Indlela Iterate Over the Elements of an Enum kusukela X ++ Code e Dynamics AX 2012

Kushicilelwe: 15 Pébruari 2025 jam 23.18.32 UTC

Lesi sihloko sichaza indlela yokubala kanye ne-loop phezu kwezinto ze-base enum ku-Dynamics AX 2012, kufaka phakathi isibonelo sekhodi ye-X ++.


Leli khasi lihunyushwe ngomshini lisuka esiNgisini ukuze lenze lifinyeleleke kubantu abaningi ngangokunokwenzeka. Ngeshwa, ukuhumusha ngomshini akukabi ubuchwepheshe obuphelele, ngakho-ke amaphutha angenzeka. Uma uthanda, ungabuka inguqulo yokuqala yesiNgisi lapha:

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

Ulwazi olukulesi sithuba lusekelwe ku-Dynamics AX 2012 R3. Kungenzeka noma kungabi semthethweni kwezinye izinguqulo.

Muva nje ngidala ifomu elidinga ukubonisa inani le-elementi ngayinye ngonyaka. Esikhundleni sokudala ngesandla amasimu (bese ngidinga ukugcina ifomu uma i-enum ike yaguqulwa), nganquma ukuyisebenzisa ngamandla ukuze ingeze ngokuzenzakalelayo amasimu kumklamo ngesikhathi sokugijima.

Kodwa-ke, ngokushesha ngathola ukuthi empeleni ukuphindaphinda phezu kwamagugu ngonyaka, ngenkathi kulula ngokwanele uma wazi ukuthi kanjani, kuyadida kancane.

Ngokusobala udinga ukuqala ngeklasi le-DictEnum. Njengoba uzobona, leli klasi linezindlela eziningana zokuthola ulwazi olufana negama nelebula kusuka kokubili inkomba nenani.

Umehluko phakathi kwenkomba nenani wukuthi inkomba iyinombolo ye-elementi ku-enum, uma izakhi ze-enum zazibalwa ngokulandelana kusukela ku-zero, kuyilapho inani liyimpahla yangempela "yenani" ye-element. Njengoba iningi le-enums linamagugu abalwe ngokulandelana kusuka ku-0, inkomba kanye nenani le-elementi ngokuvamile kuzofana, kodwa ngokuqinisekile hhayi ngaso sonke isikhathi.

Kodwa wazi kanjani ukuthi yimaphi amagugu i-enum enawo? Kulapho kudida khona. Iklasi le-DictEnum linendlela ebizwa ngokuthi amagugu(). Ungalindela ukuthi le ndlela ibuyise uhlu lwamanani e-enum, kodwa lokho ngokusobala kungaba lula kakhulu, ngakho-ke esikhundleni salokho ibuyisela inani lamanani aqukethe i-enum. Kodwa-ke, inani lamanani alihlangene nalutho namanani angempela, ngakho-ke udinga ukusebenzisa le nombolo njengesisekelo sokubiza izindlela ezisekelwe kwinkomba, hhayi ezisekelwe enanini.

Ukuba nje babeqambe lezi zinkomba zendlela() esikhundleni salokho, bekuyoba ngaphansi kokudida ;-)

Futhi khumbula ukuthi amanani e-enum (futhi ngokusobala lezi "zinkomba") aqala ku-0, ngokungafani nezinkomba ze-array neziqukathi ku-X ++, eziqala ku-1, ngakho-ke ukuze u-loop phezu kwezinto ngonyaka ungenza into efana nale:

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

Lokhu kuzokhipha uphawu kanye nelebula le-elementi ngayinye ku-enum ku-infolog.

Yabelana ku-BlueskyYabelana ku-FacebookYabelana ku-LinkedInYabelana ku-TumblrYabelana ku-XYabelana ku-LinkedInPhina ku-Pinterest

Mikkel Bang Christensen

Mayelana Nombhali

Mikkel Bang Christensen
U-Mikkel ungumdali nomnikazi we-miklix.com. Unesipiliyoni seminyaka engaphezu kwengu-20 njengochwepheshe bezinhlelo zekhompyutha/unjiniyela wesoftware futhi njengamanje uqashwe ngokugcwele enkampanini enkulu ye-IT yaseYurophu. Lapho engabhali, uchitha isikhathi sakhe sokuphumula ezintweni eziningi azithandayo, azilibazisa, nemisebenzi, okungenzeka ngokwezinga elithile ibonakale ezihlokweni ezihlukahlukene ezitholakala kule webhusayithi.