Miklix

டைனமிக்ஸ் AX 2012 இல் மேக்ரோ மற்றும் strFmt உடன் சரம் வடிவமைப்பு

வெளியிடப்பட்டது: 16 பிப்ரவரி, 2025 அன்று AM 12:49:41 UTC

இந்த கட்டுரை டைனமிக்ஸ் AX 2012 இல் ஒரு மேக்ரோவை strFMT இல் வடிவமைப்பு சரமாகப் பயன்படுத்தும் போது சில விசித்திரமான நடத்தைகளையும், அதைச் சுற்றி எவ்வாறு வேலை செய்வது என்பதற்கான எடுத்துக்காட்டுகளையும் விவரிக்கிறது.


இந்தப் பக்கம் முடிந்தவரை பலருக்கு அணுகக்கூடியதாக இருக்க வேண்டும் என்பதற்காக ஆங்கிலத்திலிருந்து இயந்திர மொழிபெயர்ப்பு செய்யப்பட்டது. துரதிர்ஷ்டவசமாக, இயந்திர மொழிபெயர்ப்பு இன்னும் முழுமையான தொழில்நுட்பமாக இல்லை, எனவே பிழைகள் ஏற்படலாம். நீங்கள் விரும்பினால், அசல் ஆங்கிலப் பதிப்பை இங்கே காணலாம்:

String Formatting with Macro and strFmt in Dynamics AX 2012

இந்த இடுகையில் உள்ள தகவல்கள் Dynamics AX 2012 R3 ஐ அடிப்படையாகக் கொண்டவை. இது மற்ற பதிப்புகளுக்கு செல்லுபடியாகலாம் அல்லது செல்லுபடியாகாமல் இருக்கலாம்.

நான் சமீபத்தில் strFmt செயல்பாட்டில் ஒரு சிக்கலை எதிர்கொண்டேன், அது என்னை சிறிது குழப்பியது. மிகவும் குழப்பமான பகுதி என்னவென்றால், சில வித்தியாசமான தற்செயல் நிகழ்வுகளால் நான் ஒரு Axapta / Dynamics 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 இல் பகிரவும்பின்டரஸ்டில் பின் செய்யவும்

மிக்கேல் பேங் கிறிஸ்டென்சன்

எழுத்தாளர் பற்றி

மிக்கேல் பேங் கிறிஸ்டென்சன்
மிக்கல் என்பவர் miklix.com இன் படைப்பாளர் மற்றும் உரிமையாளர் ஆவார். அவருக்கு 20 ஆண்டுகளுக்கும் மேலான தொழில்முறை கணினி நிரலாளர்/மென்பொருள் உருவாக்குநராக அனுபவம் உள்ளது, மேலும் தற்போது ஒரு பெரிய ஐரோப்பிய ஐடி நிறுவனத்தில் முழுநேரப் பணியாளராக உள்ளார். வலைப்பதிவு செய்யாதபோது, ​​அவர் தனது ஓய்வு நேரத்தை பரந்த அளவிலான ஆர்வங்கள், பொழுதுபோக்குகள் மற்றும் செயல்பாடுகளில் செலவிடுகிறார், இது இந்த வலைத்தளத்தில் உள்ளடக்கப்பட்ட பல்வேறு தலைப்புகளில் ஓரளவுக்கு பிரதிபலிக்கக்கூடும்.