假设组合框链接到枚举“ABC”。其中的元素是A,BC和D。
现在我只需要在组合框中得到 A 和 C 而不是 B 和 D?
这可能吗?
很简单,在您的表单中创建一个运行方法并输入:
public void run()
{
super();
YourCombo.delete(enum2str(YourEnum::B));
YourCombo.delete(enum2str(YourEnum::D));
}
问候
无法删除枚举值或组合框值。
您可以复制枚举,然后删除元素或更改顺序(但不是枚举值)。将这两种枚举类型与未来的更改保持同步将是您的责任。
要将枚举分配给另一个不兼容的枚举,只需为其添加零!
abc = myAbc + 0;
或者您可以使用编程更新您的组合框(使用组合框而不指定枚举类型):
YourComboBox.add("A");
YourComboBox.add("C");
另请参阅Enum as a Parameter in Dynamics AX关于向组合框添加新值。
虽然无法在运行时删除枚举值,但可以隐藏整个应用程序的枚举值。只需将枚举值的 ConfiguratioKey 更改为“SysDeletedObjects40”,它就会作为合法值消失。我将假设此配置密钥未启用!
我会使用两者的组合!执行 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)));
}
}