Miklix

Dynamics AX 2012 တွင် X++ ကုဒ်မှ Enum ၏ဒြပ်စင်များကို မည်သို့ပြန်ဆိုရမည်နည်း။

ထုတ်ဝေသည်- ၂၀၂၅၊ ဖေဖော်ဝါရီ ၁၅ UTC ၂၃:၁၈:၃၁

ဤဆောင်းပါးသည် X++ ကုဒ်နမူနာအပါအဝင် Dynamics AX 2012 ရှိ အခြေခံ enum ၏ဒြပ်စင်များကို ကိန်းဂဏာန်းနှင့်လှည့်ပတ်နည်းကို ရှင်းပြထားသည်။


ဤစာမျက်နှာကို လူများတတ်နိုင်သမျှ ဝင်ရောက်ကြည့်ရှုနိုင်စေရန်အတွက် ဤစာမျက်နှာကို အင်္ဂလိပ်မှ စက်ဖြင့် ဘာသာပြန်ထားခြင်းဖြစ်ပါသည်။ ကံမကောင်းစွာဖြင့်၊ စက်ဘာသာပြန်ခြင်းသည် ပြီးပြည့်စုံသောနည်းပညာမဟုတ်သေးသောကြောင့် အမှားအယွင်းများဖြစ်ပေါ်လာနိုင်သည်။ သင်နှစ်သက်ပါက မူရင်းအင်္ဂလိပ်ဗားရှင်းကို ဤနေရာတွင် ကြည့်ရှုနိုင်ပါသည်။

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

ဤပို့စ်ရှိ အချက်အလက်သည် Dynamics AX 2012 R3 ကို အခြေခံထားသည်။ ၎င်းသည် အခြားဗားရှင်းများအတွက် တရားဝင်နိုင်သည် သို့မဟုတ် မမှန်နိုင်ပါ။

မကြာသေးမီက ကျွန်ုပ်သည် enum တစ်ခုရှိ element တစ်ခုစီအတွက် တန်ဖိုးတစ်ခုပြသရန် လိုအပ်သော ပုံစံတစ်ခုကို ဖန်တီးနေပါသည်။ အကွက်များကို ကိုယ်တိုင်ဖန်တီးမည့်အစား (ထို့နောက် enum ကို အစဉ်မွမ်းမံထားပါက ဖောင်ကို ထိန်းသိမ်းထားရန် လိုအပ်သည်)၊ ၎င်းကို လည်ပတ်နေချိန်တွင် ဒီဇိုင်းတွင် အကွက်များကို အလိုအလျောက်ထည့်သွင်းနိုင်ရန် ၎င်းကို dynamically အကောင်အထည်ဖော်ရန် ဆုံးဖြတ်ခဲ့သည်။

သို့သော်၊ သင်မည်သို့သိသည်နှင့်တစ်ပြိုင်နက် enum မှတန်ဖိုးများကိုအမှန်တကယ်ထပ်လောင်းခြင်းသည်အနည်းငယ်ရှုပ်ထွေးကြောင်းမကြာမီငါရှာဖွေတွေ့ရှိခဲ့သည်။

သင်သည် DictEnum အတန်းဖြင့် စတင်ရန် လိုအပ်သည်မှာ ထင်ရှားသည်။ သင်တွေ့မြင်ရသည့်အတိုင်း၊ ဤအတန်းတွင် အညွှန်းနှင့်တန်ဖိုး နှစ်ခုလုံးမှ အမည်နှင့် အညွှန်းကဲ့သို့သော အချက်အလက်များကို ရယူရန် နည်းလမ်းများစွာရှိသည်။

အညွှန်းနှင့်တန်ဖိုးအကြား ကွာခြားချက်မှာ အညွှန်းကိန်းသည် enum ၏ဒြပ်စင်တစ်ခုဖြစ်ပြီး၊ အကယ်၍ enum ၏ဒြပ်စင်များကို သုညမှစတင်၍ ဆက်တိုက်ရေတွက်ခဲ့လျှင် တန်ဖိုးသည် ဒြပ်စင်၏အမှန်တကယ် "တန်ဖိုး" ပိုင်ဆိုင်မှုဖြစ်သည်။ ကိန်းဂဏန်းအများစုတွင် 0 မှ ဆက်တိုက်ရေတွက်ထားသော တန်ဖိုးများဖြစ်သောကြောင့်၊ ဒြပ်စင်တစ်ခု၏ အညွှန်းကိန်းနှင့် တန်ဖိုးသည် မကြာခဏ အတူတူပင်ဖြစ်သော်လည်း အမြဲတမ်း မဟုတ်သည်မှာ သေချာပါသည်။

