![]() |
#23 |
Участник
|
Неизвестный герой Columbus с ником TRUD, конечно, проделал большую работу. Однако нельзя же было вообще не интересоваться как там и что сделано? Этот функционал, очевидно, был сделан под Ax2.5 и слегка "подмазан" для Ax3.0. Соответственно, содержит ряд ошибок и неточностей. Одно лишь ограничение по длине символьного значения в 100 символов в свое время стоило дополнительных нервов
![]() Впрочем, винить в этом исполнителя не стоит. Очевидно, у него был дефицит времени. Но если уж портировать это решение в Ax2009 стоило бы "подчистить шероховатости" ![]() ![]() Во вложении проект для Ax2009 где экспорт в Excel решен через ADO RecordSet. В принципе, системные формы и классы изменены точно так же, что и в решении от Bega. Ну, разве что, в методе класса \Classes\ClassFactory\createViewer() стоит ссылка уже на мои классы ![]() Проблемы, которые так и не удалось решить 1. В базовом классе reportOutputUser на основе которого и формируется весь процесс нет обработки полей типа GUID. Как следствие, если в отчете есть подобное поле, то экспорт в Excel вылетит с исключением. Ничего в Excel импортировано не будет. Перехватить эту ошибку, чтобы вывести хотя бы все остальное - невозможно. Это ошибка "ядра". 2. При экспорте в Excel опять же, где-то в недрах базового класса reportOutputUser происходит "потеря" настроек принтера. Очищается экземпляр класса PrintJobSetting. Это-то ладно, поскольку к моменту выполнения reportOutputUser сам отчет уже сформирован и остается просто отобразить результат. Однако если вывод в Excel сделать не из формы предварительного просмотра, а напрямую по кнопке Ok, то происходит запись "пустого" PrintJobSetting в кеш отчета. Соответственно, следующий запуск отчета выводит полную ерунду, пока не восстановишь настройки принтера. Где именно происходит перезапись кеша отчета - непонятно. По крайней мере на момент завершения \Forms\SysPrintForm\Methods\closeOk() все настройки на месте. В Ax2.5 такой проблемы не было, поэтому можно было отправлять в Excel напрямую из отчета, а не через окно предварительного просмотра. Но в Ax2009 как обойти эту проблему я не нашел. |
|
|
За это сообщение автора поблагодарили: Ace of Database (5), Bega (5), perestoronin (1). |