Miklix

String Formatting tare da Macro da strFmt a Dynamics AX 2012

Buga: 16 Faburairu, 2025 da 00:49:40 UTC
An sabunta ta ƙarshe: 12 Janairu, 2026 da 08:44:41 UTC

Wannan labarin ya bayyana wasu halaye na musamman a cikin Dynamics AX 2012 lokacin amfani da macro azaman tsarin kirtani a cikin strFmt, da kuma misalai kan yadda ake magance shi.


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:

String Formatting with Macro and strFmt 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 ci karo da wata matsala da aikin strFmt wanda ya ɗan ruɗe ni. Abin da ya fi bani mamaki shi ne cewa wani abin mamaki da na yi, ban taɓa fuskantar hakan ba a cikin shekaru da yawa da na yi ina mai haɓaka Axapta/Dynamics AX.

Matsalar ita ce na yi ƙoƙarin amfani da macro a matsayin tsarin rubutu don aikin strFmt amma bai yi aiki ba. Ya yi watsi da sigogin % gaba ɗaya kuma ya dawo da sauran layin kawai.

Bayan na duba shi, na gano cewa ana iya amfani da macros don tsara igiyoyi, wanda kuma wani abu ne da ban sani ba. To, koyaushe yana da kyau a koyi wani sabon abu, amma har yanzu ina mamakin cewa ban taɓa cin karo da wannan ba a da.

A takaice, wani abu kamar haka

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

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

Ba zai yi aiki ba saboda alamun % a cikin macro ana amfani da su ne don fasalulluka na tsarin kirtani na macro. A wannan yanayin, aikin strFmt zai ga tsarin kirtani a matsayin "--" kuma saboda haka zai dawo da hakan ne kawai.

Wani abu kamar haka:

#define.FormatMacro('%1-%2-%3');
info(#FormatMacro(salesId,itemId,lineNum));

Zai yi aiki, amma wataƙila ba yadda kake so ba. Maimakon fitar da ƙimar masu canji guda uku, zai fitar da sunayen masu canji maimakon haka, a wannan yanayin "salesId-itemId-lineNum". (Lura cewa ban sanya sarari bayan wasiƙu ba lokacin da nake wucewa da sigogi zuwa macro, kamar yadda nake yi a cikin kiran hanya. Wannan saboda macro zai yi amfani da irin waɗannan sarari ma, don haka fitarwar za ta zama "salesId- itemId- lineNum" idan na yi).

Don amfani da macro azaman tsarin rubutu tare da strFmt, kuna buƙatar guje wa alamun kashi tare da laƙabin baya, kamar haka:

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

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

Wannan zai yi aiki kamar dai kun kawo tsarin tsari kai tsaye.

Wannan ƙaramin aikin yana nuna misalai:

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

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.