Miklix

डायनामिक्स एएक्स २०१२ मा म्याक्रो र एसटीआरएफएमटीसँग स्ट्रिङ ढाँचा

प्रकाशित: २०२५ फेब्रुअरी १६: ००:५२:०२ UTC
पछिल्लो पटक अद्यावधिक गरिएको: २०२६ जनवरी १२: ०८:४४:४८ UTC

यस लेखले strFmt मा ढाँचा स्ट्रिङको रूपमा म्याक्रो प्रयोग गर्दा Dynamics AX २०१२ मा केही अनौठा व्यवहारहरू वर्णन गर्दछ, साथै यसको वरिपरि कसरी काम गर्ने भन्ने उदाहरणहरू पनि वर्णन गर्दछ।


यो पृष्ठलाई सकेसम्म धेरै मानिसहरूको पहुँचयोग्य बनाउनको लागि अंग्रेजीबाट मेसिन अनुवाद गरिएको थियो। दुर्भाग्यवश, मेसिन अनुवाद अझै पूर्ण प्रविधि होइन, त्यसैले त्रुटिहरू हुन सक्छन्। यदि तपाईं चाहनुहुन्छ भने, तपाईं यहाँ मूल अंग्रेजी संस्करण हेर्न सक्नुहुन्छ:

String Formatting with Macro and strFmt in Dynamics AX 2012

यस पोस्टमा भएको जानकारी Dynamics AX २०१२ 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));
}

थप पढाइ

यदि तपाईंलाई यो पोस्ट मन पर्यो भने, तपाईंलाई यी सुझावहरू पनि मन पर्न सक्छन्:


ब्लुस्कीमा सेयर गर्नुहोस्फेसबुक मा शेयर गर्नुहोस्लिंक्डइनमा सेयर गर्नुहोस्Tumblr मा सेयर गर्नुहोस्X मा सेयर गर्नुहोस्लिंक्डइनमा सेयर गर्नुहोस्Pinterest मा पिन गर्नुहोस्

मिकेल क्रिस्टेनसेन

लेखकको बारेमा

मिकेल क्रिस्टेनसेन
मिकेल miklix.com का निर्माता र मालिक हुन्। उनीसँग एक पेशेवर कम्प्युटर प्रोग्रामर/सफ्टवेयर विकासकर्ताको रूपमा २० वर्ष भन्दा बढीको अनुभव छ र हाल उनी एक ठूलो युरोपेली आईटी निगममा पूर्ण-समय कार्यरत छन्। ब्लगिङ नगर्दा, उनी आफ्नो खाली समय विभिन्न रुचि, शौक र गतिविधिहरूमा बिताउँछन्, जुन केही हदसम्म यस वेबसाइटमा समेटिएका विषयहरूको विविधतामा प्रतिबिम्बित हुन सक्छ।