2011-09-16 38 views

回答

2

不可能刪除枚舉值或組合框值。

您可以複製枚舉,然後刪除元素或更改順序(但不是枚舉值)。保持這兩種枚舉類型與未來更改同步將是您的責任。

要將enum分配給另一個不兼容的枚舉,只需將它加零!

abc = myAbc + 0; 

,也可以使用程序(使用組合框沒有指定枚舉類型)更新您的組合框:

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

參見Enum as a Parameter in Dynamics AX有關添加新值的組合框。

雖然不可能在運行時刪除枚舉值,但可以隱藏整個應用程序的枚舉值。只需將枚舉值的ConfiguratioKey更改爲「SysDeletedObjects40」,並將其作爲合法值消失。我會假定這個配置鍵沒有啓用!

+0

更改配置重點爲「SysDeletedObjects40」的工作,但將這個是處理這個問題的適當方法?我仍然不確定是否有正確的方法去做 –

+0

只有當您將整個應用程序中的B和D隱藏時(正如答案中所述)。否則,你將不得不創建另一個枚舉,或者做一些編程(答案中的兩個第一選項)。 –

+0

是的,做到了這一點...感謝您的答案,即使我認爲相同..但有沒有其他方法可以做到這一點,而不是您指定的2個選項? –

0

我會使用兩者的組合!執行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))); 
    } 
}