03.07.2007, 13:10 | #1 |
Участник
|
проблема с DictField
Такая проблема:
Есть таблица с перечнем модулей, доступных пользователю. Впоследствии програмным образом на основании этого производятся определенные действия. Нужно создать функцию добавления всех значений для пользователя. Пишу: X++: void CreateModules(){ UserModelGroups UMG; DictType MG; int i; ; MG=new DictType(EnumName2Id("ModuleAxapta")); ttsbegin; for(i=1;i<=MG.arraySize();i++){ if(!UserModelGroups::findModel(this.ValuesGroupId,MG.getValue(i))){ UMG.ValuesGroupId=this.ValuesGroupId; UMG.InventModelGroupId=MG.getValue(i); UMG.insert(); } } ttscommit; } |
|
03.07.2007, 13:16 | #2 |
Участник
|
DictType - описывает ExtendedDataTypes
а у вас, насколько я понял, BaseEnum для этого - SysDictEnum (DictEnum) и вместо EnumName2Id лучше наверное enumNum(ModuleAxapta) правда в этом случае непонятно, какое такое свойство ArraySize вы хотите проверять |
|
03.07.2007, 13:47 | #3 |
Участник
|
arraysize - количество элементов типа, чтобы по всем им пробежаться и добавить.
|
|
03.07.2007, 13:53 | #4 |
Участник
|
Хорошо, тогда другой вопрос: как из этого самого DictEnum получить значение типа ModuleAxapta? его метод index2value возвращает int
|
|
03.07.2007, 13:54 | #5 |
Участник
|
Итак, еще раз.
Если у вас расширенный тип, и у него несколько элементов (как у Dimension), то тогда вы используете ArraySize и класс DictType если же это перечислимый тип, то вы используете класс DictEnum и для получения перечня элементов и их значений arraySize яно не катит X++: static void Job83(Args _args) { SysDictEnum dictEnum = new SysDictEnum(enumNum(ItemType)); int i; ; for (i = 0; i < dictEnum.values(); i++) { print dictEnum.index2Name(i); print dictEnum.index2Value(i); } pause; } |
|
|
За это сообщение автора поблагодарили: Мариночка (1). |
03.07.2007, 13:55 | #6 |
Участник
|
Цитата:
Поэтому логично, что именно этот тип и возвращается |
|
03.07.2007, 14:00 | #7 |
Участник
|
Вроде получилось: int скушался как значение. Спасибо.
|
|
|
Похожие темы | ||||
Тема | Ответов | |||
Проблема с единицей измерения | 4 | |||
макрос DictField | 15 | |||
Проблема с созданием объекта | 33 | |||
Проблема: русские шрифты в отчетах, формируемых на сервере. | 3 | |||
Проблема с временной таблицей | 5 |
|