Dynamics AX 2012 တွင် Macro နှင့် strFmt ဖြင့် စာကြောင်းဖော်မတ်ခြင်း။
ထုတ်ဝေသည်- ၂၀၂၅၊ ဖေဖော်ဝါရီ ၁၆ UTC ၀၀:၅၃:၀၃
နောက်ဆုံး မွမ်းမံပြင်ဆင်သည်- ၂၀၂၆၊ ဇန်နဝါရီ ၁၂ UTC ၀၈:၄၄:၅၁
ဤဆောင်းပါးသည် strFmt တွင် format string အဖြစ် macro ကိုအသုံးပြုသောအခါ Dynamics AX 2012 တွင်ထူးခြားသောအပြုအမူအချို့အပြင် ၎င်းနှင့်မည်သို့လုပ်ဆောင်ရမည်ဆိုင်ရာ ဥပမာများကိုဖော်ပြထားသည်။
String Formatting with Macro and strFmt in Dynamics AX 2012
ဤပို့စ်ရှိ အချက်အလက်များသည် Dynamics AX 2012 R3 ကို အခြေခံထားသည်။ အခြားဗားရှင်းများအတွက် မှန်ကန်နိုင်သည် သို့မဟုတ် မမှန်ကန်နိုင်ပါ။
မကြာသေးခင်က strFmt function မှာ ပြဿနာတစ်ခုနဲ့ ကြုံခဲ့ရလို့ ခဏလောက် ဇဝေဇဝါဖြစ်မိတယ်။ အထူးဆန်းဆုံးကတော့ Axapta/Dynamics AX developer အနေနဲ့ နှစ်ပေါင်းများစွာ တာဝန်ထမ်းဆောင်ခဲ့တဲ့ ကာလအတွင်း ထူးဆန်းတဲ့ တိုက်ဆိုင်မှုတစ်ခုကြောင့် ဒီလိုပြဿနာမျိုး တစ်ခါမှ မကြုံဖူးတာပါပဲ။
ပြဿနာက strFmt function အတွက် format string အဖြစ် macro ကိုသုံးဖို့ကြိုးစားပေမယ့် အလုပ်မလုပ်ဘူး။ % parameters တွေကို လုံးဝလျစ်လျူရှုပြီး ကျန်ရှိတဲ့ string ကိုပဲ ပြန်ပေးတာ။
လေ့လာကြည့်ပြီးတဲ့နောက်မှာ macros တွေကို string တွေကို format လုပ်ဖို့ အသုံးပြုနိုင်တယ်ဆိုတာ ကျွန်တော် တွေ့ရှိခဲ့ပါတယ်၊ အဲဒါကလည်း ကျွန်တော် မသိခဲ့တဲ့ အရာတစ်ခုပါ။ ကောင်းပြီ၊ အသစ်တစ်ခုခုကို သင်ယူရတာ အမြဲတမ်းကောင်းပါတယ်၊ ဒါပေမယ့် ဒါကို ကျွန်တော် အရင်က မကြုံဖူးတာကိုတော့ အံ့သြမိပါတယ်။
အခြေခံအားဖြင့် ဒီလိုအရာမျိုး
;
info(strFmt(#FormatMacro, salesId, itemId, lineNum));
macro ရှိ % လက္ခဏာများကို macro ၏ကိုယ်ပိုင် string formatting features များအတွက်အသုံးပြုသောကြောင့် အလုပ်မလုပ်ပါ။ ဤကိစ္စတွင်၊ strFmt function သည် formatting string ကို "--" အဖြစ်မြင်ပြီး ထို့ကြောင့် ၎င်းကိုသာပြန်ပေးလိမ့်မည်။
ဤကဲ့သို့သောအရာတစ်ခုခု:
info(#FormatMacro(salesId,itemId,lineNum));
အလုပ်လုပ်ပါလိမ့်မယ်၊ ဒါပေမယ့် သင်လိုချင်တဲ့ပုံစံတော့ မဟုတ်ပါဘူး။ variable သုံးခုရဲ့ တန်ဖိုးတွေကို output ထုတ်ပေးမယ့်အစား၊ variable တွေရဲ့ နာမည်တွေကို output ထုတ်ပေးပါတယ်၊ ဒီကိစ္စမှာ "salesId-itemId-lineNum"။ (method call တွေမှာ ပုံမှန်လုပ်လေ့ရှိသလို macro ကို parameter တွေပို့တဲ့အခါ ကော်မာတွေနောက်မှာ space တွေမထည့်မိဘူးဆိုတာ သတိပြုပါ။ ဘာလို့လဲဆိုတော့ macro က တကယ်တမ်းမှာ အဲဒီလို space တွေကိုပါ သုံးမှာမို့ output က "salesId-itemId-lineNum" ဖြစ်ပါလိမ့်မယ်။)
strFmt ဖြင့် formatting string အဖြစ် macro ကို အမှန်တကယ်အသုံးပြုရန်အတွက်၊ သင်သည် ရာခိုင်နှုန်းလက္ခဏာများကို backslash များဖြင့် escape လုပ်ရန် လိုအပ်ပါသည်-
;
info(strFmt(#FormatMacro, salesId, itemId, lineNum));
ဒါက format string ကို တိုက်ရိုက်ပေးထားသလို အလုပ်လုပ်ပါလိမ့်မယ်။
ဤအလုပ်ငယ်လေးသည် ဥပမာများကို သရုပ်ပြသည်-
{
#define.FormatMacro('%1-%2-%3')
#define.FormatMacroEscaped('\\%1-\\%2-\\%3')
SalesId salesId = '1';
ItemId itemId = '2';
LineNum lineNum = 3.00;
;
info(#FormatMacro(salesId,itemId,lineNum));
info(strFmt(#FormatMacro, salesId, itemId, lineNum));
info(strFmt(#FormatMacroEscaped, salesId, itemId, lineNum));
}
နောက်ထပ်စာဖတ်ခြင်း။
ဤပို့စ်ကို သင်နှစ်သက်ပါက၊ ဤအကြံပြုချက်များကို သင်လည်း နှစ်သက်နိုင်ပါသည်-
- Dynamics AX 2012 တွင် AIF ဝန်ဆောင်မှုအတွက် စာရွက်စာတမ်းအမျိုးအစားနှင့် မေးမြန်းချက်ကို ခွဲခြားသတ်မှတ်ခြင်း။
- Dynamics AX 2012 SysOperation Framework အမြန်ခြုံငုံသုံးသပ်ချက်
- Dynamics AX 2012 တွင် တရားဝင်အဖွဲ့အစည်း (ကုမ္ပဏီအကောင့်များ) ကို ဖျက်ပါ။
