获取EDT Dimension的数组元素的索引

时间:2011-05-06 10:31:04

标签: x++ axapta

我需要写一份工作,我可以获取EDT Dimension数组元素的索引 例如在我的EDT Dimension中,我有数组元素A B C当我点击它们获取属性时,我看到A的索引为1,B为2,C为3现在有了一份工作,我想要获取索引值。请帮助。

3 个答案:

答案 0 :(得分:0)

我不确定我是否真的了解真正的问题。一些代码示例可以提供帮助 Dimensions表有一些有用的方法,如arrayIdx2Code

以下代码可能会有所帮助:

static void Job1(Args _args)
{
    Counter         idx;
    Dimension       dimension;
    DimensionCode   dimensionCode;
    str             name;
    ;
    for (idx = 1; idx <= dimof(dimension); idx++)
    {
        dimensionCode = Dimensions::arrayIdx2Code(idx);
        name = enum2str(dimensionCode);
        // if (name == 'B') ...
        info(strfmt("%1: %2", idx, name));
    }
}

答案 1 :(得分:0)

我找到了一种方法,但仍然在寻找是否有其他解决方案。

static void Job10(Args _args)
{

    Dicttype    dicttype;
    counter     i;
    str         test;
    ;
    test = "Client";
    dicttype = new dicttype(132);//132 here is the id of edt dimension 

    for (i=1;i<=dicttype.arraySize();i++)
    {
        if ( dicttype.label(i) == test)
        {
            break;
        }
    }
    print i;
    pause;

}

答案 2 :(得分:0)

示例中的数组元素A B C只不过是简单的标签 - 它们不能用作标识符。首先,为了方便用户,标签可以随时修改,即使不是,标签也会有不同的语言,等等。

总体而言,您的方法(查询DictType)是正确的,但我无法想到实际需要此类代码的任何方案。

如果您澄清了业务需求,则可以提出更好的解决方案。