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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 17.01.2002, 16:55   #1  
shestakov is offline
shestakov
Участник
 
18 / 10 (1) +
Регистрация: 14.12.2001
Проблема с объявлением переменных
В ClassDeclaration я объявляю переменную
int check;

В неком методе класса пытаюсь ее инициолизировать
check = 0;

Класс нормально компилится, но при запуске формы, в которой используется класс,
выдается ошибка:



Вставил до инициализации строки

print(enum2str(typeof(check)));
print(check);

Получается такое окно:



Т.е Аксапта почему-то думает, что check имеет тип RECORD.

Объясните пожалуйста, из-за чего это все и как с этим бороться?
Вложения
Тип файла: img964-1 (21.2 Кб, 607 просмотров)
Тип файла: img964-2 (7.4 Кб, 554 просмотров)
__________________
Shestakov
Старый 17.01.2002, 16:56   #2  
shestakov is offline
shestakov
Участник
 
18 / 10 (1) +
Регистрация: 14.12.2001
P.S.

Ошибка вот в этом месте(на строку выше синей линии)

Вложения
Тип файла: img965-1 (35.3 Кб, 497 просмотров)
__________________
Shestakov
Старый 17.01.2002, 17:12   #3  
shestakov is offline
shestakov
Участник
 
18 / 10 (1) +
Регистрация: 14.12.2001
Проблема решилась(т.е. теперь пишется, что переменная имеет класс integer и все работает). Но вот решил я ее очень странно - просто долго менял туда-сюда местами строки в ClassDeclaration. В итоге раз на 10-й все заработало...
__________________
Shestakov
Старый 22.09.2003, 13:57   #4  
puz is offline
puz
Участник
 
37 / 11 (1) +
Регистрация: 01.09.2003
Адрес: Новосибирск
Столкнулся с абсолютно аналогичной проблемой:
Попытка добавить в готовый класс новую переменную приводит к тому, что все
операции с этой переменной оказываются некорректными (неправильные инициализация и использование из-за якобы различных типов).

В случае добавления переменной в класс проблема решилась инкрементной компиляцией непосредственного предка класса.

Такая же проблема появлялась при добавлении переменной в classDeclaration
объекта ReportRun. Решилась инкрементной перекомпиляцией предков класса, который вызывал данный отчет.
Старый 22.09.2003, 14:06   #5  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
скорее всего у вас 2.5 и не куплена лицензия на исходный код.
В этом случае с классами многое чего не происходит.
Например, не происходит компиляция всего класса. Особенно при изменении classDeclaration.

Вам необходимо вручную "обходить" все измененные методы класса и вручную заставлять Аксапту компилировать.
Старый 22.09.2003, 14:09   #6  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
компиляция
В таких случаях хорошо помогает инкрементная компиляция класса
Старый 22.09.2003, 14:13   #7  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
кстати, она тоже не работает на классах, если нет лицензии на исходный код
Старый 22.09.2003, 15:24   #8  
puz is offline
puz
Участник
 
37 / 11 (1) +
Регистрация: 01.09.2003
Адрес: Новосибирск
нет, версия 3.0 SP1 и лицензии есть на все (точнее, не буду утверждать про "все"), но на исходники-то точно есть.
Однако, ситуация, действительно, сильно похожа на то, что classDeclaration не компилируется.
Старый 22.09.2003, 15:38   #9  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Странно. Тогда совет wamr'а должен помочь.

У меня в нормальных условиях такого еще не было.
Старый 24.09.2003, 17:21   #10  
dn is offline
dn
Участник
Самостоятельные клиенты AX
 
486 / 159 (6) ++++++
Регистрация: 26.03.2003
Адрес: Москва
Компилятор в трешке чудит куда больше, чем в 2.5. Если при модификации, к примеру, ClassDeclaration новая декларация добавляется в конец, то всё нормально. Если же добавить её где-то посередине, причем соседние переменные имееют другой тип, то начинает глючить ... Компилятор подхватывает чужой тип. Спасает, как уже было отмечено, перекомпиляция проекта.
Можно также отметить случаи, когда немозвожно сохранить в AOT'е вновь созданный объект. Приходится производить ряд манипуляций мышкой, прежде чем активируется кнопка save.
Нельзя создать новый метод в заблокированном тобой же объекте.
А самое печальное, когда ломаются индексы, и при попытке создать новый объект в AOT'e система пытается присвоить ему номер уже существующего...
За это сообщение автора поблагодарили: alex55 (1).
Теги
баг, ax3.0

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Проблема с единицей измерения longson DAX: Программирование 4 16.07.2007 14:35
Проблема с messageBox Pavel Pustovalov DAX: Программирование 13 03.08.2006 12:56
Проблема с созданием объекта Lelya DAX: Администрирование 33 27.06.2005 16:38
Проблема: русские шрифты в отчетах, формируемых на сервере. Anais DAX: Администрирование 3 17.11.2003 13:20
Проблема: Переход с 2.5 на 3.0 Антон Солдатов DAX: Администрирование 1 18.06.2003 10:17

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

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

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