डायनामिक्स एएक्स २०१२ मा म्याक्रो र एसटीआरएफएमटीसँग स्ट्रिङ ढाँचा
प्रकाशित: २०२५ फेब्रुअरी १६: ००:५२:०२ UTC
पछिल्लो पटक अद्यावधिक गरिएको: २०२६ जनवरी १२: ०८:४४:४८ UTC
यस लेखले strFmt मा ढाँचा स्ट्रिङको रूपमा म्याक्रो प्रयोग गर्दा Dynamics AX २०१२ मा केही अनौठा व्यवहारहरू वर्णन गर्दछ, साथै यसको वरिपरि कसरी काम गर्ने भन्ने उदाहरणहरू पनि वर्णन गर्दछ।
String Formatting with Macro and strFmt in Dynamics AX 2012
यस पोस्टमा भएको जानकारी Dynamics AX २०१२ R3 मा आधारित छ। यो अन्य संस्करणहरूको लागि मान्य हुन पनि सक्छ वा नहुन पनि सक्छ।
मैले हालसालै strFmt प्रकार्यमा एउटा समस्याको सामना गरें जसले मलाई केही समयको लागि चकित पार्यो। सबैभन्दा अचम्मको कुरा के थियो भने, Axapta/Dynamics AX विकासकर्ताको रूपमा मेरो धेरै वर्षहरूमा कुनै अनौठो संयोगले मैले यो समस्या पहिले कहिल्यै सामना गरेको थिइनँ।
समस्या यो थियो कि मैले strFmt प्रकार्यको लागि ढाँचा स्ट्रिङको रूपमा म्याक्रो प्रयोग गर्ने प्रयास गरें र यसले काम गरेन। यसले % प्यारामिटरहरूलाई पूर्ण रूपमा बेवास्ता गर्यो र बाँकी स्ट्रिङ मात्र फर्कायो।
यसलाई हेरेपछि, मैले पत्ता लगाएँ कि म्याक्रोहरू आफैं स्ट्रिङहरू ढाँचा गर्न प्रयोग गर्न सकिन्छ, जुन मलाई पनि थाहा थिएन। ओह, केहि नयाँ सिक्नु सधैं राम्रो हुन्छ, तर म अझै पनि धेरै छक्क परें कि मैले यो पहिले कहिल्यै भेटेको थिइनँ।
मूलतः, यस्तो केहि
;
info(strFmt(#FormatMacro, salesId, itemId, lineNum));
म्याक्रोमा % चिन्हहरू वास्तवमा म्याक्रोको आफ्नै स्ट्रिङ ढाँचा सुविधाहरूको लागि प्रयोग गरिन्छ त्यसैले काम गर्ने छैन। यस अवस्थामा, strFmt प्रकार्यले ढाँचा स्ट्रिङलाई "--" को रूपमा देख्नेछ र त्यसैले त्यो मात्र फिर्ता गर्नेछ।
यस्तै केहि:
info(#FormatMacro(salesId,itemId,lineNum));
काम गर्नेछ, तर सायद तपाईंले चाहनुभएको तरिकाले होइन। तीनवटा चरहरूको मानहरू आउटपुट गर्नुको सट्टा, यसले चरहरूको नामहरू आउटपुट गर्नेछ, यस अवस्थामा "salesId-itemId-lineNum"। (ध्यान दिनुहोस् कि मैले म्याक्रोमा प्यारामिटरहरू पास गर्दा अल्पविराम पछि खाली ठाउँहरू राखेको छैन, जस्तै म सामान्यतया मेथड कलहरूमा गर्छु। किनभने म्याक्रोले वास्तवमा त्यस्ता खाली ठाउँहरू पनि प्रयोग गर्नेछ, त्यसैले आउटपुट "salesId- itemId- lineNum" हुनेछ यदि मैले गरेको भए)।
strFmt सँग ढाँचा स्ट्रिङको रूपमा म्याक्रो प्रयोग गर्न, तपाईंले ब्याकस्ल्याशहरू सहित प्रतिशत चिन्हहरूबाट यसरी भाग्नु पर्छ:
;
info(strFmt(#FormatMacro, salesId, itemId, lineNum));
यो वास्तवमा तपाईंले सिधै ढाँचा स्ट्रिङ आपूर्ति गर्नुभएको जस्तै काम गर्नेछ।
यो सानो कामले उदाहरणहरू चित्रण गर्दछ:
{
#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));
}
थप पढाइ
यदि तपाईंलाई यो पोस्ट मन पर्यो भने, तपाईंलाई यी सुझावहरू पनि मन पर्न सक्छन्:
- डायनामिक्स AX २०१२ मा "डेटा सम्झौता वस्तुका लागि कुनै मेटाडाटा वर्ग परिभाषित गरिएको छैन" त्रुटि
- डाइनामिक्स एएक्स २०१२ मा डेटा () र बुफ २ बुफ () बीचको भिन्नता
- डाइनामिक्स एएक्स २०१२ मा कुन उपवर्ग इन्स्ट्यान्ट गर्ने भनेर पत्ता लगाउन सिसएक्सटेन्सन फ्रेमवर्क प्रयोग गर्दै
