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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 02.07.2009, 17:49   #1  
Silphidae is offline
Silphidae
Участник
 
96 / 15 (1) ++
Регистрация: 17.11.2008
Ошибка 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  
dech is offline
dech
Участник
Аватар для dech
Самостоятельные клиенты AX
 
647 / 350 (13) ++++++
Регистрация: 25.06.2009
Адрес: Омск
Записей в блоге: 3
Такая же фигня в AX4. Причем первый раз после запуска Аксапты RunBase-класс отрабатывает нормально, а в следующий - вылетает с ошибкой. Может кто-нибудь знает, как решить проблему?
__________________
// no comments
Старый 01.11.2012, 15:05   #3  
iCloud is offline
iCloud
Enjoy!
Аватар для iCloud
MCP
Злыдни
 
195 / 112 (4) +++++
Регистрация: 06.03.2012
Попробуйте удалить метод pack(), может поможет понять суть ошибки.
Старый 01.11.2012, 16:12   #4  
dech is offline
dech
Участник
Аватар для dech
Самостоятельные клиенты AX
 
647 / 350 (13) ++++++
Регистрация: 25.06.2009
Адрес: Омск
Записей в блоге: 3
Куда ж мне его удалять-то, у меня же класс абстрактным станет. Как я его по-вашему запущу? Другое дело поменять что-нибудь... Вообще 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  
Sada is offline
Sada
Программатор
Аватар для Sada
 
1,450 / 153 (8) ++++++
Регистрация: 29.03.2005
Адрес: Толи Барнаул, толи Москва
Цитата:
Сообщение от iCloud Посмотреть сообщение
Попробуйте удалить метод pack(), может поможет понять суть ошибки.
наверное имеется ввиду
X++:
public container pack()
{
    return conNull();
}
и в анпаке вернуть false
Старый 01.11.2012, 19:45   #6  
iCloud is offline
iCloud
Enjoy!
Аватар для iCloud
MCP
Злыдни
 
195 / 112 (4) +++++
Регистрация: 06.03.2012
Цитата:
Сообщение от Sada Посмотреть сообщение
наверное имеется ввиду
X++:
public container pack()
{
    return conNull();
}
и в анпаке вернуть false
Да, спасибо. Именно так. Простите за "русский".
Старый 02.11.2012, 10:47   #7  
abv2703 is offline
abv2703
Участник
 
92 / 22 (1) +++
Регистрация: 05.12.2003
Адрес: Санкт-Петербург, улица Бухарестсткая
Кхе, а в main у вас имеется вызов prompt?
Старый 02.11.2012, 11:31   #8  
dech is offline
dech
Участник
Аватар для dech
Самостоятельные клиенты AX
 
647 / 350 (13) ++++++
Регистрация: 25.06.2009
Адрес: Омск
Записей в блоге: 3
Цитата:
Сообщение от abv2703 Посмотреть сообщение
Кхе, а в main у вас имеется вызов prompt?
Конечно. Но сейчас класс исполняется на клиенте, настройки почищены, но ошибка осталась. Если pack/unpack игнорировать, все работает. Стоит только в unpack вернуть true, вываливается в ошибку.
__________________
// no comments
Старый 02.11.2012, 13:53   #9  
abv2703 is offline
abv2703
Участник
 
92 / 22 (1) +++
Регистрация: 05.12.2003
Адрес: Санкт-Петербург, улица Бухарестсткая
Вот такую шуточку можно сотворить

PHP код:
static void main(Args _args)
{

    
Classik rep  = new classik();
    ;

    
rep.initParmDefault();

    
rep.run();


За это сообщение автора поблагодарили: dech (1).
Старый 02.11.2012, 16:59   #10  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,691 / 1195 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Если Вы перекрываете 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

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Ошибка при доступе к подключению к базе данных Ark DAX: Администрирование 11 01.06.2009 08:17
DAX 4: printJobSettings.deviceName() DTD DAX: Программирование 1 12.07.2007 13:01
Ошибка в формате числа. 36AC DAX: Программирование 7 19.10.2006 10:04
Ошибка при сохранении поставщика Filip DAX: Функционал 19 24.02.2004 08:32
Русская локализация Axapta 3 ? SlavaK DAX: Администрирование 59 01.07.2003 22:38

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

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

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