02.07.2009, 17:49 | #1 |
Участник
|
Ошибка PrintJobSettings
Добрый вечер.
Создаю класс-наследник RunBaseReport. Все компилируется нормально. При запуске возникает ошибка: Ошибка времени выполнения: PrintJobSettings Объект не инициализирован. Трассировка стека (C)\Classes\PrintJobSettings\printerRunOn (C)\Classes\RunBaseDialogModify\initPrinterSettings - line 35 (C)\Classes\RunBaseReport\dialog - line 10 (C)\Classes\CostPriceAverageReport\dialog - line 3 (C)\Classes\RunBase\dialogMake - line 5 (C)\Classes\RunBase\promptPrim - line 22 (C)\Classes\RunBase\prompt - line 12 (C)\Classes\RunBaseBatch\prompt - line 3 (C)\Classes\CostPriceAverageReport\main - line 7 Очистка из сервис/параметры/использование данных - не помогает. Пакую с super(). Подскажите пути решения. |
|
01.11.2012, 14:58 | #2 |
Участник
|
Такая же фигня в AX4. Причем первый раз после запуска Аксапты RunBase-класс отрабатывает нормально, а в следующий - вылетает с ошибкой. Может кто-нибудь знает, как решить проблему?
__________________
// no comments |
|
01.11.2012, 15:05 | #3 |
Enjoy!
|
Попробуйте удалить метод pack(), может поможет понять суть ошибки.
|
|
01.11.2012, 16:12 | #4 |
Участник
|
Куда ж мне его удалять-то, у меня же класс абстрактным станет. Как я его по-вашему запущу? Другое дело поменять что-нибудь... Вообще pack() возвращает как обычно [#CurrentVersion, #CurrentList]. Не лучше ли тогда с unpack посмотреть, но там все равно нет ничего такого, что навело бы на мысль... Я возился со свойством Run On. Все началось с того, что поменял на вызов на стороне сервера. Возможно с этим проблема. Сейчас каждый раз кроме первого класс printJobSettings получается null, и соответственно нельзя вызвать метод экземпляра - вылетает ошибка. А вот почему он ставится в null, я не знаю.
X++: class AgedInvent extends RunBaseReport { Integer months; ProdType prodType; DialogField dlgMonths; DialogField dlgProdType; #define.CurrentVersion(1) #localmacro.CurrentList months, prodType #endmacro } public container pack() { return [#CurrentVersion, #CurrentList]; } public boolean unpack(container packedClass) { Version version = RunBase::getVersion(packedClass); boolean ret = true; ; switch (version) { case #CurrentVersion: [version, #CurrentList] = packedClass; break; default: ret = false; } return ret; }
__________________
// no comments |
|
01.11.2012, 16:53 | #5 |
Программатор
|
|
|
01.11.2012, 19:45 | #6 |
Enjoy!
|
|
|
02.11.2012, 10:47 | #7 |
Участник
|
Кхе, а в main у вас имеется вызов prompt?
|
|
02.11.2012, 11:31 | #8 |
Участник
|
Конечно. Но сейчас класс исполняется на клиенте, настройки почищены, но ошибка осталась. Если pack/unpack игнорировать, все работает. Стоит только в unpack вернуть true, вываливается в ошибку.
__________________
// no comments |
|
02.11.2012, 13:53 | #9 |
Участник
|
Вот такую шуточку можно сотворить
PHP код:
|
|
|
За это сообщение автора поблагодарили: dech (1). |
02.11.2012, 16:59 | #10 |
Участник
|
Если Вы перекрываете pack/unpack у класса наследника runBaseReport, то обязательно надо добавлять вызов super(), поскольку эти методы перекрыты в самом классе runBaseReport.
В простейшем случае, это будет выглядеть примерно так X++: public container pack() { return [#CurrentVersion, #CurrentList] + [super()]; } public boolean unpack(container _packedClass) { container base; boolean ret; int version = conPeek(_packedClass,1); ; switch (version) { case #CurrentVersion: [version, #CurrentList, base] = _packedClass; ret = super(base); break; default : ret = false; } return ret; } Собственно, если есть отличия в работе при вызове "первый раз" и "последующие", то это однозначно проблема кеширования. А это контролирует pack/unpack
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... |
|
|
За это сообщение автора поблагодарили: dech (1). |
Теги |
print management, printjobsettings |
|
Похожие темы | ||||
Тема | Ответов | |||
Ошибка при доступе к подключению к базе данных | 11 | |||
DAX 4: printJobSettings.deviceName() | 1 | |||
Ошибка в формате числа. | 7 | |||
Ошибка при сохранении поставщика | 19 | |||
Русская локализация Axapta 3 ? | 59 |
Опции темы | Поиск в этой теме |
Опции просмотра | |
|