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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 04.07.2009, 20:41   #1  
Boris22 is offline
Boris22
Участник
Аватар для Boris22
 
9 / 11 (1) +
Регистрация: 03.07.2009
ena_ax, не ищите здесь готовых решений. По правилам этот форум не для рекламы, раздач и продаж готовых модификаций. Начните с простого:
1. Если под экспортом стандартных отчетов Вы подразумеваете вывод уже построенных отчетов во внутреннем формате:
На форме SysPrintForm повесить опцию для вывода (\Forms\SysPrintForm\Designs\Design\[Group:MainGroup]\[Tab:MainTab]\[TabPage:General]\[Group:TargetSpecificationGroup]\[Tab:TargetTab]\[TabPage:ExcelTab]).
В \Forms\SysPrintForm\Methods\ClassDeclaration прописать макрос #DEFINE.TAB_EXCEL(5)
В \Forms\SysPrintForm\Methods\buildFormRun прописать:
if (! clientSysPrintOptions.showOutputScreen())
{
formListItem = new FormListItem("Excel", imageListAppl_Print.image(#ImageClass), PrintMedium::ViewerClass);
sendTo.addItem(formListItem);

В \Forms\SysPrintForm\Methods\closeOk прописать:
if (clientSysPrintOptions.parmTarget() == PrintMedium::ViewerClass)
{
clientSysPrintOptions.parmViewerType(ReportOutputUserType::Viewer4);
}
В \Forms\SysPrintForm\Methods\changeTarget прописать:
case PrintMedium::File:
//,PrintMedium::ViewerClass:
element.setTargetSettings(#TAB_FILE, "@SYS53220", PrintMedium::File, true, false); //AX4

2. Если Вы хотите создать отчеты с нуля с выводом в Excel:
Определитесь, на основе какой технологии Вы собираетесь выполнять экспорт отчетов в Excel.
Если на основе COM - технологии, то Вам необходимо:
1. Если при выводе необходимо создавать файл Excel и произвольным образом выводить в файл данные: На основе классов ComOfficeDocument_RU и ComExcelDocument_RU, предварительно их доработав, создать классы потомки которые и будут выполнять пересчет и вывод данных в Excel.
2. Если при выводе необходимо воспользоваться заранее заготовленным шаблоном то Вам необходимо создать для этого потомок RunBaseBatch. Обеспечить интерфейс ввода начальных данных перекрытием методов dialog(), init(), queryRun(), run() Далее в созданном методе, например setInitialParameters() определяем наличие в указанном месте файла шаблона при помощи winapi инициализируем введенные параметры и выводим отчет при помощи созданного для этих целей метода\методов. Для пересчета и вывода данных необходимо создать класс потомок.
Старый 05.07.2009, 14:12   #2  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Boris22 Посмотреть сообщение
ena_ax, не ищите здесь готовых решений.
Поиск по тегу Законченный пример
законченный пример

Цитата:
Сообщение от Boris22 Посмотреть сообщение
По правилам этот форум не для рекламы, раздач и продаж готовых модификаций.
По правилам этот форум позволяет и рекламировать, и продавать готовые модификации. Но только в одном разделе: в разделе Рынок.

А вот замешивать в обычные тематические ветки скрытую или явную рекламу - действительно запрещено.

См. Концепция независимого форума AXForum
и Лицензионное соглашение
__________________
полезное на axForum, github, vk, coub.
За это сообщение автора поблагодарили: Boris22 (1).
Старый 05.07.2009, 14:27   #3  
Boris22 is offline
Boris22
Участник
Аватар для Boris22
 
9 / 11 (1) +
Регистрация: 03.07.2009
Спасибо за разъяснения, Сергей!
Я тут новенький. Ещё всего не знаю. А с утверждением, извиняюсь, поторопился.
Старый 09.04.2010, 16:11   #4  
propeller is offline
propeller
Участник
Аватар для propeller
 
359 / 29 (1) +++
Регистрация: 25.07.2007
case PrintMedium::ViewerClass:
element.setTargetSettings(#TAB_FILE, "@SYS53220",PrintMedium::ViewerClass, true, false); //AX4

Попробовал как в примере Boris22. (AX 4.0)
но при нажатии ОК:
Сообщение (16:07:24)
Ошибка времени выполнения: ReportOutputUser (Объект), метод endReport вызван с недопустимыми параметрами.

Трассировка стека

(C)\Classes\ReportOutputUser\endReport
(C)\Classes\ReportOutputUser\printViaClass
(C)\Classes\ReportViewer\printToTarget
(C)\Classes\ReportViewer\dialogAndPrint

Похоже что для
clientSysPrintOptions.parmViewerType(ReportOutputUserType::Viewer4);
не предусмотрено какого то вывода.

Можно ли как то выцепить данные из репорта (т.к. SysPrintForm запускается из него) и вывести их в Эксель в нормальном виде с одной шапкой и строками без пустых мест?
Старый 12.04.2010, 13:44   #5  
player is offline
player
Участник
 
107 / 69 (3) ++++
Регистрация: 25.08.2007
Цитата:
Сообщение от Boris22 Посмотреть сообщение
. Начните с простого:
Тема простоты не раскрыта, например про собственную реализацию наследника класса ReportOutputUser, который и должен выводить в случае Viewer4...
Теги
excel, отчет

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Классы для генерации отчетов в Excel Eldar9x DAX: Программирование 29 10.06.2011 13:18
EP2009. Не вижу стандартных отчетов на сервере отчетов. slava09 DAX: Администрирование 8 19.08.2008 08:03
Экспорт в Excel exodus DAX: Программирование 1 23.01.2008 09:35
Экспорт в Excel через WorkBooks.OpenText() Владимир Максимов DAX: Программирование 2 09.04.2004 17:16
Экспорт отчетов в Excel tolstjak DAX: Прочие вопросы 10 18.02.2004 09:12

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

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

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