ဒါပေမယ့် ကိန်းတစ်ခုရဲ့တန်ဖိုးတွေကို ဘယ်လိုသိနိုင်မလဲ။ ဒီနေရာက စိတ်ရှုပ်စရာပါ။ DictEnum အတန်းတွင် values() ဟုခေါ်သော method တစ်ခုရှိသည်။ ဤနည်းလမ်းသည် enum ၏တန်ဖိုးများစာရင်းကိုပြန်ပေးရန်မျှော်လင့်နိုင်သည်၊ သို့သော်၎င်းသည်အလွန်လွယ်ကူမည်မှာသေချာသည်၊ ထို့ကြောင့်၎င်းအစား enum ပါရှိသော တန်ဖိုးများကို ပြန်ပေးသည်။ သို့သော်၊ တန်ဖိုးအရေအတွက်များသည် တကယ့်တန်ဖိုးများနှင့် ဘာမှမဆိုင်ပါ၊ ထို့ကြောင့် ဤနံပါတ်ကို တန်ဖိုးအခြေခံသည့်နည်းလမ်းများမဟုတ်ဘဲ ညွှန်းကိန်းအခြေခံနည်းလမ်းများကိုခေါ်ဆိုရန်အတွက် အခြေခံအဖြစ် သင်အသုံးပြုရန်လိုအပ်ပါသည်။

အကယ်၍ ၎င်းတို့သည် ဤနည်းလမ်းကို indexes() ဟူ၍သာ အမည်ပေးခဲ့ပါက၊ ၎င်းသည် ရှုပ်ထွေးမှုနည်းပါးလိမ့်မည် ;-)

enum တန်ဖိုးများ (ထင်ရှားသည်မှာ ဤ "အညွှန်းကိန်းများ") သည် 1 မှစတင်သည့် X++ ရှိ array နှင့် container indexes များနှင့်မတူဘဲ 0 မှစတင်သည်၊ ထို့ကြောင့် enum တစ်ခုရှိ element များကို loop ပတ်ရန်အတွက်သင်ဤကဲ့သို့လုပ်ဆောင်နိုင်သည်-

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

၎င်းသည် enum ရှိ ဒြပ်စင်တစ်ခုစီ၏ သင်္ကေတနှင့် အညွှန်းကို အင်ဖိုလော့ဂ်သို့ ထုတ်ပေးမည်ဖြစ်သည်။

Bluesky တွင်မျှဝေပါ။Facebook တွင်မျှဝေပါ။LinkedIn တွင်မျှဝေပါ။Tumblr တွင်မျှဝေပါ။X တွင်မျှဝေပါ။LinkedIn တွင်မျှဝေပါ။ပင်တရက်စ်တွင် ပင်ထားပါ

မိုက်ကယ်ဘန်ခရစ္စတင်း

စာရေးသူအကြောင်း

မိုက်ကယ်ဘန်ခရစ္စတင်း
မိုက်ကယ် သည် miklix.com ၏ ဖန်တီးရှင်နှင့် ပိုင်ရှင်ဖြစ်သည်။ သူသည် ပရော်ဖက်ရှင်နယ် ကွန်ပြူတာ ပရိုဂရမ်မာ/ဆော့ဖ်ဝဲလ် တီထွင်သူအဖြစ် နှစ်ပေါင်း 20 ကျော် အတွေ့အကြုံရှိပြီး ဥရောပ အိုင်တီကော်ပိုရေးရှင်းကြီးတစ်ခုတွင် လက်ရှိအချိန်ပြည့် အလုပ်ခန့်ထားသည်။ ဘလော့ဂ်မရေးဖြစ်သောအခါတွင် သူသည် ၎င်း၏အားလပ်ချိန်များကို စိတ်ဝင်စားမှု၊ ဝါသနာနှင့် လှုပ်ရှားမှုများစွာတွင် ဖြုန်းတီးခဲ့ပြီး၊ ဤဝဘ်ဆိုက်တွင် ဖော်ပြထားသော အကြောင်းအရာမျိုးစုံကို အတိုင်းအတာတစ်ခုအထိ ထင်ဟပ်စေနိုင်သည်။