Miklix

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 လုပ်ဖို့ အသုံးပြုနိုင်တယ်ဆိုတာ ကျွန်တော် တွေ့ရှိခဲ့ပါတယ်၊ အဲဒါကလည်း ကျွန်တော် မသိခဲ့တဲ့ အရာတစ်ခုပါ။ ကောင်းပြီ၊ အသစ်တစ်ခုခုကို သင်ယူရတာ အမြဲတမ်းကောင်းပါတယ်၊ ဒါပေမယ့် ဒါကို ကျွန်တော် အရင်က မကြုံဖူးတာကိုတော့ အံ့သြမိပါတယ်။

အခြေခံအားဖြင့် ဒီလိုအရာမျိုး

#define.FormatMacro('%1-%2-%3')
;

info(strFmt(#FormatMacro, salesId, itemId, lineNum));

macro ရှိ % လက္ခဏာများကို macro ၏ကိုယ်ပိုင် string formatting features များအတွက်အသုံးပြုသောကြောင့် အလုပ်မလုပ်ပါ။ ဤကိစ္စတွင်၊ strFmt function သည် formatting string ကို "--" အဖြစ်မြင်ပြီး ထို့ကြောင့် ၎င်းကိုသာပြန်ပေးလိမ့်မည်။

ဤကဲ့သို့သောအရာတစ်ခုခု:

#define.FormatMacro('%1-%2-%3');
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 လုပ်ရန် လိုအပ်ပါသည်-

#define.FormatMacro('\\%1-\\%2-\\%3')
;

info(strFmt(#FormatMacro, salesId, itemId, lineNum));

ဒါက format string ကို တိုက်ရိုက်ပေးထားသလို အလုပ်လုပ်ပါလိမ့်မယ်။

ဤအလုပ်ငယ်လေးသည် ဥပမာများကို သရုပ်ပြသည်-

static void StrFmtMacroTest(Args _args)
{
    #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));
}

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

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


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

Mikkel Christensen

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

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