Miklix

डायनामिक्स एएक्स 2012 मा एक्स ++ कोडबाट गणनको तत्वहरूमा कसरी पुनरावृत्ति गर्ने

प्रकाशित: २०२५ फेब्रुअरी १५: २३:१६:०७ UTC

यस लेखले डायनामिक्स एएक्स २०१२ मा आधार गणनको तत्वहरू कसरी गणना गर्ने र लुप गर्ने भनेर व्याख्या गर्दछ, जसमा एक्स ++ कोड उदाहरण समावेश छ।


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

How to Iterate Over the Elements of an Enum from X++ Code in Dynamics AX 2012

यस पोस्टमा जानकारी डायनामिक्स एएक्स 2012 आर 3 मा आधारित छ। यो अन्य संस्करणका लागि मान्य हुन सक्छ वा नहुन पनि सक्छ ।

म भर्खरै एक फारम सिर्जना गर्दै थिएँ जुन गणनामा प्रत्येक तत्वको लागि मान प्रदर्शन गर्न आवश्यक थियो। म्यानुअल रूपमा फिल्डहरू सिर्जना गर्नुको सट्टा (र त्यसपछि एनम कहिल्यै परिमार्जन गरिएको छ भने फारम कायम राख्न आवश्यक छ), मैले यसलाई गतिशील रूपमा कार्यान्वयन गर्ने निर्णय गरें ताकि यसले स्वचालित रूपमा रन टाइममा डिजाइनमा फिल्डहरू थप्नेछ।

तथापि, मैले चाँडै पत्ता लगाएँ कि वास्तवमा एक गणनामा मानहरू माथि पुनरावृत्ति, जबकि एक पटक तपाईं कसरी जान्नुहुन्छ, अलि भ्रामक छ।

तपाईं स्पष्ट रूपमा डिक्टेनम वर्गबाट सुरु गर्न आवश्यक छ। तपाईंले देख्नुहुनेछ, यस वर्गमा अनुक्रमणिका र मान दुवैबाट नाम र लेबल जस्ता जानकारी प्राप्त गर्नका लागि धेरै विधिहरू छन्।

अनुक्रमणिका र मानबीचको भिन्नता यो हो कि अनुक्रमणिका गणनमा तत्वको संख्या हो, यदि गणको तत्वहरू क्रमिक रूपमा शून्यबाट सुरु हुन्छ भने, जबकि मान तत्वको वास्तविक "मान" गुण हो। प्रायजसो गणनहरूमा ० बाट क्रमिक रूपमा गणना गरिएका मानहरू हुने भएकोले, तत्वको अनुक्रमणिका र मान प्रायः समान हुन्छ, तर निश्चित रूपमा सधैं होइन।

तर तपाईं कसरी थाहा पाउन सक्नुहुन्छ कि एक गणको कुन मूल्यहरू छन्? यो जहाँ यो भ्रामक हुन्छ। डिक्टेनम वर्गमा मान () नामक विधि छ। तपाईं यो विधिले गणको मानहरूको सूची फिर्ता गर्ने अपेक्षा गर्न सक्नुहुन्छ, तर यो स्पष्ट रूपमा धेरै सजिलो हुनेछ, त्यसैले यसको सट्टा यसले गणनामा समावेश मानहरूको संख्या फर्काउँछ। यद्यपि, मानहरूको संख्याको वास्तविक मानहरूसँग कुनै सम्बन्ध छैन, त्यसैले तपाईंले यो नम्बरलाई अनुक्रमणिका-आधारित विधिहरू कल गर्ने आधारको रूपमा प्रयोग गर्न आवश्यक छ, न कि मान-आधारित।

यदि तिनीहरूले यस विधिलाई अनुक्रमणिकाहरू () को सट्टामा नामकरण गरेको भए, यो कम भ्रामक हुने थियो ;-)

यो पनि मनमा राख्नुहोस् कि गणमान मानहरू (र स्पष्ट रूपमा यी "अनुक्रमणिकाहरू") एक्स ++ मा सरणी र कन्टेनर अनुक्रमणिकाहरूको विपरीत 0 मा सुरु हुन्छ, जुन 1 मा सुरु हुन्छ, त्यसैले एनममा तत्वहरू लुप गर्न तपाईं यस्तो केहि गर्न सक्नुहुनेछ:

DictEnum dictEnum = new DictEnum(enumNum(SalesStatus));
Counter  c;
;

for (c = 0; c < dictEnum.values(); c++)
{
    info(strFmt('%1: %2', dictEnum.index2Symbol(c), dictEnum.index2Label(c)));
}

यसले इन्फोलगमा गणमा प्रत्येक तत्वको प्रतीक र लेबल आउटपुट गर्नेछ।

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

मिकेल बाङ क्रिस्टेनसेन

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

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