0

我需要编写一个作业,我可以在其中获取 EDT Dimension 的数组元素的索引,例如在我的 EDT中,当我单击它们获取属性时,Dimension我有数组元素A B C,我看到 A 的索引为 1,B 的索引为 2,C 的索引为 3 . 现在有一个作业 ui 想要获取索引值。请协助。

4

3 回答 3

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));
    }
}
于 2011-05-06T12:27:51.223 回答
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;

}
于 2011-05-06T12:55:43.840 回答
0

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

总体而言,您的方法(查询DictType)是正确的,但我想不出任何实际需要这样代码的场景。

如果您阐明了您的业务需求,那么有人可以提出更好的解决方案。

于 2011-05-10T11:06:56.747 回答