6

假设组合框链接到枚举“ABC”。其中的元素是A,BC和D。

现在我只需要在组合框中得到 A 和 C 而不是 B 和 D?

这可能吗?

4

3 回答 3

4

很简单,在您的表单中创建一个运行方法并输入:

public void run()
{
    super();

    YourCombo.delete(enum2str(YourEnum::B));
    YourCombo.delete(enum2str(YourEnum::D));
}

问候

于 2018-08-23T18:03:46.097 回答
3

无法删除枚举值或组合框值。

您可以复制枚举,然后删除元素或更改顺序(但不是枚举值)。将这两种枚举类型与未来的更改保持同步将是您的责任。

要将枚举分配给另一个不兼容的枚举,只需为其添加零!

abc = myAbc + 0;

或者您可以使用编程更新您的组合框(使用组合框而不指定枚举类型):

YourComboBox.add("A");
YourComboBox.add("C");

另请参阅Enum as a Parameter in Dynamics AX关于向组合框添加新值。

虽然无法在运行时删除枚举值,但可以隐藏整个应用程序的枚举值。只需将枚举值的 ConfiguratioKey 更改为“SysDeletedObjects40”,它就会作为合法值消失。我将假设此配置密钥未启用!

于 2011-09-16T08:37:17.050 回答
1

我会使用两者的组合!执行 combobox.add,但从枚举中派生值,并排除您不想要的值。这将让您遍历枚举,并将其与一些代码结合起来,您应该设置:

static void Job23(Args _args)
{
    SysDictEnum sysDictEnum;
    int i;
    ;

    sysDictEnum = new SysDictEnum(EnumNum(SalesStatus));

    for (i=0; i<sysDictEnum.values(); i++)
    {
        info(strfmt("%1", sysDictEnum.index2Label(i)));
    }
}
于 2011-10-25T22:22:19.397 回答