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