30.09.2010, 11:32 | #21 |
Участник
|
Спасибо за проект.
Два вопроса: 1. У меня появляется опция вывода в Excel только после вывода на экран и вызове печати - так и должно быть? Т.е. без вывода на экран в Excel не вывести? 2. Я так понимаю, выгрузка идет через буфер обмена? Наблюдается известный глюк - если раскладка клавиатуры перед выгрузкой английская, то в Excel выгружаются кракозябры =)
__________________
Ivanhoe as is.. |
|
30.09.2010, 11:43 | #22 |
Участник
|
Цитата:
Сообщение от Ivanhoe
Спасибо за проект.
Два вопроса: 1. У меня появляется опция вывода в Excel только после вывода на экран и вызове печати - так и должно быть? Т.е. без вывода на экран в Excel не вывести? 2. Я так понимаю, выгрузка идет через буфер обмена? Наблюдается известный глюк - если раскладка клавиатуры перед выгрузкой английская, то в Excel выгружаются кракозябры =) 2. Да. |
|
11.04.2011, 17:45 | #23 |
Участник
|
Неизвестный герой Columbus с ником TRUD, конечно, проделал большую работу. Однако нельзя же было вообще не интересоваться как там и что сделано? Этот функционал, очевидно, был сделан под Ax2.5 и слегка "подмазан" для Ax3.0. Соответственно, содержит ряд ошибок и неточностей. Одно лишь ограничение по длине символьного значения в 100 символов в свое время стоило дополнительных нервов
Впрочем, винить в этом исполнителя не стоит. Очевидно, у него был дефицит времени. Но если уж портировать это решение в Ax2009 стоило бы "подчистить шероховатости" По крайней мере, про типы Int64 и DateTime стоило вспомнить Во вложении проект для 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). |
07.06.2013, 10:47 | #24 |
Участник
|
Добавил возможность рисования гридов в Экселе.
Для этого в шаблоне аксаптовского отчета надо для контрола, с которого грид начинается, присвоить имя, начинающееся с букв "GridStart". Для контрола, на котором грид заканчивается, присвоить имя, начинающееся с букв "GridEnd". Можно делать более одного грида. Но я тестировал только с одним гридом. Последний раз редактировалось Ace of Database; 07.06.2013 в 10:56. |
|