Miklix

ଡାଇନାମିକ୍ସ AX 2012 ରେ X++ କୋଡ୍ ରୁ ଏକ ଏନୁମ୍ ର ଉପାଦାନଗୁଡିକ ଉପରେ କିପରି ଇଟେରେଟ୍ କରିବେ

ପ୍ରକାଶିତ: 11:16:05 PM UTC ଠାରେ ଫେବୃଆରୀ 15, 2025
ଶେଷ ଥର ପାଇଁ ଅଦ୍ୟତନ ହୋଇଥିଲା: 8:42:27 AM UTC ଠାରେ ଜାନୁଆରୀ 12, 2026

ଏହି ଆର୍ଟିକିଲ୍ ବ୍ୟାଖ୍ୟା କରେ ଯେ Dynamics AX 2012 ରେ ଏକ X++ କୋଡ୍ ଉଦାହରଣ ସହିତ ଏକ ବେସ୍ enum ର ଉପାଦାନଗୁଡ଼ିକୁ କିପରି ଗଣନା ଏବଂ ଲୁପ୍ କରାଯିବ।


ଏହି ପୃଷ୍ଠାକୁ ଅଧିକରୁ ଅଧିକ ଲୋକଙ୍କ ପାଖରେ ପହଞ୍ଚାଇବା ପାଇଁ ଇଂରାଜୀରୁ ମେସିନ୍ ଅନୁବାଦ କରାଯାଇଥିଲା। ଦୁର୍ଭାଗ୍ୟବଶତଃ, ମେସିନ୍ ଅନୁବାଦ ଏପର୍ଯ୍ୟନ୍ତ ଏକ ସିଦ୍ଧ ପ୍ରଯୁକ୍ତିବିଦ୍ୟା ନୁହେଁ, ତେଣୁ ତ୍ରୁଟି ହୋଇପାରେ। ଯଦି ଆପଣ ଚାହାଁନ୍ତି, ତେବେ ଆପଣ ଏଠାରେ ମୂଳ ଇଂରାଜୀ ସଂସ୍କରଣ ଦେଖିପାରିବେ:

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

ଏହି ପୋଷ୍ଟରେ ଥିବା ସୂଚନା ଡାଇନାମିକ୍ସ AX 2012 R3 ଉପରେ ଆଧାରିତ। ଏହା ଅନ୍ୟ ସଂସ୍କରଣ ପାଇଁ ବୈଧ ହୋଇପାରେ କିମ୍ବା ନ ହୋଇପାରେ।

ମୁଁ ସମ୍ପ୍ରତି ଏକ ଫର୍ମ ତିଆରି କରୁଥିଲି ଯାହା ଏକ enum ରେ ପ୍ରତ୍ୟେକ ଉପାଦାନ ପାଇଁ ଏକ ମୂଲ୍ୟ ପ୍ରଦର୍ଶନ କରିବା ଆବଶ୍ୟକ କରୁଥିଲା। କ୍ଷେତ୍ରଗୁଡ଼ିକୁ ମାନୁଆଲୀ ତିଆରି କରିବା (ଏବଂ ଯଦି enum କେବେ ପରିବର୍ତ୍ତନ କରାଯାଏ ତେବେ ଫର୍ମକୁ ବଜାୟ ରଖିବା ଆବଶ୍ୟକ) ପରିବର୍ତ୍ତେ, ମୁଁ ଏହାକୁ ଗତିଶୀଳ ଭାବରେ କାର୍ଯ୍ୟକାରୀ କରିବାକୁ ନିଷ୍ପତ୍ତି ନେଇଥିଲି ଯାହା ଦ୍ଵାରା ଏହା ରନ୍ ସମୟରେ ଡିଜାଇନରେ ସ୍ୱୟଂଚାଳିତ ଭାବରେ କ୍ଷେତ୍ରଗୁଡ଼ିକୁ ଯୋଡିବ।

ତଥାପି, ମୁଁ ଶୀଘ୍ର ଆବିଷ୍କାର କଲି ଯେ ପ୍ରକୃତରେ ଏକ enum ରେ ମୂଲ୍ୟଗୁଡ଼ିକ ଉପରେ ପୁନରାବୃତ୍ତି କରିବା, ଯଦିଓ ଆପଣ କିପରି ଜାଣିଛନ୍ତି ତାହା ଯଥେଷ୍ଟ ସହଜ, ଟିକେ ଦ୍ୱନ୍ଦ୍ୱପୂର୍ଣ୍ଣ।

