Предположим, что поле со списком связано с перечислением «ABC». Элементы в нем А, В, С и D.
Теперь мне нужно получить только A и C в поле со списком, а не B и D?
Это возможно?
Предположим, что поле со списком связано с перечислением «ABC». Элементы в нем А, В, С и D.
Теперь мне нужно получить только A и C в поле со списком, а не B и D?
Это возможно?
Невозможно удалить значения перечисления или значения со списком.
Вы можете продублировать перечисление, затем удалить элементы или изменить порядок (но не значение перечисления). Вы будете нести ответственность за синхронизацию обоих типов перечислений с будущими изменениями.
Чтобы присвоить перечисление другому несовместимому перечислению, просто добавьте к нему ноль!
abc = myAbc + 0;
Или вы можете обновить поле со списком с помощью программирования (используя поле со списком без указания типа перечисления):
YourComboBox.add("A");
YourComboBox.add("C");
См. также Enum как параметр в Dynamics AX о добавлении новых значений в поле со списком.
Хотя невозможно удалить значения перечисления во время выполнения, можно скрыть значения перечисления для всего приложения. Просто измените ConfiguratioKey значения перечисления на «SysDeletedObjects40», и оно исчезнет как допустимое значение. Я предполагаю, что этот ключ конфигурации не включен!
Легко, создайте метод запуска в своей форме и поместите это:
public void run()
{
super();
YourCombo.delete(enum2str(YourEnum::B));
YourCombo.delete(enum2str(YourEnum::D));
}
С Уважением
Я бы использовал комбинацию обоих! Сделайте 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)));
}
}