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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 22.07.2003, 09:53   #1  
Andronov is offline
Andronov
Участник
 
108 / 10 (1) +
Регистрация: 10.11.2002
Адрес: г. Пермь
Экспорт отчета в Excel
Добрый день.
Есть такая задача:
Есть обычный аксаптовский отчет. Отчет не очень простой - много чего делается программно. Есть желание данные, которые получаютcя в результате, отправить в Exсel - ну, чтоб не просто напечатать, а еще чего-нить с ними делать можно было.
Расскажите пожалуйста, нет ли какого-нибудь более-менее стандартного / общепризнанного решения этой проблемы?

Вообще, основная проблема, как мне видится, заключается в том, как после получения отчета поиметь доступ к его данным. Если это можно сделать, то отправить данные в Excel используя ComExсelDocument довольно просто. Возможно ли это?

Или я для выполнения этой задачи должен фактически написать новый класс, который будет получать данные также, как это делает исходный отчет? Этого очень не хочется.

Поделитесь мыслями на этот счет.
Старый 10.02.2006, 11:49   #2  
braathe is offline
braathe
Участник
 
90 / 13 (1) ++
Регистрация: 16.02.2005
У меня вопрос по етой же теме. Я создал наследника класса ReportOutputUser и перегрузил все методи так как надо. Вопрос в том как его теперь подклучить к общей логике. Я столкнулся с такойже проблемой. Как это можно обойти? Ко всему прочему в классе ClassFactory.createViewer тоже хотелось бы что-то сделать а не исполйзовать case ReportOutputUserType:: Default: как было приведено в доке для класса ReportOutputUser. Я имею ввиду например case ReportOutputUserType::XLS. Microsoft позакривал все енумы и классы вокруг этой рутини. Наверняка кто-то делал что-то подобное раньше. Поделитесь секретом как ето можно обойти?

С уважением
Анатолий
Старый 10.02.2006, 16:24   #3  
braathe is offline
braathe
Участник
 
90 / 13 (1) ++
Регистрация: 16.02.2005
Lightbulb
Сам задал вопрос и сам отвечу. Посидел подумал и придумал: HTML использует очень похожие теги как и MS Excel. Тоесть достаточно изменить концовку фаила на .xls и добавить пару значений в используемые емуны и макроси и рапорти со свистом сохраняются в Excel. Если кому интересно могу пояснить как сделал.

С Уважением
Анатолий
Старый 10.02.2006, 17:14   #4  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
В "Правилах форума AXForum" в пункте 2.8 есть такой стринг:
"Ни у кого нет желания вытягивать из Вас эти сведения клещами."

Мораль: если Вам самому хочется - расскажите, остальные буду Вам только благодарны, пусть даже и молчаливо.
Зайти в ветку и увидеть блок конкретных действий без необходимости делать еще один шаг - запрос автору, всегда удобнее, чем ловить автора, спустя, например, 2-3 года.
Подумайте о благодарных потомках...
Старый 10.02.2006, 18:07   #5  
braathe is offline
braathe
Участник
 
90 / 13 (1) ++
Регистрация: 16.02.2005
Рецепт следующий:
1) добавить формат .xls в макрос "File"
2) добавить элемент XLS в энум SysPrintFileType
3) добавить соответствующий уже существующему код в SysPrintForm.findFileNameType()
4) в SysPrintForm.changeFormat() добавить:
PHP код:
case SysPrintFileType::XLS  //for Excel
 
case SysPrintFileType::HTML :
       
ret PrintFormat::HTML;
       break; 
Каша готова. Единственная особенноесть этого варианта это то, что при повторном использовании когда откриваешь диалог SysPrintForm вместо XLS отображается HTML. Но пока не открываешь диалог программа помнит что формат XLS.
Всем удачного пользования.

С уважением
Анатолий
За это сообщение автора поблагодарили: Gustav (1).
Старый 13.02.2006, 16:13   #6  
trud is offline
trud
Участник
Лучший по профессии 2017
 
1,039 / 1630 (57) ++++++++
Регистрация: 07.06.2003
Записей в блоге: 1
Вариант с HTML файлом катит слабо.
В Excel между данными появляются пустые столбцы и Axapta выводит шапку страницы не только на первой странице, но и на всех последующих, т.е. в Excel появляются ненужные строчки и данные никуда не скопируешь.
В свое время была задача по реализации вывода любого отчета в Excel, которая и выродилась в создание утилиты. Главная идея вывода, что все данные в отчете выводятся строго по столбцам без прерываний, все остальные элементы подгоняются под них.

Технически - создается класс, наследник от reportOutputUser, которые предлагался как viewer при печати, на нем перекрываете большинство методов writeString, writeEnum и т.д. и т.п. Таким образом по завершении работа этого класса у вас есть все элементы и их координаты. Дальше уже ваша фантазия - надо их как-то отобразить на ячейки Excel

Описание того, что получилось прилагаю, если есть вопросы по приобретению, то к селзам в Колумбус, утилита продается, если какие-то технические вопросы, то задавайте здесь
Вложения
Тип файла: doc Описание утилиты вывода отчетов Axapta в Excel.doc (71.5 Кб, 512 просмотров)
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Экспорт в Excel exodus DAX: Программирование 1 23.01.2008 09:35
Экспорт в Excel. Проблема с '\n' axaLearner DAX: Программирование 12 17.04.2006 18:43
Не идет выгрузка отчета в Excel. Слабая машина. asabin DAX: Администрирование 27 29.06.2005 10:48
Печать отчета в Excel. Axapta 3.0 Fedr Kuzmich DAX: Функционал 2 19.05.2004 18:26
Экспорт в Excel через WorkBooks.OpenText() Владимир Максимов DAX: Программирование 2 09.04.2004 17:16
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

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

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

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