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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 29.03.2011, 19:20   #1  
jkspb is offline
jkspb
Участник
 
18 / 20 (1) +++
Регистрация: 03.03.2009
Для этого вам нужен шаблон в формате xml для ексель.
Создаете новый документ и сохраните его в формате "таблица xml 2003 (*.xml)".
При работе с шаблоном можно выделить 2 типа данных, требующих заполнения6 статические (дата отчета, номер документа и т.д.) и динамические (табличная часть, подписи, итоги).
Для статичных данных нам требуется сама ячейка, для динамических - формат оформления (преимущественно).
В обоих случаях используются именованные ячейки екселя (Формулы\Диспетчер имен\Присвоить имя).
Сам формат екселя предполагает только работу с базовыми возможностями екселя, т.е всякие графики, сводные таблицы формат не поддерживает. Доступ к этим возможностям осуществляется при помощи объекта COM, после того, как файл с данными.
Для работы вам нужно реализовать обертку, при помощи которой будет открываться файл, осуществляться поиск узлов, добавление новых узлов, их атрибутов и свойств.
Ну, а дальше, используя обертку, открываете файл, находите нужные "статичные именованные ячейки", заполняете значениями, используя формат элементов табличной части, создаете стоки таблицы, самостоятельно определяя по некоторому алгоритму, когда нужно вставить итоги по странице, которые вы накапливаете, вставить разрыв страницы, скопировать шапку для нового листа, сохраняете изменения в новом файле, передаете объекту СОМ екселя и отображаете, или печатаете.
Для вставки разрыва страницы, вам нужно в *.xml файлы вставить соответствующие узлы. Какой именно? Вставьте в екселе разрыв страницы, сохраните изменения и посмотрите при помощи какого-либо редактора, что изменилось.
Для работы с хмл использую семейство классов XMLElement, XMLDocument (см. форум, "гугл" - статей достаточно).
Использовать СОМ екселя для создание документа - не рекомендую, очень медленно. Можете использовать для вызова дополнительных функций (например, графиков).
Есть вариант работы с екселем через DDE.
Думаю, что проблем с прямым доступом к OpenOffice не должно быть. В любом случае всегда можно реализовать обертку через стороннее приложение, dll-ку.
За это сообщение автора поблагодарили: vr (1).
Старый 30.03.2011, 11:57   #2  
vr is offline
vr
Участник
 
7 / 10 (1) +
Регистрация: 29.11.2004
Адрес: Москва
Спасибо огромное! Сейчас буду пробовать.

Вопрос:
При работе с шаблоном Exel в формате xml непонятно каким образом рассчитать места длдя вставки разрыва страницы, ведь высота строк табличной части меняется в зависимости от длины наименования

Последний раз редактировалось vr; 30.03.2011 в 12:05.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
axinthefield: Dynamics AX Event IDs Blog bot DAX Blogs 0 01.03.2011 22:11
daxdilip: Whats New in Dynamics AX 2012 (A brief extract from the recently held Tech Conf.) Blog bot DAX Blogs 7 31.01.2011 12:35
semanticax: Dynamics AX 2009 Installation - Application Blog bot DAX Blogs 0 22.12.2010 08:11
axStart: Microsoft Dynamics AX 2009 Hot Topics Web Seminar Series Blog bot DAX Blogs 0 06.08.2008 12:05
Arijit Basu: AX 2009 - Quick Overview Blog bot DAX Blogs 4 19.05.2008 14:47
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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