ଆପଣଙ୍କୁ ସ୍ପଷ୍ଟ ଭାବରେ DictEnum ଶ୍ରେଣୀ ସହିତ ଆରମ୍ଭ କରିବାକୁ ପଡିବ। ଆପଣ ଦେଖିବେ, ଏହି ଶ୍ରେଣୀରେ ଇଣ୍ଡେକ୍ସ ଏବଂ ମୂଲ୍ୟ ଉଭୟରୁ ନାମ ଏବଂ ଲେବଲ୍ ଭଳି ସୂଚନା ପାଇବା ପାଇଁ ଅନେକ ପଦ୍ଧତି ଅଛି।

ସୂଚକାଙ୍କ ଏବଂ ମୂଲ୍ୟ ମଧ୍ୟରେ ପାର୍ଥକ୍ୟ ହେଉଛି ସୂଚକାଙ୍କ ହେଉଛି enum ରେ ଏକ ଉପାଦାନର ସଂଖ୍ୟା, ଯଦି enum ର ଉପାଦାନଗୁଡ଼ିକୁ ଶୂନ୍ୟରୁ ଆରମ୍ଭ କରି କ୍ରମାନୁସାରେ ସଂଖ୍ୟା ଦିଆଯାଇଥାଏ, ଯେତେବେଳେ value ହେଉଛି ଉପାଦାନର ପ୍ରକୃତ "ମୂଲ୍ୟ" ଗୁଣଧର୍ମ। ଯେହେତୁ ଅଧିକାଂଶ enum ଗୁଡ଼ିକର ମୂଲ୍ୟ 0 ରୁ କ୍ରମାନୁସାରେ ସଂଖ୍ୟାଯୁକ୍ତ ହୋଇଥାଏ, ଏକ ଉପାଦାନର ସୂଚକାଙ୍କ ଏବଂ ମୂଲ୍ୟ ପ୍ରାୟତଃ ସମାନ ହେବ, କିନ୍ତୁ ନିଶ୍ଚିତ ଭାବରେ ସର୍ବଦା ନୁହେଁ।

କିନ୍ତୁ ଆପଣ କିପରି ଜାଣିବେ ଯେ ଏକ enum ର କେଉଁ ମୂଲ୍ୟ ଅଛି? ଏହିଠାରେ ଏହା ଦ୍ୱନ୍ଦ୍ୱ ସୃଷ୍ଟି କରେ। DictEnum ଶ୍ରେଣୀର values() ନାମକ ଏକ ପଦ୍ଧତି ଅଛି। ଆପଣ ଆଶା କରିପାରନ୍ତି ଯେ ଏହି ପଦ୍ଧତି enum ର ମୂଲ୍ୟଗୁଡ଼ିକର ଏକ ତାଲିକା ଫେରାଇବ, କିନ୍ତୁ ଏହା ସ୍ପଷ୍ଟ ଭାବରେ ବହୁତ ସହଜ ହେବ, ତେଣୁ ଏହା enum ଧାରଣ କରିଥିବା ମୂଲ୍ୟଗୁଡ଼ିକର ସଂଖ୍ୟା ଫେରାଇ ଆଣେ। ତଥାପି, ମୂଲ୍ୟଗୁଡ଼ିକର ସଂଖ୍ୟାର ପ୍ରକୃତ ମୂଲ୍ୟ ସହିତ କୌଣସି ସମ୍ପର୍କ ନାହିଁ, ତେଣୁ ଆପଣଙ୍କୁ ଏହି ସଂଖ୍ୟାକୁ ଇଣ୍ଡେକ୍ସ-ଆଧାରିତ ପଦ୍ଧତିଗୁଡ଼ିକୁ ଡାକିବା ପାଇଁ ଏକ ଆଧାର ଭାବରେ ବ୍ୟବହାର କରିବାକୁ ପଡିବ, ମୂଲ୍ୟ-ଆଧାରିତ ପଦ୍ଧତିଗୁଡ଼ିକୁ ନୁହେଁ।

