Miklix

Dynamics AX 2012 တွင် ဒဿမများ အားလုံးဖြင့် Real တစ်ခုသို့ လိုင်းတစ်ခုသို့ ပြောင်းပါ။

ထုတ်ဝေသည်- ၂၀၂၅၊ ဖေဖော်ဝါရီ ၁၆ UTC ၁၀:၄၈:၀၀
နောက်ဆုံး မွမ်းမံပြင်ဆင်သည်- ၂၀၂၆၊ ဇန်နဝါရီ ၁၂ UTC ၀၈:၅၂:၅၀

ဒီဆောင်းပါးမှာ Dynamics AX 2012 မှာ X++ ကုဒ်ဥပမာအပါအဝင် ဒဿမအားလုံးကို ထိန်းသိမ်းထားစဉ်မှာ floating point နံပါတ်တစ်ခုကို string အဖြစ် ဘယ်လိုပြောင်းရမလဲဆိုတာ ရှင်းပြထားပါတယ်။


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

Convert a Real to String with All Decimals in Dynamics AX 2012

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

တစ်ခါတစ်ရံမှာ real number တစ်ခုကို string အဖြစ်ပြောင်းဖို့ လိုအပ်ပါတယ်။ ပုံမှန်အားဖြင့် strFmt() ကို ပေးလိုက်ရုံနဲ့ လုံလောက်ပါတယ်၊ ဒါပေမယ့် အဲဒီ function က အမြဲတမ်း ဒဿမနှစ်ခုအဖြစ် လုံးလိုက်ပါတယ်၊ အဲဒါက ကျွန်တော် အမြဲတမ်း လိုချင်တာ မဟုတ်ပါဘူး။

ပြီးတော့ num2str() function လည်း ရှိပါတယ်၊ သူက ကောင်းကောင်းအလုပ်လုပ်ပါတယ်၊ ဒါပေမယ့် သင်လိုချင်တဲ့ ဒဿမကိန်းနဲ့ စာလုံးအရေအတွက်ကို ကြိုတင်သိထားဖို့ လိုအပ်ပါတယ်။

ဂဏန်းကို ဂဏန်းနဲ့ ဒဿမအားလုံးပါတဲ့ စာကြောင်းတစ်ကြောင်းအဖြစ် ပြောင်းချင်ရင်ကော။ ဘာကြောင့်မှန်းမသိပေမယ့် ဒါက ကျွန်တော် Google မှာ အမြဲရှာနေရတဲ့ အရာတစ်ခုပါ။ ဘာလို့လဲဆိုတော့ အံ့သြစရာကောင်းလောက်အောင် လုပ်ဖို့ ခက်ပြီး ကျွန်တော်လည်း ရှားရှားပါးပါးပဲ လုပ်တာမို့ ဘယ်လိုလုပ်ရမှန်းတောင် မမှတ်မိတော့ဘူး - ပရိုဂရမ်းမင်းဘာသာစကားအများစုမှာ အစစ်အမှန်ကို ဗလာစာကြောင်းတစ်ကြောင်းနဲ့ ပေါင်းစပ်လိုက်ရုံပဲလို့ မျှော်လင့်ထားပေမယ့် X++ ကတော့ အဲဒါကို မပံ့ပိုးပါဘူး။

ဘာပဲဖြစ်ဖြစ်၊ ဒါကိုလုပ်ဖို့ အလွယ်ဆုံးနည်းလမ်းကတော့ .NET call ကိုသုံးတာပါပဲ။ advanced formatting အတွက် option တွေပါတာရော၊ မပါဘူးရော ရွေးချယ်စရာတွေ အများကြီးရှိပါတယ်၊ ဒါပေမယ့် real ကနေ string ကို ရိုးရှင်းစွာပြောင်းလဲချင်တယ်ဆိုရင်တော့ ဒါလောက်နဲ့ လုံလောက်ပါတယ်။

stringValue = System.Convert::ToString(realValue);

ဒီကုဒ်ကို AOS မှာ run မယ်ဆိုရင် (ဥပမာ batch job မှာ) လိုအပ်တဲ့ code access permission ကို ဦးစွာ assert လုပ်ဖို့ မမေ့ပါနဲ့။ ဒီကိစ္စမှာ .NET ကုဒ်ကိုခေါ်ဖို့ ClrInterop အမျိုးအစား InteropPermission လိုအပ်ပါလိမ့်မယ်၊ ဒါကြောင့် ကုဒ်ဥပမာအပြည့်အစုံက ဒီလိုဖြစ်ပါလိမ့်မယ်။

new InteropPermission(InteropKind::ClrInterop).assert();
stringValue = System.Convert::ToString(realValue);
CodeAccessPermission::revertAssert();

ဒီရိုးရှင်းတဲ့ System::Convert function က decimal point character နဲ့ ပတ်သက်ပြီး system ရဲ့ လက်ရှိ locale ကို အသုံးပြုတယ်ဆိုတာ သတိပြုပါ။ ဒါက သင့်အတွက် ပြဿနာမရှိပေမယ့် decimal separator အနေနဲ့ period အစား comma ကို အသုံးပြုတဲ့ နေရာမှာ နေထိုင်တဲ့ ကျွန်တော့်အတွက်တော့ ဥပမာအားဖြင့် တခြား system တွေက ဖတ်လို့ရမယ့် file တစ်ခုမှာ string ကို အသုံးပြုဖို့ လိုအပ်ရင် နောက်ထပ် processing လိုအပ်နိုင်ပါတယ်။

နောက်ထပ်စာဖတ်ခြင်း။

ဤပို့စ်ကို သင်နှစ်သက်ပါက၊ ဤအကြံပြုချက်များကို သင်လည်း နှစ်သက်နိုင်ပါသည်-


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

Mikkel Christensen

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

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