Miklix

ಡೈನಾಮಿಕ್ಸ್ AX 2012 ನಲ್ಲಿ ಮ್ಯಾಕ್ರೊ ಮತ್ತು strFmt ನೊಂದಿಗೆ ಸ್ಟ್ರಿಂಗ್ ಫಾರ್ಮ್ಯಾಟಿಂಗ್

ಪ್ರಕಟಣೆ: ಫೆಬ್ರವರಿ 16, 2025 ರಂದು 12:49:43 ಪೂರ್ವಾಹ್ನ UTC ಸಮಯಕ್ಕೆ
ಕೊನೆಯದಾಗಿ ನವೀಕರಿಸಲಾಗಿದೆ: ಜನವರಿ 12, 2026 ರಂದು 08:44:42 ಪೂರ್ವಾಹ್ನ UTC ಸಮಯಕ್ಕೆ

ಈ ಲೇಖನವು ಡೈನಾಮಿಕ್ಸ್ AX 2012 ರಲ್ಲಿ strFmt ನಲ್ಲಿ ಮ್ಯಾಕ್ರೋವನ್ನು ಫಾರ್ಮ್ಯಾಟ್ ಸ್ಟ್ರಿಂಗ್ ಆಗಿ ಬಳಸುವಾಗ ಕೆಲವು ವಿಶಿಷ್ಟ ನಡವಳಿಕೆಯನ್ನು ವಿವರಿಸುತ್ತದೆ, ಜೊತೆಗೆ ಅದರ ಸುತ್ತ ಹೇಗೆ ಕೆಲಸ ಮಾಡುವುದು ಎಂಬುದರ ಉದಾಹರಣೆಗಳನ್ನು ವಿವರಿಸುತ್ತದೆ.


ಸಾಧ್ಯವಾದಷ್ಟು ಜನರಿಗೆ ಲಭ್ಯವಾಗುವಂತೆ ಮಾಡಲು ಈ ಪುಟವನ್ನು ಇಂಗ್ಲಿಷ್‌ನಿಂದ ಯಂತ್ರಭಾಷಾಂತರಿಸಲಾಗಿದೆ. ದುರದೃಷ್ಟವಶಾತ್, ಯಂತ್ರಭಾಷಾಂತರವು ಇನ್ನೂ ಪರಿಪೂರ್ಣ ತಂತ್ರಜ್ಞಾನವಾಗಿಲ್ಲ, ಆದ್ದರಿಂದ ದೋಷಗಳು ಸಂಭವಿಸಬಹುದು. ನೀವು ಬಯಸಿದರೆ, ನೀವು ಮೂಲ ಇಂಗ್ಲಿಷ್ ಆವೃತ್ತಿಯನ್ನು ಇಲ್ಲಿ ವೀಕ್ಷಿಸಬಹುದು:

String Formatting with Macro and strFmt in Dynamics AX 2012

ಈ ಪೋಸ್ಟ್‌ನಲ್ಲಿರುವ ಮಾಹಿತಿಯು ಡೈನಾಮಿಕ್ಸ್ AX 2012 R3 ಅನ್ನು ಆಧರಿಸಿದೆ. ಇದು ಇತರ ಆವೃತ್ತಿಗಳಿಗೆ ಮಾನ್ಯವಾಗಿರಬಹುದು ಅಥವಾ ಇಲ್ಲದಿರಬಹುದು.

ಇತ್ತೀಚೆಗೆ ನಾನು strFmt ಕಾರ್ಯದಲ್ಲಿ ಒಂದು ಸಮಸ್ಯೆಯನ್ನು ಎದುರಿಸಿದೆ, ಅದು ನನ್ನನ್ನು ಸ್ವಲ್ಪ ಗೊಂದಲಕ್ಕೀಡು ಮಾಡಿತು. ಅತ್ಯಂತ ಗೊಂದಲಮಯವಾದ ಭಾಗವೆಂದರೆ, ಕೆಲವು ವಿಚಿತ್ರ ಕಾಕತಾಳೀಯತೆಯಿಂದ, ನಾನು ಆಕ್ಸಾಪ್ಟಾ/ಡೈನಾಮಿಕ್ಸ್ AX ಡೆವಲಪರ್ ಆಗಿ ನನ್ನ ಹಲವು ವರ್ಷಗಳಲ್ಲಿ ಇದನ್ನು ಎಂದಿಗೂ ಎದುರಿಸಿಲ್ಲ.

