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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 05.03.2013, 10:14   #1  
SVlk is offline
SVlk
Участник
 
7 / 10 (1) +
Регистрация: 17.01.2012
Аксапта 2009.
Есть следующий код:

X++:
public void run()
{
    SalesReport_Invoice4Paym_RU launcher;
    PrintJobSettings            printJobSettings;
    FileName                    fileName;
    ;
    super();

    invoice4PaymJour = CustInvoice4PaymJour_RU::find('0100000');

    fileName = strfmt("%1%2.pdf", 'C:\\temp\\', invoice4PaymJour.Invoice4PaymId);

    printJobSettings = new PrintJobSettings();
    printJobSettings.format(PrintFormat::PDF);
    printJobSettings.setTarget(PrintMedium::File);
    printJobSettings.allPages(true);
    printJobSettings.fileName(fileName);

    launcher = new SalesReport_Invoice4Paym_RU();
    launcher.setParameters(PrintCopyOriginal::OriginalPrint, invoice4PaymJour);

    launcher.prompt();
    launcher.setPrintJobSettings(printJobSettings.packPrintJobSettings());
    launcher.run();
}
Класс наследник RunBaseBatch, выполняется на сервере (если вместо этого кода написать копирование файла - отрабатывает на сервере, проверял).
Но PDF файл создается на локальной машине.
Если запускать в пакетной обработке - падает сервер.
Картинка в отчете есть, но я ее скрываю.

Помогите, кто сталкивался.
-------------------------------
Зашел с другой стороны:
Сделал тупой отчет с одной строчкой, класс наследник RunBaseReport (серверный)

переопределил функцию:
X++:
void makePrintJobSettings()
{
    FileName                    fileName;
    ;
    super();

    fileName = 'C:\\temp\\test123.pdf';

    printJobSettings = new PrintJobSettings();
    printJobSettings.format(PrintFormat::PDF);
    printJobSettings.setTarget(PrintMedium::File);
    printJobSettings.allPages(true);
    printJobSettings.fileName(fileName);
}
При запуске руками - создает файл на локальной машине.
При запуске в батче выдает ошибку:

Ошибка времени выполнения: PrintJobSettings Объект не инициализирован.

(S)\Classes\PrintJobSettings\packPrintJobSettings
(S)\Classes\RunBaseReport\run - line 16
(S)\Classes\BatchRun\runJobStatic - line 63

По всему выходит что PrintJobSettings - чисто клиентский объект.
Как его сделать серверным?
В этой ветке у всех получилось.
Что я делаю не так?
Старый 05.03.2013, 16:55   #2  
SVlk is offline
SVlk
Участник
 
7 / 10 (1) +
Регистрация: 17.01.2012
Победил.
Во втором примере в Run() добавил this.initParmDefault();
Заработало.
Точнее стал говорить внятные ошибки.
Причины в массе клиентских вызовов в разных местах.
Когда все поубирал - заработало.
В том числе и первый пример.

Отлаживал на сервере по методе:
Отладка на сервере

По поводу изображений - да, не работает с изображениями.
Класс Image - клиентский.
В хелпе такое висит:
Note
In Microsoft Dynamics AX, the Image class is bound to the client. The class can no longer be run from the server because of the security risks that are associated with file handling.


А в классе PDFViewer в методе writeBitmap на 49 строчке используется:
img = new Image(c);
Теги
aos, ax2009, pdf, печать

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
daxis: Troubleshooting blocked SPIDS in AOS Blog bot DAX Blogs 0 01.04.2009 18:05
Arijit Basu: Multiple AOS in a Multi CPU Machine :) Blog bot DAX Blogs 1 19.12.2007 17:11
Arijit Basu: AX 4 AOS Basics: [Level 100] Blog bot DAX Blogs 0 18.11.2007 14:30
DynamicsTech: What's New in Dynamics Ax 4.0 AOS? Blog bot DAX Blogs 0 12.04.2007 11:50
axaptapedia: Control AOS from command line Blog bot DAX Blogs 0 09.03.2007 14:50

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

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

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