AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 03.07.2007, 13:10   #1  
gefr is offline
gefr
Участник
Аватар для gefr
MCBMSS
 
147 / 17 (1) ++
Регистрация: 01.11.2004
Адрес: МО, Котельники
? проблема с 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;
}
на .arraySize() он ругается: элемент не инициализирован. Что делаю не так?
Старый 03.07.2007, 13:16   #2  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
DictType - описывает ExtendedDataTypes
а у вас, насколько я понял, BaseEnum

для этого - SysDictEnum (DictEnum)
и вместо EnumName2Id лучше наверное enumNum(ModuleAxapta)

правда в этом случае непонятно, какое такое свойство ArraySize вы хотите проверять
Старый 03.07.2007, 13:47   #3  
gefr is offline
gefr
Участник
Аватар для gefr
MCBMSS
 
147 / 17 (1) ++
Регистрация: 01.11.2004
Адрес: МО, Котельники
arraysize - количество элементов типа, чтобы по всем им пробежаться и добавить.
Старый 03.07.2007, 13:53   #4  
gefr is offline
gefr
Участник
Аватар для gefr
MCBMSS
 
147 / 17 (1) ++
Регистрация: 01.11.2004
Адрес: МО, Котельники
Хорошо, тогда другой вопрос: как из этого самого DictEnum получить значение типа ModuleAxapta? его метод index2value возвращает int
Старый 03.07.2007, 13:54   #5  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Итак, еще раз.

Если у вас расширенный тип, и у него несколько элементов (как у 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  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Цитата:
Сообщение от george040875 Посмотреть сообщение
Хорошо, тогда другой вопрос: как из этого самого DictEnum получить значение типа ModuleAxapta? его метод index2value возвращает int
ну, вообще-то значение BaseEnum - это и есть int.
Поэтому логично, что именно этот тип и возвращается
Старый 03.07.2007, 14:00   #7  
gefr is offline
gefr
Участник
Аватар для gefr
MCBMSS
 
147 / 17 (1) ++
Регистрация: 01.11.2004
Адрес: МО, Котельники
Вроде получилось: int скушался как значение. Спасибо.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Проблема с единицей измерения longson DAX: Программирование 4 16.07.2007 14:35
макрос DictField simply2double DAX: Программирование 15 27.11.2006 12:00
Проблема с созданием объекта Lelya DAX: Администрирование 33 27.06.2005 16:38
Проблема: русские шрифты в отчетах, формируемых на сервере. Anais DAX: Администрирование 3 17.11.2003 13:20
Проблема с временной таблицей MIkeFW DAX: Программирование 5 18.09.2003 11:58

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 14:40.