|
04.01.2011, 13:07 | #1 |
Участник
|
Добрый день, Offenmeier и уважаемые участники AXForum!
Мы столкнулись с 2-мя проблемами. При печати отчётов в PDF - файл в батче периодически генерируются пустые файлы (при печати с клиента все хорошо): 1. В цикле по CustTrans для каждой транзакции ищется CustInvoiceJour и для него запускается печать отчёта SalesInvoice в PDF, точно так же как в методе CustInvoiceJour.printJournal(). В результате генерируется много PDF- файлов, причём часть из этих файлов повреждённые (не открываются). Что вы могли бы посоветовать для решения этой проблемы, мне кажется, что наша проблема похожа на описанную вами. Не совсем понятно, что вы имели в виду, когда писали: "после каждой итерации присваивать указателю null", какой конкретно указатель имеется в виду? Не могли бы вы написать, что ответил вам Майкрософт по этому поводу? 2. Вторая проблема касается печати собственных отчётов в файл в батче. Мы написали RunBaseBatch класс и отчёт. Внутри в классе вызывается печать отчёта, это происходит, как в методе CustInvoiceJour.printJournal(). За один запуск печатается от 1 до 4 отчётов, при этом случайным образом некоторые из них печатаются повреждёнными (не открываются). Во время тестов мы обнаружили, что проблема касается не только печати в PDF, но и вообще печати в файл (тестировали и для ASCII-файлов). В последнем случае генерируются пустые txt - файлы. Что вы бы могли посоветовать для решения этой проблемы? |
|
02.02.2011, 06:00 | #2 |
HAI; CAN HAS STDIO?
|
зашёл сюда совершенно случайно! странно, что не получил на электронную почту уведомление о сообщении.
1. проблема возникла потом снова, и мне пришлось снова говорить с Майкрософтом. оказывается, на сервере из-за особенностей распределения памяти в переменные иногда пишется мусор. поэтому когда я создавал отчёт на сервере, одно из свойств его PrintJobSettings оказывалось равным нулю вместо единицы (свойство AllPages). report.printJobSettings().allPages(true); после добавления этого кода всё заработало. 2. ещё был такой баг: если в PDF была картинка (логотип к примеру), то из серверной пакетной обработки сохранить PDF невозможно, там какая-то проблема с изображениями и их выводом на сервере в PDF. я делал логотип invisible если отчёт выполняется на сервере и экспортируется в PDF, но может исправили с тех пор.
__________________
our sharp bitter vitriol is not that of the vulgar. |
|
|
За это сообщение автора поблагодарили: Logger (3), player (1). |
02.02.2011, 10:57 | #3 |
Участник
|
Цитата:
Сообщение от offenmeier
...оказывается, на сервере из-за особенностей распределения памяти в переменные иногда пишется мусор. поэтому когда я создавал отчёт на сервере, одно из свойств его PrintJobSettings оказывалось равным нулю вместо единицы (свойство AllPages).
report.printJobSettings().allPages(true); после добавления этого кода всё заработало. ... А это признано багой ? Или считать как данность и исправлено не будет ? Что же теперь получается - нельзя полагаться на дефолтные значения переменных ? |
|
03.02.2011, 02:19 | #4 |
HAI; CAN HAS STDIO?
|
PrintJobSettings это как бы и не обычная переменная, это какая-то структура описанная в .NET коде ядра. попробуй в дебаггере посмотреть, что у неё внутри: лично мне так и не удалось внутрь заглянуть.
ни до этого, ни после, я не встречался с подобными проблемами, я думаю, что скорее всего этот баг (а я думаю, что это баг) относится только к PrintJobSettings и только к этому его свойству AllPages, наверное пропустили его в .NET коде инициализации, и туда попадает мусор.
__________________
our sharp bitter vitriol is not that of the vulgar. |
|