ଡାଇନାମିକ୍ସ AX 2012 ରେ X++ କୋଡ୍ ରୁ ଏକ ଏନୁମ୍ ର ଉପାଦାନଗୁଡିକ ଉପରେ କିପରି ଇଟେରେଟ୍ କରିବେ
ପ୍ରକାଶିତ: 11:16:05 PM UTC ଠାରେ ଫେବୃଆରୀ 15, 2025
ଏକ X++ କୋଡ୍ ଉଦାହରଣ ସମେତ ଡାଇନାମିକ୍ସ AX 2012 ରେ ଏକ ବେସ୍ ଏନୁମର ଉପାଦାନଗୁଡ଼ିକୁ କିପରି ଗଣନା ଏବଂ ଲୁପ୍ କରାଯିବ ତାହା ଏହି ପ୍ରବନ୍ଧରେ ବର୍ଣ୍ଣନା କରାଯାଇଛି।
How to Iterate Over the Elements of an Enum from X++ Code in Dynamics AX 2012
ଏହି ପୋଷ୍ଟରେ ଥିବା ସୂଚନା ଡାଇନାମିକ୍ସ ଏଏକ୍ସ ୨୦୧୨ ଆର୩ ଉପରେ ଆଧାରିତ । ଏହା ଅନ୍ୟ ସଂସ୍କରଣ ପାଇଁ ବୈଧ ହୋଇପାରେ କିମ୍ବା ହୋଇନପାରେ।
ମୁଁ ନିକଟରେ ଏକ ଫର୍ମ ସୃଷ୍ଟି କରୁଥିଲି ଯାହାକୁ ଏକ ଏନୁମରେ ପ୍ରତ୍ୟେକ ଉପାଦାନ ପାଇଁ ଏକ ମୂଲ୍ୟ ପ୍ରଦର୍ଶନ କରିବା ଆବଶ୍ୟକ ଥିଲା । ମାନୁଆଲି ଫିଲ୍ଡଗୁଡିକ ସୃଷ୍ଟି କରିବା ପରିବର୍ତ୍ତେ (ଏବଂ ତା'ପରେ ଯଦି ଏନମ୍ କେବେ ବି ସଂଶୋଧିତ ହୁଏ ତେବେ ଫର୍ମ ବଜାୟ ରଖିବାଆବଶ୍ୟକ), ମୁଁ ଏହାକୁ ଗତିଶୀଳ ଭାବରେ କାର୍ଯ୍ୟକାରୀ କରିବାକୁ ସ୍ଥିର କଲି ଯାହା ଦ୍ୱାରା ଏହା ସ୍ୱତଃସ୍ପୃତ ଭାବରେ ଚାଲୁଥିବା ସମୟରେ ଡିଜାଇନରେ ଫିଲ୍ଡଗୁଡିକ ଯୋଡିବ ।
ତଥାପି, ମୁଁ ଶୀଘ୍ର ଆବିଷ୍କାର କଲି ଯେ ପ୍ରକୃତରେ ଏକ ଏନୁମରେ ମୂଲ୍ୟବୋଧ ଉପରେ ପୁନରାବୃତ୍ତି କରିବା, ଯଦିଓ ଆପଣ କିପରି ଜାଣନ୍ତି, ଏହା ଟିକେ ବିଭ୍ରାନ୍ତିକର ଅଟେ ।
ଆପଣନିଶ୍ଚିତ ଭାବରେ ଡିକ୍ଟେନମ୍ ଶ୍ରେଣୀରୁ ଆରମ୍ଭ କରିବା ଆବଶ୍ୟକ। ଆପଣ ଦେଖିବେ, ଏହି ଶ୍ରେଣୀରେ ଉଭୟ ସୂଚକାଙ୍କ ଏବଂ ମୂଲ୍ୟରୁ ନାମ ଏବଂ ଲେବଲ୍ ପରି ସୂଚନା ପ୍ରାପ୍ତ କରିବା ପାଇଁ ଅନେକ ପଦ୍ଧତି ଅଛି।
ସୂଚକାଙ୍କ ଏବଂ ମୂଲ୍ୟ ମଧ୍ୟରେ ପାର୍ଥକ୍ୟ ହେଉଛି ସୂଚକାଙ୍କ ହେଉଛି ଏନୁମରେ ଥିବା ଏକ ଉପାଦାନର ସଂଖ୍ୟା, ଯଦି ଏନୁମର ଉପାଦାନଗୁଡ଼ିକଶୂନ୍ୟରୁ କ୍ରମାଗତ ଭାବରେ ଗଣନା କରାଯାଏ, ଯେତେବେଳେ ମୂଲ୍ୟ ହେଉଛି ତତ୍ତ୍ୱର ପ୍ରକୃତ "ମୂଲ୍ୟ" ସମ୍ପତ୍ତି । ଯେହେତୁ ଅଧିକାଂଶ ଏନୁମର ମୂଲ୍ୟ 0 ରୁ କ୍ରମାଗତ ଭାବରେ ଗଣନା କରାଯାଏ, ଏକ ଉପାଦାନର ସୂଚକାଙ୍କ ଏବଂ ମୂଲ୍ୟ ପ୍ରାୟତଃ ସମାନ ହେବ, କିନ୍ତୁ ନିଶ୍ଚିତ ଭାବରେ ସର୍ବଦା ନୁହେଁ।
କିନ୍ତୁ ଆପଣ କେମିତି ଜାଣିବେ ଯେ ଏନୁମର କେଉଁ ମୂଲ୍ୟବୋଧ ଅଛି? ଏଠାରେ ଏହା ବିଭ୍ରାନ୍ତିକର ହୋଇପଡ଼େ। ଡିକ୍ଟେନମ୍ ଶ୍ରେଣୀର ଏକ ପଦ୍ଧତି ଅଛି ଯାହାକୁ ମୂଲ୍ୟ () କୁହାଯାଏ । ଆପଣ ଆଶା କରିପାରନ୍ତି ଯେ ଏହି ପଦ୍ଧତି ଏନୁମର ମୂଲ୍ୟର ଏକ ତାଲିକା ଫେରାଇବ, କିନ୍ତୁ ଏହା ନିଶ୍ଚିତ ଭାବରେ ବହୁତ ସହଜ ହେବ, ତେଣୁ ଏହା ବଦଳରେ ଏହା ଏନୁମରେ ଥିବା ମୂଲ୍ୟ ସଂଖ୍ୟାକୁ ଫେରାଇ ଦିଏ। ତଥାପି, ମୂଲ୍ୟ ସଂଖ୍ୟାର ପ୍ରକୃତ ମୂଲ୍ୟ ସହିତ କୌଣସି ସମ୍ପର୍କ ନାହିଁ, ତେଣୁ ଆପଣ ଏହି ସଂଖ୍ୟାକୁ ସୂଚକାଙ୍କ-ଆଧାରିତ ପଦ୍ଧତିକୁ କଲ୍ କରିବା ପାଇଁ ଏକ ଆଧାର ଭାବରେ ବ୍ୟବହାର କରିବା ଆବଶ୍ୟକ, ମୂଲ୍ୟ-ଆଧାରିତ ନୁହେଁ।
ଯଦି ସେମାନେ ଏହା ବଦଳରେ ଏହି ପଦ୍ଧତିର ନାମ ସୂଚକାଙ୍କ () ରଖିଥାନ୍ତେ, ତେବେ ଏହା କମ୍ ବିଭ୍ରାନ୍ତିକର ହୋଇଥାନ୍ତା ;-)
ଏହା ମଧ୍ୟ ମନେ ରଖନ୍ତୁ ଯେ ଏନୁମ୍ ମୂଲ୍ୟ (ଏବଂ ସ୍ପଷ୍ଟ ଭାବରେ ଏହି "ସୂଚକାଙ୍କ") X++ ରେ ଆରେ ଏବଂ କଣ୍ଟେନର ଇଣ୍ଡେକ୍ସ ଠାରୁ ଭିନ୍ନ 0 ରେ ଆରମ୍ଭ ହୁଏ, ଯାହା 1 ରୁ ଆରମ୍ଭ ହୁଏ, ତେଣୁ ଏକ ଏନୁମରେ ଥିବା ଉପାଦାନଗୁଡ଼ିକୁ ଲୁପ୍ କରିବା ପାଇଁ ଆପଣ ଏପରି କିଛି କରିପାରିବେ:
Counter c;
;
for (c = 0; c < dictEnum.values(); c++)
{
info(strFmt('%1: %2', dictEnum.index2Symbol(c), dictEnum.index2Label(c)));
}
ଏହା ଇନ୍ଫୋଲଗ୍ ରେ ଥିବା ପ୍ରତ୍ୟେକ ଉପାଦାନର ପ୍ରତୀକ ଏବଂ ଲେବଲ୍ କୁ ଆଉଟପୁଟ୍ କରିବ।