Miklix

ಡೈನಾಮಿಕ್ಸ್ AX 2012 ನಲ್ಲಿ X++ ಕೋಡ್ ನಿಂದ ಎನಮ್ ನ ಅಂಶಗಳನ್ನು ಹೇಗೆ ಕಂಡುಹಿಡಿಯುವುದು

ಪ್ರಕಟಣೆ: ಫೆಬ್ರವರಿ 15, 2025 ರಂದು 11:11:22 ಅಪರಾಹ್ನ UTC ಸಮಯಕ್ಕೆ
ಕೊನೆಯದಾಗಿ ನವೀಕರಿಸಲಾಗಿದೆ: ಜನವರಿ 12, 2026 ರಂದು 08:42:22 ಪೂರ್ವಾಹ್ನ UTC ಸಮಯಕ್ಕೆ

ಈ ಲೇಖನವು ಡೈನಾಮಿಕ್ಸ್ AX 2012 ರಲ್ಲಿ ಬೇಸ್ ಎನಮ್‌ನ ಅಂಶಗಳನ್ನು ಹೇಗೆ ಎಣಿಸುವುದು ಮತ್ತು ಲೂಪ್ ಮಾಡುವುದು ಎಂಬುದನ್ನು ವಿವರಿಸುತ್ತದೆ, ಇದರಲ್ಲಿ X++ ಕೋಡ್ ಉದಾಹರಣೆಯೂ ಸೇರಿದೆ.


ಸಾಧ್ಯವಾದಷ್ಟು ಜನರಿಗೆ ಲಭ್ಯವಾಗುವಂತೆ ಮಾಡಲು ಈ ಪುಟವನ್ನು ಇಂಗ್ಲಿಷ್‌ನಿಂದ ಯಂತ್ರಭಾಷಾಂತರಿಸಲಾಗಿದೆ. ದುರದೃಷ್ಟವಶಾತ್, ಯಂತ್ರಭಾಷಾಂತರವು ಇನ್ನೂ ಪರಿಪೂರ್ಣ ತಂತ್ರಜ್ಞಾನವಾಗಿಲ್ಲ, ಆದ್ದರಿಂದ ದೋಷಗಳು ಸಂಭವಿಸಬಹುದು. ನೀವು ಬಯಸಿದರೆ, ನೀವು ಮೂಲ ಇಂಗ್ಲಿಷ್ ಆವೃತ್ತಿಯನ್ನು ಇಲ್ಲಿ ವೀಕ್ಷಿಸಬಹುದು:

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

ಈ ಪೋಸ್ಟ್‌ನಲ್ಲಿರುವ ಮಾಹಿತಿಯು ಡೈನಾಮಿಕ್ಸ್ AX 2012 R3 ಅನ್ನು ಆಧರಿಸಿದೆ. ಇದು ಇತರ ಆವೃತ್ತಿಗಳಿಗೆ ಮಾನ್ಯವಾಗಿರಬಹುದು ಅಥವಾ ಇಲ್ಲದಿರಬಹುದು.

ನಾನು ಇತ್ತೀಚೆಗೆ ಒಂದು ಎನಮ್‌ನಲ್ಲಿ ಪ್ರತಿಯೊಂದು ಅಂಶಕ್ಕೂ ಮೌಲ್ಯವನ್ನು ಪ್ರದರ್ಶಿಸಲು ಅಗತ್ಯವಿರುವ ಫಾರ್ಮ್ ಅನ್ನು ರಚಿಸುತ್ತಿದ್ದೆ. ಕ್ಷೇತ್ರಗಳನ್ನು ಹಸ್ತಚಾಲಿತವಾಗಿ ರಚಿಸುವ ಬದಲು (ಮತ್ತು ನಂತರ ಎನಮ್ ಅನ್ನು ಎಂದಾದರೂ ಮಾರ್ಪಡಿಸಿದರೆ ಫಾರ್ಮ್ ಅನ್ನು ನಿರ್ವಹಿಸುವ ಅಗತ್ಯವಿರುತ್ತದೆ), ನಾನು ಅದನ್ನು ಕ್ರಿಯಾತ್ಮಕವಾಗಿ ಕಾರ್ಯಗತಗೊಳಿಸಲು ನಿರ್ಧರಿಸಿದೆ ಇದರಿಂದ ಅದು ರನ್ ಸಮಯದಲ್ಲಿ ವಿನ್ಯಾಸಕ್ಕೆ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಕ್ಷೇತ್ರಗಳನ್ನು ಸೇರಿಸುತ್ತದೆ.