ଯଦି ସେମାନେ ଏହି ପଦ୍ଧତିକୁ indexes() ନାମ ଦେଇଥାନ୍ତେ, ତେବେ ଏହା କମ୍ ଦ୍ୱନ୍ଦ୍ୱପୂର୍ଣ୍ଣ ହୋଇଥାନ୍ତା ;-)

ଏହା ମଧ୍ୟ ମନେ ରଖନ୍ତୁ ଯେ enum ମୂଲ୍ୟଗୁଡ଼ିକ (ଏବଂ ସ୍ପଷ୍ଟ ଭାବରେ ଏହି "ଇଣ୍ଡେକ୍ସଗୁଡ଼ିକ") 0 ରୁ ଆରମ୍ଭ ହୁଏ, X++ ରେ ଆରେ ଏବଂ କଣ୍ଟେନର ଇଣ୍ଡେକ୍ସ 1 ରୁ ଆରମ୍ଭ ହୁଏ, ତେଣୁ ଏକ enum ରେ ଉପାଦାନଗୁଡ଼ିକୁ ଲୁପ୍ କରିବା ପାଇଁ ଆପଣ ଏପରି କିଛି କରିପାରିବେ:

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)));
}

ଏହା enum ରେ ଥିବା ପ୍ରତ୍ୟେକ ଏଲିମେଣ୍ଟର ପ୍ରତୀକ ଏବଂ ଲେବଲ୍ infolog କୁ ଆଉଟପୁଟ୍ କରିବ।

ଅଧିକ ପଠନ

ଯଦି ଆପଣ ଏହି ପୋଷ୍ଟକୁ ଉପଭୋଗ କରିଛନ୍ତି, ତେବେ ଆପଣଙ୍କୁ ଏହି ପରାମର୍ଶଗୁଡ଼ିକ ମଧ୍ୟ ପସନ୍ଦ ଆସିପାରେ:


ବ୍ଲୁସ୍କିରେ ସେୟାର କରନ୍ତୁଫେସବୁକରେ ସେୟାର କରନ୍ତୁଲିଙ୍କଡିନ୍‌ରେ ସେୟାର୍‌ କରନ୍ତୁଟମ୍ବଲରରେ ସେୟାର କରନ୍ତୁX ରେ ସେୟାର କରନ୍ତୁଲିଙ୍କଡିନ୍‌ରେ ସେୟାର୍‌ କରନ୍ତୁପିନ୍ଟରେଷ୍ଟରେ ପିନ୍ କରନ୍ତୁ

ମିକେଲ୍ କ୍ରିଷ୍ଟେନସେନ୍

ଲେଖକଙ୍କ ବିଷୟରେ

ମିକେଲ୍ କ୍ରିଷ୍ଟେନସେନ୍
ମିକେଲ୍ ହେଉଛନ୍ତି miklix.com ର ସୃଷ୍ଟିକର୍ତ୍ତା ଏବଂ ମାଲିକ। ତାଙ୍କର ଜଣେ ବୃତ୍ତିଗତ କମ୍ପ୍ୟୁଟର ପ୍ରୋଗ୍ରାମର/ସଫ୍ଟୱେର୍ ଡେଭଲପର ଭାବରେ 20 ବର୍ଷରୁ ଅଧିକ ଅଭିଜ୍ଞତା ଅଛି ଏବଂ ସେ ବର୍ତ୍ତମାନ ଏକ ବଡ଼ ୟୁରୋପୀୟ IT କର୍ପୋରେସନରେ ପୂର୍ଣ୍ଣକାଳୀନ ନିଯୁକ୍ତି ପାଇଛନ୍ତି। ବ୍ଲଗ୍ ନ ଲେଖିବା ସମୟରେ, ସେ ତାଙ୍କର ଖାଲି ସମୟ ବିଭିନ୍ନ ପ୍ରକାରର ଆଗ୍ରହ, ହବି ଏବଂ କାର୍ଯ୍ୟକଳାପରେ ବିତାଇଥାନ୍ତି, ଯାହା କିଛି ପରିମାଣରେ ଏହି ୱେବସାଇଟରେ ଆବୃତ ବିଭିନ୍ନ ବିଷୟଗୁଡ଼ିକରେ ପ୍ରତିଫଳିତ ହୋଇପାରେ।