Miklix

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.


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 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

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

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:

#define.FormatMacro('%1-%2-%3');
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:

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

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

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

Proyek cilik iki nggambarake 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));
}
Nuduhake ing BlueskyNuduhake ing FacebookNuduhake ing LinkedInNuduhake ing TumblrNuduhake ing XNuduhake ing LinkedInPin ing Pinterest

Mikkel Bang Christensen

Babagan Penulis

Mikkel Bang 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.