Miklix

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

ಪ್ರಕಟಣೆ: ಫೆಬ್ರವರಿ 16, 2025 ರಂದು 12:49:43 ಪೂರ್ವಾಹ್ನ UTC ಸಮಯಕ್ಕೆ

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


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

String Formatting with Macro and strFmt in Dynamics AX 2012

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

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

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

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

ಮೂಲಭೂತವಾಗಿ, ಈ ರೀತಿಯದ್ದು

#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". (ನಾನು ಸಾಮಾನ್ಯವಾಗಿ ವಿಧಾನ ಕರೆಗಳಲ್ಲಿ ಮಾಡುವಂತೆ, ಮ್ಯಾಕ್ರೊಗೆ ನಿಯತಾಂಕಗಳನ್ನು ರವಾನಿಸುವಾಗ ನಾನು ಕಮಾಸ್ ನಂತರ ಸ್ಥಳಗಳನ್ನು ಹಾಕಲಿಲ್ಲ ಎಂಬುದನ್ನು ಗಮನಿಸಿ. ಏಕೆಂದರೆ ಮ್ಯಾಕ್ರೊ ವಾಸ್ತವವಾಗಿ ಅಂತಹ ಸ್ಥಳಗಳನ್ನು ಸಹ ಬಳಸುತ್ತದೆ, ಆದ್ದರಿಂದ ನಾನು ಹಾಗೆ ಮಾಡಿದರೆ ಔಟ್ಪುಟ್ "ಸೇಲ್ಸ್ಐಡಿ- ಐಟಂಐಡಿ- ಲೈನ್ನಮ್" ಆಗಿರುತ್ತದೆ).

ವಾಸ್ತವವಾಗಿ ಮ್ಯಾಕ್ರೊವನ್ನು 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 ನಲ್ಲಿ ಪಿನ್ ಮಾಡಿ

Mikkel Bang Christensen

ಲೇಖಕರ ಬಗ್ಗೆ

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