Miklix

Yadda za a Iterate a kan Abubuwa na Wani Enum daga X ++ Code a Dynamics AX 2012

Buga: 15 Faburairu, 2025 da 23:11:18 UTC
An sabunta ta ƙarshe: 12 Janairu, 2026 da 08:42:16 UTC

Wannan labarin ya bayyana yadda ake ƙididdigewa da kuma lanƙwasa abubuwan da ke cikin jerin tushe a cikin Dynamics AX 2012, gami da misalin lambar X++.


An fassara wannan shafin na'ura daga Turanci don a sami damar isa ga mutane da yawa gwargwadon iko. Abin takaici, fassarar inji ba ta zama cikakkiyar fasaha ba, don haka kurakurai na iya faruwa. Idan kuna so, kuna iya duba ainihin sigar Turanci anan:

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

Bayanin da ke cikin wannan sakon ya dogara ne akan Dynamics AX 2012 R3. Yana iya zama ko ba zai yi aiki ba ga wasu sigar.

Kwanan nan na ƙirƙiri wani tsari wanda ke buƙatar nuna ƙima ga kowane abu a cikin wani enum. Maimakon ƙirƙirar filayen da hannu (sannan kuma ina buƙatar kula da fom ɗin idan an taɓa gyara enum ɗin), na yanke shawarar aiwatar da shi ta atomatik ta yadda zai ƙara filayen ta atomatik zuwa ƙirar a lokacin aiki.

Duk da haka, nan da nan na gano cewa maimaita ƙimomin a cikin jerin, kodayake yana da sauƙi da zarar kun san yadda ake yi, yana da ɗan rikitarwa.

Babu shakka kana buƙatar fara da ajin DictEnum. Kamar yadda za ka gani, wannan ajin yana da hanyoyi da dama don samun bayanai kamar suna da lakabi daga fihirisa da ƙima.

Bambanci tsakanin fihirisa da ƙima shine fihirisa lambar wani abu ne a cikin fihirisa, idan an ƙidaya abubuwan enum a jere tun daga sifili, yayin da ƙima ita ce ainihin "ƙimar" abin. Kamar yadda yawancin fihirisa suna da ƙima da aka ƙidaya daga 0 a jere, fihirisa da ƙimar wani abu sau da yawa za su kasance iri ɗaya, amma tabbas ba koyaushe ba ne.

Amma ta yaya za ku san waɗanne ƙimomin da enum ke da su? Nan ne yake rikicewa. Ajin DictEnum yana da hanyar da ake kira dabi'u(). Kuna iya tsammanin wannan hanyar za ta dawo da jerin ƙimomin enum, amma hakan a bayyane yake zai yi sauƙi, don haka maimakon haka yana dawo da adadin ƙimomin da enum ke ɗauke da su. Duk da haka, adadin ƙimomin ba shi da alaƙa da ainihin ƙimomin, don haka kuna buƙatar amfani da wannan lambar a matsayin tushen kiran hanyoyin da aka dogara da fihirisa, ba waɗanda aka dogara da ƙima ba.

Da ace sun sanya wa wannan hanyar suna a maimakon haka, da ba zai zama mai rikitarwa ba ;-)

Kuma ku tuna cewa ƙimar enum (kuma a bayyane yake waɗannan "fihirisa") suna farawa daga 0, ba kamar jerin jeri da kwantenar da ke cikin X++ ba, waɗanda suka fara daga 1, don haka don madauki akan abubuwan da ke cikin enum za ku iya yin wani abu kamar haka:

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

Wannan zai fitar da alamar da lakabin kowane abu a cikin jerin zuwa ga infolog ɗin.

Karin Karatu

Idan kuna jin daɗin wannan sakon, kuna iya kuma son waɗannan shawarwari:


Raba kan BlueskyRaba akan FacebookRaba kan LinkedInRaba akan TumblrRaba akan XRaba kan LinkedInFitar akan Pinterest

Mikkel Christensen

Game da Marubuci

Mikkel Christensen
Mikel shine mahalicci kuma mai miklix.com. Yana da fiye da shekaru 20 gwaninta a matsayin ƙwararren mai tsara shirye-shiryen kwamfuta / mai haɓaka software kuma a halin yanzu yana aiki cikakken lokaci don babban kamfani na IT na Turai. Lokacin da ba ya yin rubutun ra'ayin kanka a yanar gizo ba, yana ciyar da lokacinsa a kan ɗimbin abubuwan bukatu, sha'awa, da ayyuka, waɗanda har zuwa wani lokaci za a iya nunawa a cikin batutuwa iri-iri da aka rufe akan wannan rukunin yanar gizon.