ಸಮಸ್ಯೆ ಏನೆಂದರೆ, ನಾನು strFmt ಕಾರ್ಯಕ್ಕಾಗಿ ಫಾರ್ಮ್ಯಾಟ್ ಸ್ಟ್ರಿಂಗ್ ಆಗಿ ಮ್ಯಾಕ್ರೋವನ್ನು ಬಳಸಲು ಪ್ರಯತ್ನಿಸಿದೆ ಮತ್ತು ಅದು ಕೆಲಸ ಮಾಡಲಿಲ್ಲ. ಅದು % ನಿಯತಾಂಕಗಳನ್ನು ಸಂಪೂರ್ಣವಾಗಿ ನಿರ್ಲಕ್ಷಿಸಿ ಸ್ಟ್ರಿಂಗ್‌ನ ಉಳಿದ ಭಾಗವನ್ನು ಮಾತ್ರ ಹಿಂತಿರುಗಿಸಿದೆ.

ಅದನ್ನು ಪರಿಶೀಲಿಸಿದ ನಂತರ, ಮ್ಯಾಕ್ರೋಗಳನ್ನು ಸ್ವತಃ ಸ್ಟ್ರಿಂಗ್‌ಗಳನ್ನು ಫಾರ್ಮ್ಯಾಟ್ ಮಾಡಲು ಬಳಸಬಹುದು ಎಂದು ನಾನು ಕಂಡುಕೊಂಡೆ, ಅದು ನನಗೆ ತಿಳಿದಿರಲಿಲ್ಲ. ಓಹ್, ಹೊಸದನ್ನು ಕಲಿಯುವುದು ಯಾವಾಗಲೂ ಒಳ್ಳೆಯದು, ಆದರೆ ನಾನು ಇದನ್ನು ಮೊದಲು ನೋಡಲಿಲ್ಲ ಎಂದು ನನಗೆ ಇನ್ನೂ ತುಂಬಾ ಆಶ್ಚರ್ಯವಾಯಿತು.

ಮೂಲತಃ, ಈ ರೀತಿಯದ್ದು

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

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

ಮ್ಯಾಕ್ರೋದಲ್ಲಿನ % ಚಿಹ್ನೆಗಳನ್ನು ವಾಸ್ತವವಾಗಿ ಮ್ಯಾಕ್ರೋದ ಸ್ವಂತ ಸ್ಟ್ರಿಂಗ್ ಫಾರ್ಮ್ಯಾಟಿಂಗ್ ವೈಶಿಷ್ಟ್ಯಗಳಿಗಾಗಿ ಬಳಸಲಾಗಿರುವುದರಿಂದ ಇದು ಕಾರ್ಯನಿರ್ವಹಿಸುವುದಿಲ್ಲ. ಈ ಸಂದರ್ಭದಲ್ಲಿ, strFmt ಕಾರ್ಯವು ಫಾರ್ಮ್ಯಾಟಿಂಗ್ ಸ್ಟ್ರಿಂಗ್ ಅನ್ನು "--" ಎಂದು ನೋಡುತ್ತದೆ ಮತ್ತು ಆದ್ದರಿಂದ ಅದನ್ನು ಮಾತ್ರ ಹಿಂತಿರುಗಿಸುತ್ತದೆ.

ಈ ರೀತಿಯದ್ದೇನೋ:

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

ಕೆಲಸ ಮಾಡುತ್ತದೆ, ಆದರೆ ಬಹುಶಃ ನೀವು ಬಯಸಿದ ರೀತಿಯಲ್ಲಿ ಅಲ್ಲ. ಮೂರು ವೇರಿಯೇಬಲ್‌ಗಳ ಮೌಲ್ಯಗಳನ್ನು ಔಟ್‌ಪುಟ್ ಮಾಡುವ ಬದಲು, ಅದು ವೇರಿಯೇಬಲ್‌ಗಳ ಹೆಸರುಗಳನ್ನು ಔಟ್‌ಪುಟ್ ಮಾಡುತ್ತದೆ, ಈ ಸಂದರ್ಭದಲ್ಲಿ "salesId-itemId-lineNum". (ನಾನು ಸಾಮಾನ್ಯವಾಗಿ ವಿಧಾನ ಕರೆಗಳಲ್ಲಿ ಮಾಡುವಂತೆ, ಮ್ಯಾಕ್ರೋಗೆ ನಿಯತಾಂಕಗಳನ್ನು ರವಾನಿಸುವಾಗ ಅಲ್ಪವಿರಾಮಗಳ ನಂತರ ಸ್ಥಳಗಳನ್ನು ಹಾಕಲಿಲ್ಲ ಎಂಬುದನ್ನು ಗಮನಿಸಿ. ಏಕೆಂದರೆ ಮ್ಯಾಕ್ರೋ ವಾಸ್ತವವಾಗಿ ಅಂತಹ ಸ್ಥಳಗಳನ್ನು ಸಹ ಬಳಸುತ್ತದೆ, ಆದ್ದರಿಂದ ನಾನು ಹಾಗೆ ಮಾಡಿದರೆ ಔಟ್‌ಪುಟ್ "salesId- itemId- lineNum" ಆಗಿರುತ್ತದೆ).

