Format String nganggo Makro lan strFmt ing Dynamics AX 2012
Diterbitake: 16 Februari 2025 ing 00:49:42 UTC
Artikel iki njlèntrèhaké sawetara prilaku aneh ing Dynamics AX 2012 nalika nggunakake makro minangka format string ing strFmt, uga conto carane bisa watara.
String Formatting with Macro and strFmt in Dynamics AX 2012
Informasi ing kirim iki adhedhasar Dynamics AX 2012 R3. Bisa uga ora bener kanggo versi liyane.
Aku bubar nemoni masalah karo fungsi strFmt sing rada bingung. Sisih sing paling nggumunake yaiku aku kanthi kebetulan aneh sing durung nate nemoni sadurunge sajrone pirang-pirang taun dadi pangembang Axapta / Dynamics AX.
Masalah kasebut yaiku aku nyoba nggunakake makro minangka string format kanggo fungsi strFmt lan mung ora bisa. Iku rampung nglirwakake% paramèter lan mung bali seko senar.
Sawise nggoleki, aku nemokake yen macro bisa digunakake kanggo format strings, sing uga ana sing ora ngerti. Oh ya, iku tansah apik kanggo sinau bab anyar, nanging aku isih kaget banget amarga aku ora tau nemoni iki sadurunge.
Sejatine, kaya iki
;
info(strFmt(#FormatMacro, salesId, itemId, lineNum));
ora bakal bisa amarga % pratandha ing makro bener digunakake kanggo fitur format string macro dhewe. Ing kasus iki, fungsi strFmt bakal ndeleng string format minangka "--" lan mulane mung bakal bali.
Kaya iki:
info(#FormatMacro(salesId,itemId,lineNum));
bakal bisa, nanging mbokmenawa ora cara sampeyan pengin. Tinimbang ngasilake nilai saka telung variabel, bakal ngasilake jeneng variabel kasebut, ing kasus iki "salesId-itemId-lineNum". (Elinga yen aku ora sijine spasi sawise koma nalika maringaken paramèter kanggo makro, kaya biasane aku ing telpon cara. Sing amarga makro bakal bener nggunakake spasi kuwi uga, supaya output bakal "salesId- itemId- lineNum "yen aku).
Kanggo bener nggunakake makro minangka format string karo strFmt, sampeyan kudu uwal saka tandha persentasi karo backslashes, kaya iki:
;
info(strFmt(#FormatMacro, salesId, itemId, lineNum));
Iki bakal bisa digunakake kaya-kaya sampeyan wis nyedhiyakake string format langsung.
Proyek cilik iki nggambarake conto:
{
#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));
}