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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 12.02.2007, 17:56   #1  
zinius is offline
zinius
Участник
 
24 / 11 (1) +
Регистрация: 26.01.2005
Сводную таблицу в Excel пакетом?
доброго дня.

Может кто заморачивался с автоматизированным экспортом сводной таблицы в эксель?

задача такая:
1. по неким правилам отфильтровать сводную таблицу
2. для каждого набора правил сформировать экспорт excel

Excel должен также читаться и при недоступном источнике OLAP.
проблема с пунктом №2, не решу как к нему подступиться.
Старый 12.02.2007, 20:16   #2  
Recoilme is offline
Recoilme
злыдень
Аватар для Recoilme
Злыдни
 
895 / 192 (8) ++++++
Регистрация: 18.06.2003
Цитата:
Excel должен также читаться и при недоступном источнике OLAP, проблема с пунктом №2, не решу как к нему подступиться.
В качестве возможных направлений:
правка, копировать - правка, специальная вставка, значения - разорвет связь с кубом и сделает обычный файлик.

Или можно попробовать сделать локальный куб на основе серверного где то тут можно порыть

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

побить того кто это придумал, на крайняк подарить ему стрим на день рожденья
__________________
Ибо зло есть лучшая сила человека. "Человек должен становиться все лучше и злее" -- так учу я. /Ф. Ницше/
Старый 13.02.2007, 15:56   #3  
zinius is offline
zinius
Участник
 
24 / 11 (1) +
Регистрация: 26.01.2005
Вот с чем столкнулся. Класс аксапты FormActiveXControl имеет метод "copy" и pivotTable офиса тоже имеет такой метод.
Как правильно обойти вызов метода аксапты что-бы вызывался метод web-компоненты офиса?

вроде где-то встречал а не нашёл ...

пс. попытка привести FormActiveXControl к Object никаких улучшений не производит.
Старый 13.02.2007, 16:53   #4  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
А если привести к COM?
А если попробовать добавться к PivotTable через еще что-нибудь

Типа PivotTable.Cell.Parent.Copy
Старый 13.02.2007, 17:09   #5  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
Там все проще - используйте метод _Copy()
__________________
Axapta v.3.0 sp5 kr2
За это сообщение автора поблагодарили: belugin (14).
Старый 14.02.2007, 10:13   #6  
zinius is offline
zinius
Участник
 
24 / 11 (1) +
Регистрация: 26.01.2005
2ANDY - большое спасибо, указанным методом (_copy) копирование сработало.

2Макс - помучморил pivotTable.Export - выкидывает настроенные фильтры в xml файл формате, затем экселем этот файл открываем, обновляем данные и сохраняем в xls - теперь данные отображаются и без наличия источника. Осталось прикрутить твое мегаполе XMLData с фильтрами

Вот черновой код, запускается из временной кнопки формы OLAPPivotTable:

X++:
void pivot2xls()
{
    COM             application = new COM('Excel.application');
    COM             workBooks;
    COM             workBook;
    COM             workSheets;
    COM             workSheet;
    COM             pivTables;
    COM             pivTable;
    COM             pivCache;
    ;

    //этот вариант для копирования в буфер но внешний вид
    //получается лучше у экспорта
    //pivotTable._copy(pivotTable.ActiveView());

    //зачистка ненужных файлов дабы эксель не задавал дурацких вопросов
    WinAPI::deleteFile('c:\\1.htm');
    WinAPI::deleteFile('c:\\test.xls');

    //экспорт htm
    pivotTable.Export('c:\\1.htm', 0); 
    // 0 = тупо выгрузить
    // 1 = 0 + отобразить в экселе

    //конвертация в xls
    workBooks   = application.workBooks();
    workBook    = workBooks.open('c:\\1.htm');

    workSheets  = workBook.worksheets();
    workSheet   = workSheets.item("Лист1");

    //если не подсосать данные их источника то файл будет пустым
    pivTables   = workSheet.PivotTables();
    pivTable    = pivTables.item("Сводная таблица Microsoft Office 11.0");

    pivCache    = pivTable.PivotCache();
    pivCache.Refresh();

    //сохранение в xls
    workBook.saveAs('c:\\test.xls', 39); //39 - XlFileFormat::xlExcel5, xlExcel7

    //на этом и закончим
    application.quit();
Вот ещё интересная статейка на эту тему:
http://www.compress.ru/Archive/CP/2000/12/28/

Последний раз редактировалось zinius; 14.02.2007 в 10:30.
Старый 14.02.2007, 11:58   #7  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Саш, это работает, по-моему, только для 11 версии OWC.

В ММБшном приложении я сделал чтобы в XML хранились настройки стандартных свойдных таблиц аксаптовского ОЛАПа (так созраняются форматы и т.д.) Единственное "но" - оно сохраняет и настройки подключения - там какая-то нтука была на эту тему - посмотри - я щас не помню
Теги
excel, olap, сводная таблица

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Исследование скорости экспорта данных из Axapta в Excel (коллективный эксперимент) Gustav DAX: База знаний и проекты 79 13.02.2014 13:18
Как обновить сводную таблицу Arahnid DAX: Программирование 1 03.10.2007 17:02
[Excel] - Несколько версий Excel на машине клиента Андре DAX: Программирование 11 07.08.2007 13:45
Русская локализация Axapta 3 ? SlavaK DAX: Администрирование 59 01.07.2003 22:38
Как сделать сводную таблицу? kalex DAX: Программирование 3 08.01.2003 15:22

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

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

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