strFmt ನೊಂದಿಗೆ ಫಾರ್ಮ್ಯಾಟಿಂಗ್ ಸ್ಟ್ರಿಂಗ್ ಆಗಿ ಮ್ಯಾಕ್ರೋವನ್ನು ಬಳಸಲು, ನೀವು ಬ್ಯಾಕ್‌ಸ್ಲ್ಯಾಶ್‌ಗಳೊಂದಿಗೆ ಶೇಕಡಾವಾರು ಚಿಹ್ನೆಗಳನ್ನು ತಪ್ಪಿಸಿಕೊಳ್ಳಬೇಕು, ಉದಾಹರಣೆಗೆ:

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

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

ನೀವು ನೇರವಾಗಿ ಫಾರ್ಮ್ಯಾಟ್ ಸ್ಟ್ರಿಂಗ್ ಅನ್ನು ಪೂರೈಸಿದಂತೆ ಇದು ನಿಜವಾಗಿಯೂ ಕೆಲಸ ಮಾಡುತ್ತದೆ.

ಈ ಸಣ್ಣ ಕೆಲಸವು ಉದಾಹರಣೆಗಳನ್ನು ವಿವರಿಸುತ್ತದೆ:

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

ಹೆಚ್ಚಿನ ಓದಿಗೆ

ನೀವು ಈ ಪೋಸ್ಟ್ ಅನ್ನು ಆನಂದಿಸಿದ್ದರೆ, ನೀವು ಈ ಸಲಹೆಗಳನ್ನು ಸಹ ಇಷ್ಟಪಡಬಹುದು:


ಬ್ಲೂಸ್ಕೈನಲ್ಲಿ ಹಂಚಿಕೊಳ್ಳಿಫೇಸ್‌ಬುಕ್‌ನಲ್ಲಿ ಹಂಚಿಕೊಳ್ಳಿLinkedIn ನಲ್ಲಿ ಹಂಚಿಕೊಳ್ಳಿTumblr ನಲ್ಲಿ ಹಂಚಿಕೊಳ್ಳಿX ನಲ್ಲಿ ಹಂಚಿಕೊಳ್ಳಿLinkedIn ನಲ್ಲಿ ಹಂಚಿಕೊಳ್ಳಿPinterest ನಲ್ಲಿ ಪಿನ್ ಮಾಡಿ

ಮಿಕೆಲ್ ಕ್ರಿಸ್ಟೆನ್ಸನ್

ಲೇಖಕರ ಬಗ್ಗೆ

ಮಿಕೆಲ್ ಕ್ರಿಸ್ಟೆನ್ಸನ್
ಮಿಕೆಲ್ miklix.com ನ ಸೃಷ್ಟಿಕರ್ತ ಮತ್ತು ಮಾಲೀಕರು. ಅವರು ವೃತ್ತಿಪರ ಕಂಪ್ಯೂಟರ್ ಪ್ರೋಗ್ರಾಮರ್/ಸಾಫ್ಟ್‌ವೇರ್ ಡೆವಲಪರ್ ಆಗಿ 20 ವರ್ಷಗಳಿಗೂ ಹೆಚ್ಚು ಅನುಭವ ಹೊಂದಿದ್ದಾರೆ ಮತ್ತು ಪ್ರಸ್ತುತ ದೊಡ್ಡ ಯುರೋಪಿಯನ್ ಐಟಿ ಕಾರ್ಪೊರೇಷನ್‌ನಲ್ಲಿ ಪೂರ್ಣ ಸಮಯದ ಉದ್ಯೋಗಿಯಾಗಿದ್ದಾರೆ. ಬ್ಲಾಗಿಂಗ್ ಮಾಡದಿರುವಾಗ, ಅವರು ತಮ್ಮ ಬಿಡುವಿನ ವೇಳೆಯನ್ನು ವ್ಯಾಪಕವಾದ ಆಸಕ್ತಿಗಳು, ಹವ್ಯಾಸಗಳು ಮತ್ತು ಚಟುವಟಿಕೆಗಳಲ್ಲಿ ಕಳೆಯುತ್ತಾರೆ, ಇದು ಸ್ವಲ್ಪ ಮಟ್ಟಿಗೆ ಈ ವೆಬ್‌ಸೈಟ್‌ನಲ್ಲಿ ಒಳಗೊಂಡಿರುವ ವಿವಿಧ ವಿಷಯಗಳಲ್ಲಿ ಪ್ರತಿಫಲಿಸಬಹುದು.