Miklix

Format String nganggo Makro lan strFmt ing Dynamics AX 2012

Diterbitake: 16 Februari 2025 ing 00:49:42 UTC
Dianyari pungkasan: 12 Januari 2026 ing 08:44:42 UTC

Artikel iki njlèntrèhaké sawetara prilaku aneh ing Dynamics AX 2012 nalika nggunakake makro minangka format string ing strFmt, uga conto babagan cara ngatasi.


Kaca iki diterjemahake mesin saka basa Inggris supaya bisa diakses dening akeh wong. Sayange, terjemahan mesin durung dadi teknologi sing sampurna, mula kesalahan bisa kedadeyan. Yen sampeyan seneng, sampeyan bisa ndeleng versi Inggris asli ing kene:

String Formatting with Macro and strFmt in Dynamics AX 2012

Informasi ing kiriman iki adhedhasar Dynamics AX 2012 R3. Iki bisa uga valid utawa ora valid kanggo versi liyane.

Aku bubar nemoni masalah karo fungsi strFmt sing rada mbingungake aku. Bagean sing paling mbingungake yaiku kebetulan aku durung nate nemoni masalah iki sadurunge sajrone pirang-pirang taun dadi pangembang Axapta/Dynamics AX.

Masalahé yaiku aku nyoba nggunakaké makro minangka format string kanggo fungsi strFmt lan ora bisa. Fungsi iki ora nggatèkaké parameter % lan mung ngasilaké sisa string.

Sawise nliti, aku nemokake yen makro dhewe bisa digunakake kanggo ngowahi format string, sing uga aku ora ngerti. Ya wis, mesthi apik yen sinau bab anyar, nanging aku isih kaget banget amarga aku durung nate nemoni iki sadurunge.

Intine, kaya ngene iki

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

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

Ora bakal bisa digunakake amarga tandha % ing makro sejatine digunakake kanggo fitur format string makro dhewe. Ing kasus iki, fungsi strFmt bakal ndeleng string format minangka "--" lan mulane mung bakal ngasilake kasebut.

Kaya ngene iki:

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

Bakal bisa digunakake, nanging mbokmenawa ora kaya sing dikarepake. Tinimbang ngetokake nilai saka telung variabel kasebut, iki bakal ngetokake jeneng variabel, ing kasus iki "salesId-itemId-lineNum". (Elinga yen aku ora masang spasi sawise koma nalika ngirim parameter menyang makro, kaya biasane ing panggilan metode. Kuwi amarga makro uga bakal nggunakake spasi kasebut, mula output bakal dadi "salesId- itemId- lineNum" yen aku nindakake).

Kanggo nggunakake makro minangka format string nganggo strFmt, sampeyan kudu ngindhari tandha persentase nganggo garis miring mburi, kaya iki:

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

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

Iki bakal bisa digunakake kaya-kaya sampeyan wis nyedhiyakake string format kanthi langsung.

Pakaryan cilik iki nggambarake conto-conto:

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

Wacan Salajengipun

Yen sampeyan seneng karo kiriman iki, sampeyan bisa uga seneng saran iki:


Nuduhake ing BlueskyNuduhake ing FacebookNuduhake ing LinkedInNuduhake ing TumblrNuduhake ing XNuduhake ing LinkedInPin ing Pinterest

Mikkel Christensen

Babagan Penulis

Mikkel Christensen
Mikkel minangka pencipta lan pemilik miklix.com. Dheweke duwe pengalaman luwih saka 20 taun minangka programmer komputer / pangembang piranti lunak profesional lan saiki kerja full-time kanggo perusahaan IT Eropa sing gedhe. Nalika ora ngeblog, dheweke mbuwang wektu luang kanggo macem-macem minat, hobi, lan kegiatan, sing bisa uga katon ing macem-macem topik sing dibahas ing situs web iki.