ಆದಾಗ್ಯೂ, ಒಂದು ಎನಮ್‌ನಲ್ಲಿನ ಮೌಲ್ಯಗಳನ್ನು ಪುನರಾವರ್ತಿಸುವುದು ನಿಮಗೆ ತಿಳಿದ ನಂತರ ಸಾಕಷ್ಟು ಸುಲಭವಾದರೂ, ಸ್ವಲ್ಪ ಗೊಂದಲಮಯವಾಗಿದೆ ಎಂದು ನಾನು ಶೀಘ್ರದಲ್ಲೇ ಕಂಡುಕೊಂಡೆ.

ನೀವು ನಿಸ್ಸಂಶಯವಾಗಿ DictEnum ವರ್ಗದಿಂದ ಪ್ರಾರಂಭಿಸಬೇಕಾಗಿದೆ. ನೀವು ನೋಡುವಂತೆ, ಈ ವರ್ಗವು ಸೂಚ್ಯಂಕ ಮತ್ತು ಮೌಲ್ಯ ಎರಡರಿಂದಲೂ ಹೆಸರು ಮತ್ತು ಲೇಬಲ್‌ನಂತಹ ಮಾಹಿತಿಯನ್ನು ಪಡೆಯಲು ಹಲವಾರು ವಿಧಾನಗಳನ್ನು ಹೊಂದಿದೆ.

ಸೂಚ್ಯಂಕ ಮತ್ತು ಮೌಲ್ಯದ ನಡುವಿನ ವ್ಯತ್ಯಾಸವೆಂದರೆ ಸೂಚ್ಯಂಕವು ಎನಮ್‌ನಲ್ಲಿನ ಒಂದು ಅಂಶದ ಸಂಖ್ಯೆಯಾಗಿದೆ, ಎನಮ್‌ನ ಅಂಶಗಳನ್ನು ಶೂನ್ಯದಿಂದ ಪ್ರಾರಂಭಿಸಿ ಅನುಕ್ರಮವಾಗಿ ಸಂಖ್ಯೆ ಮಾಡಿದ್ದರೆ, ಮೌಲ್ಯವು ಅಂಶದ ನಿಜವಾದ "ಮೌಲ್ಯ" ಆಸ್ತಿಯಾಗಿದೆ. ಹೆಚ್ಚಿನ ಎನಮ್‌ಗಳು 0 ರಿಂದ ಅನುಕ್ರಮವಾಗಿ ಸಂಖ್ಯೆ ಮಾಡಲಾದ ಮೌಲ್ಯಗಳನ್ನು ಹೊಂದಿರುವುದರಿಂದ, ಒಂದು ಅಂಶದ ಸೂಚ್ಯಂಕ ಮತ್ತು ಮೌಲ್ಯವು ಹೆಚ್ಚಾಗಿ ಒಂದೇ ಆಗಿರುತ್ತದೆ, ಆದರೆ ಖಂಡಿತವಾಗಿಯೂ ಯಾವಾಗಲೂ ಅಲ್ಲ.

ಆದರೆ ಎನಮ್ ಯಾವ ಮೌಲ್ಯಗಳನ್ನು ಹೊಂದಿದೆ ಎಂದು ನಿಮಗೆ ಹೇಗೆ ತಿಳಿಯುತ್ತದೆ? ಇಲ್ಲಿಯೇ ಅದು ಗೊಂದಲಕ್ಕೊಳಗಾಗುತ್ತದೆ. DictEnum ವರ್ಗವು values() ಎಂಬ ವಿಧಾನವನ್ನು ಹೊಂದಿದೆ. ಈ ವಿಧಾನವು enum ನ ಮೌಲ್ಯಗಳ ಪಟ್ಟಿಯನ್ನು ಹಿಂತಿರುಗಿಸುತ್ತದೆ ಎಂದು ನೀವು ನಿರೀಕ್ಷಿಸಬಹುದು, ಆದರೆ ಅದು ಸ್ಪಷ್ಟವಾಗಿ ತುಂಬಾ ಸುಲಭವಾಗಿರುತ್ತದೆ, ಆದ್ದರಿಂದ ಅದು enum ಹೊಂದಿರುವ ಮೌಲ್ಯಗಳ ಸಂಖ್ಯೆಯನ್ನು ಹಿಂತಿರುಗಿಸುತ್ತದೆ. ಆದಾಗ್ಯೂ, ಮೌಲ್ಯಗಳ ಸಂಖ್ಯೆಯು ನಿಜವಾದ ಮೌಲ್ಯಗಳೊಂದಿಗೆ ಯಾವುದೇ ಸಂಬಂಧವನ್ನು ಹೊಂದಿಲ್ಲ, ಆದ್ದರಿಂದ ನೀವು ಈ ಸಂಖ್ಯೆಯನ್ನು ಸೂಚ್ಯಂಕ ಆಧಾರಿತ ವಿಧಾನಗಳನ್ನು ಕರೆಯಲು ಆಧಾರವಾಗಿ ಬಳಸಬೇಕಾಗುತ್ತದೆ, ಮೌಲ್ಯ ಆಧಾರಿತ ವಿಧಾನಗಳಲ್ಲ.

