09.02.2009, 16:39 | #1 |
Модератор
|
вылетает аксапта \Classes\CCMenuButtonAuto\new
Ax 3 SP6
При открытии формы вылетает на методе \Classes\CCMenuButtonAuto\new X++: void new(FormRun _formRun) { #Define.Wizard('wizard') ; formRun = _formRun; form = formRun.form(); if (!form) return; formBuildDesign = form.design(); if (!FormBuildDesign.Frame()&& Form.DataSourceCount() && !strscan(form.name(), #Wizard, 1, strlen(form.name()))) { FormBuildDatasource = Form.DataSource(1); TableId = FormBuildDatasource.Table(); } else { form = null; } } |
|
09.02.2009, 17:15 | #2 |
NavAx
|
побробуйте для начала вместо
X++: if (!FormBuildDesign.Frame()&& Form.DataSourceCount() && !strscan(form.name(), #Wizard, 1, strlen(form.name()))) X++: if (Form && FormBuildDesign && !FormBuildDesign.Frame()&& Form.DataSourceCount() && !strscan(form.name(), #Wizard, 1, strlen(form.name()))) |
|
09.02.2009, 17:26 | #3 |
Модератор
|
условие
X++: if (Form && FormBuildDesign ) Собственно глюк это появляется при выполнении X++: operationProgress = new OperationProgress(); operationProgress.setCaption('Процесс сбора информации' ); X++: \Classes\CCMenuButtonAuto\new - line 13 \Classes\SysSetupFormRun\new - line 12 \Classes\ClassFactory\formRunClassOnClient - line 5 \Classes\ClassFactory\FormRunClass - line 3 \Classes\OperationProgress\new |
|
09.02.2009, 17:56 | #4 |
MCTS
|
Может разложить по элементам:
X++: Boolean fForm; ; fForm = FormBuildDesign.Frame() == 0; fform = fform && FormBuildDesign.Frame() != 0; ffrom = fform && strscan(form.name(), #Wizard, 1, strlen(form.name())) == 0; if (ffrom) { FormBuildDatasource = Form.DataSource(1); TableId = FormBuildDatasource.Table(); } else { form = null; } |
|
09.02.2009, 18:05 | #5 |
Модератор
|
раскладывал, вылетает на FormBuildDesign.Frame(), дальше не проверяет и ни чего не пишет.. просто выходит из метода.
но уже на X++: operationProgress.setCaption('Процесс сбора информации' ); Метод \Classes\CCMenuButtonAuto\new до конца и не отрабатывает. Как понять что не так с формой operationProgress ? инкрементную компиляцию для CCMenuButtonAuto не помогает, остальные формы открываются нормально использую данный класс. Последний раз редактировалось Poleax; 09.02.2009 в 19:17. |
|
10.02.2009, 14:28 | #6 |
int 20h
|
А что если попробовать ее проинициализировать?
formBuildDesign.frame(FormFrame::Border);
__________________
It's just my Unhopelessnessabilityerism Trying to debug my mind |
|
10.02.2009, 14:43 | #7 |
Модератор
|
|
|
11.02.2009, 13:34 | #8 |
int 20h
|
В общем посмотрел на сп6 у меня все открывается как надо (отрабатывает тот же механизм на пустую запись
FormBuildDesign.Frame() идет на присвоение null ). Проверил на DAX 4 там тоже самое метод один в один, не думаю что это какая то распространенная ошибка. А с какой формы происходит вызов? Пробовали кильнуть индексы приложения и почистить кэш приложения и локальный кэш. А так же сделать сборс данных?
__________________
It's just my Unhopelessnessabilityerism Trying to debug my mind |
|
11.02.2009, 14:04 | #9 |
Модератор
|
Спасибо. Вопрос закрыт.
Проблема не в \Classes\CCMenuButtonAuto\new Причина была с формой. Некоторых объектов при переносе с одного приложения на другое не учли, хотя компиляция показывала, что все ок. Более детальный поиск недостающих объектов и их импорт исправил ситуацию. |
|
11.02.2009, 15:50 | #10 |
int 20h
|
А по-подробнее почему валилась ...что не так передавалось и тд...хотим все знать ))))))
__________________
It's just my Unhopelessnessabilityerism Trying to debug my mind |
|
12.02.2009, 18:24 | #11 |
Модератор
|
Цитата:
Пробовал в коде полностью комментировать все связанное с прогрессбаром, но ошибка начала появляться на добавлении строкового условия полю запроса qbr = qbds.addRange (....) .Value(_str); Но уже аксапта вела себя просто тихо, не появлялась форма по нажатии кнопки "Ок" Явно не удалось определить, что послужило проблемой, по видимому чего то не хватало при формировании формы. Пересобрал проект, дополнил всеми объектами, импортировал, заработало. |
|
|
За это сообщение автора поблагодарили: zZ_TOP_Zz (1). |