Uumbizaji wa Kamba na Macro na strFmt katika Dynamics AX 2012
Iliyochapishwa: 16 Februari 2025, 00:49:11 UTC
Mara ya mwisho kusasishwa: 12 Januari 2026, 08:44:38 UTC
Makala haya yanaelezea baadhi ya tabia za kipekee katika Dynamics AX 2012 wakati wa kutumia makro kama mfuatano wa umbizo katika strFmt, pamoja na mifano ya jinsi ya kuishughulikia.
String Formatting with Macro and strFmt in Dynamics AX 2012
Taarifa katika chapisho hili inategemea Dynamics AX 2012 R3. Huenda ikawa halali au isiwe halali kwa matoleo mengine.
Hivi majuzi nilikutana na tatizo na kitendakazi cha strFmt ambacho kilinishangaza kidogo. Sehemu ya kushangaza zaidi ilikuwa kwamba kwa bahati mbaya sijawahi kukutana nalo hapo awali katika miaka yangu mingi kama msanidi programu wa Axapta/Dynamics AX.
Tatizo lilikuwa kwamba nilijaribu kutumia makro kama mfuatano wa umbizo kwa ajili ya kitendakazi cha strFmt na haikufanya kazi. Ilipuuza kabisa vigezo vya % na ikarudisha tu sehemu iliyobaki ya mfuatano.
Baada ya kuichunguza, niligundua kwamba makro zenyewe zinaweza kutumika kupangilia mifuatano, jambo ambalo pia sikulijua. Naam, ni vizuri kujifunza kitu kipya kila wakati, lakini bado nilishangaa sana kwamba sikuwa nimekutana na hili hapo awali.
Kimsingi, kitu kama hiki
;
info(strFmt(#FormatMacro, salesId, itemId, lineNum));
Haitafanya kazi kwa sababu ishara za % katika makro zinatumika kwa vipengele vya umbizo la mfuatano wa makro. Katika hali hii, kitendakazi cha strFmt kitaona mfuatano wa umbizo kama "--" na kwa hivyo kitarudisha hilo tu.
Kitu kama hiki:
info(#FormatMacro(salesId,itemId,lineNum));
Itafanya kazi, lakini labda si jinsi unavyotaka iwe. Badala ya kutoa thamani za vigezo vitatu, itatoa majina ya vigezo badala yake, katika hali hii "salesId-itemId-lineNum". (Tambua kwamba sikuweka nafasi baada ya koma wakati wa kupitisha vigezo kwenye makro, kama kawaida ninavyofanya katika simu za mbinu. Hiyo ni kwa sababu makro itatumia nafasi kama hizo pia, kwa hivyo matokeo yatakuwa "salesId-itemId-lineNum" ikiwa ningefanya).
Ili kutumia makro kama kamba ya umbizo na strFmt, unahitaji kuepuka ishara za asilimia zenye mipigo ya nyuma, kama hii:
;
info(strFmt(#FormatMacro, salesId, itemId, lineNum));
Hii itafanya kazi kana kwamba umewasilisha mfuatano wa umbizo moja kwa moja.
Kazi hii ndogo inaonyesha mifano:
{
#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));
}
Kusoma Zaidi
Ikiwa ulifurahia chapisho hili, unaweza pia kupenda mapendekezo haya:
- Futa Huluki ya Kisheria (Akaunti za Kampuni) katika Dynamics AX 2012
- Kosa "Hakuna darasa la metadata lililofafanuliwa kwa kitu cha mkataba wa data" katika Dynamics AX 2012
- Mfumo wa Dynamics AX 2012 SysOperation Muhtasari wa Haraka