ಅವರು ಈ ವಿಧಾನಕ್ಕೆ indexes() ಎಂದು ಹೆಸರಿಸಿದ್ದರೆ, ಅದು ಕಡಿಮೆ ಗೊಂದಲಮಯವಾಗಿರುತ್ತಿತ್ತು ;-)

ಎನಮ್ ಮೌಲ್ಯಗಳು (ಮತ್ತು ಸ್ಪಷ್ಟವಾಗಿ ಈ "ಸೂಚ್ಯಂಕಗಳು") 0 ರಿಂದ ಪ್ರಾರಂಭವಾಗುತ್ತವೆ ಎಂಬುದನ್ನು ನೆನಪಿನಲ್ಲಿಡಿ, X++ ನಲ್ಲಿ ಅರೇ ಮತ್ತು ಕಂಟೇನರ್ ಸೂಚ್ಯಂಕಗಳು 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)));
}

ಇದು ಎನಮ್‌ನಲ್ಲಿರುವ ಪ್ರತಿಯೊಂದು ಅಂಶದ ಚಿಹ್ನೆ ಮತ್ತು ಲೇಬಲ್ ಅನ್ನು ಇನ್ಫೋಲಾಗ್‌ಗೆ ಔಟ್‌ಪುಟ್ ಮಾಡುತ್ತದೆ.

ಹೆಚ್ಚಿನ ಓದಿಗೆ

ನೀವು ಈ ಪೋಸ್ಟ್ ಅನ್ನು ಆನಂದಿಸಿದ್ದರೆ, ನೀವು ಈ ಸಲಹೆಗಳನ್ನು ಸಹ ಇಷ್ಟಪಡಬಹುದು:


ಬ್ಲೂಸ್ಕೈನಲ್ಲಿ ಹಂಚಿಕೊಳ್ಳಿಫೇಸ್‌ಬುಕ್‌ನಲ್ಲಿ ಹಂಚಿಕೊಳ್ಳಿLinkedIn ನಲ್ಲಿ ಹಂಚಿಕೊಳ್ಳಿTumblr ನಲ್ಲಿ ಹಂಚಿಕೊಳ್ಳಿX ನಲ್ಲಿ ಹಂಚಿಕೊಳ್ಳಿLinkedIn ನಲ್ಲಿ ಹಂಚಿಕೊಳ್ಳಿPinterest ನಲ್ಲಿ ಪಿನ್ ಮಾಡಿ

ಮಿಕೆಲ್ ಕ್ರಿಸ್ಟೆನ್ಸನ್

ಲೇಖಕರ ಬಗ್ಗೆ

ಮಿಕೆಲ್ ಕ್ರಿಸ್ಟೆನ್ಸನ್
ಮಿಕೆಲ್ miklix.com ನ ಸೃಷ್ಟಿಕರ್ತ ಮತ್ತು ಮಾಲೀಕರು. ಅವರು ವೃತ್ತಿಪರ ಕಂಪ್ಯೂಟರ್ ಪ್ರೋಗ್ರಾಮರ್/ಸಾಫ್ಟ್‌ವೇರ್ ಡೆವಲಪರ್ ಆಗಿ 20 ವರ್ಷಗಳಿಗೂ ಹೆಚ್ಚು ಅನುಭವ ಹೊಂದಿದ್ದಾರೆ ಮತ್ತು ಪ್ರಸ್ತುತ ದೊಡ್ಡ ಯುರೋಪಿಯನ್ ಐಟಿ ಕಾರ್ಪೊರೇಷನ್‌ನಲ್ಲಿ ಪೂರ್ಣ ಸಮಯದ ಉದ್ಯೋಗಿಯಾಗಿದ್ದಾರೆ. ಬ್ಲಾಗಿಂಗ್ ಮಾಡದಿರುವಾಗ, ಅವರು ತಮ್ಮ ಬಿಡುವಿನ ವೇಳೆಯನ್ನು ವ್ಯಾಪಕವಾದ ಆಸಕ್ತಿಗಳು, ಹವ್ಯಾಸಗಳು ಮತ್ತು ಚಟುವಟಿಕೆಗಳಲ್ಲಿ ಕಳೆಯುತ್ತಾರೆ, ಇದು ಸ್ವಲ್ಪ ಮಟ್ಟಿಗೆ ಈ ವೆಬ್‌ಸೈಟ್‌ನಲ್ಲಿ ಒಳಗೊಂಡಿರುವ ವಿವಿಧ ವಿಷಯಗಳಲ್ಲಿ ಪ್ರತಿಫಲಿಸಬಹುದು.