Indlela Iterate Over the Elements of an Enum kusukela X ++ Code e Dynamics AX 2012
Kushicilelwe: Februwari 15, 2025 23:18:32 UTC
Igcine ukubuyekezwa: Januwari 12, 2026 08:42:30 UTC
Lesi sihloko sichaza indlela yokubala nokuguqula izakhi 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 sihloko lusekelwe ku-Dynamics AX 2012 R3. Lungase lusebenze noma lungasebenzeli ezinye izinguqulo.
Muva nje bengidala ifomu elidinga ukubonisa inani lento ngayinye ku-enum. Esikhundleni sokudala amasimu ngesandla (bese ngidinga ukugcina ifomu uma i-enum ike yaguqulwa), nginqume ukulisebenzisa ngokuguquguqukayo ukuze lizokwengeza ngokuzenzakalelayo amasimu kumklamo ngesikhathi sokusebenza.
Kodwa-ke, ngithole ngokushesha ukuthi empeleni ukuphindaphindeka kwamanani ku-enum, yize kulula ngokwanele uma usuyazi ukuthi kanjani, kuyadida kancane.
Kusobala ukuthi udinga ukuqala ngekilasi le-DictEnum. Njengoba uzobona, leli kilasi linezindlela eziningana zokuthola ulwazi olufana negama nelebula kusuka kokubili ku-index kanye nenani.
Umehluko phakathi kwe-index ne-value ukuthi i-index iyinombolo ye-element ku-enum, uma izakhi ze-enum zifakwe izinombolo ngokulandelana kusukela ku-zero, kuyilapho i-value iyimpahla "ye-value" yangempela ye-element. Njengoba ama-enum amaningi enamanani afakwe izinombolo ngokulandelana kusukela ku-0, i-index ne-value ye-element ivame ukufana, kodwa ngokuqinisekile hhayi njalo.
Kodwa wazi kanjani ukuthi yimaphi amanani i-enum enawo? Yilapho okudida khona. Ikilasi le-DictEnum linendlela ebizwa ngokuthi amanani(). Ungalindela ukuthi le ndlela ibuyisele uhlu lwamanani e-enum, kodwa lokho kungaba lula kakhulu, ngakho-ke esikhundleni salokho ibuyisela inani lamanani e-enum equkethe. Kodwa-ke, inani lamanani alinalutho namanani angempela, ngakho-ke udinga ukusebenzisa le nombolo njengesisekelo sokubiza izindlela ezisekelwe ku-index, hhayi lezo ezisekelwe kunani.
Ukube nje bebeqambe le ndlela ngokuthi ama-indexes() esikhundleni salokho, ngabe ayidideki kangako ;-)
Futhi khumbula ukuthi amanani e-enum (futhi ngokusobala lawa "ma-indexes") aqala ku-0, ngokungafani nama-array nama-container indexes ku-X++, aqala ku-1, ngakho-ke ukuze udlule izinto eziku-enum 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 lento ngayinye ku-enum ku-infolog.
Ukufunda Okuqhubekayo
Uma ukujabulele lokhu okuthunyelwe, ungaphinda uthande lezi ziphakamiso:
- Iphutha "Asikho isigaba semethadatha esichazwe entweni yenkontileka yedatha" ku-Dynamics AX 2012
- Ukuhlonza i-Document Class kanye nombuzo we-AIF Service ku-Dynamics AX 2012
- Guqula i-Real to String ngawo wonke ama-Decimals ku-Dynamics AX 2012
