|
12.02.2007, 17:56 | #1 |
Участник
|
Сводную таблицу в Excel пакетом?
доброго дня.
Может кто заморачивался с автоматизированным экспортом сводной таблицы в эксель? задача такая: 1. по неким правилам отфильтровать сводную таблицу 2. для каждого набора правил сформировать экспорт excel Excel должен также читаться и при недоступном источнике OLAP. проблема с пунктом №2, не решу как к нему подступиться. |
|
12.02.2007, 20:16 | #2 |
злыдень
|
Цитата:
Excel должен также читаться и при недоступном источнике OLAP, проблема с пунктом №2, не решу как к нему подступиться.
правка, копировать - правка, специальная вставка, значения - разорвет связь с кубом и сделает обычный файлик. Или можно попробовать сделать локальный куб на основе серверного где то тут можно порыть или репортинг сервисом выдрать из куба значения мдх запросом и сохранить в плоский файл можно, т.е. там это штатная задача подготовка плоских отчетов, в т.ч. на основе данных из куба (правда не оч. ловко он работает) побить того кто это придумал, на крайняк подарить ему стрим на день рожденья
__________________
Ибо зло есть лучшая сила человека. "Человек должен становиться все лучше и злее" -- так учу я. /Ф. Ницше/ |
|
13.02.2007, 15:56 | #3 |
Участник
|
Вот с чем столкнулся. Класс аксапты FormActiveXControl имеет метод "copy" и pivotTable офиса тоже имеет такой метод.
Как правильно обойти вызов метода аксапты что-бы вызывался метод web-компоненты офиса? вроде где-то встречал а не нашёл ... пс. попытка привести FormActiveXControl к Object никаких улучшений не производит. |
|
13.02.2007, 16:53 | #4 |
Участник
|
А если привести к COM?
А если попробовать добавться к PivotTable через еще что-нибудь Типа PivotTable.Cell.Parent.Copy |
|
13.02.2007, 17:09 | #5 |
Участник
|
Там все проще - используйте метод _Copy()
__________________
Axapta v.3.0 sp5 kr2 |
|
|
За это сообщение автора поблагодарили: belugin (14). |
14.02.2007, 10:13 | #6 |
Участник
|
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 |
Участник
|
Саш, это работает, по-моему, только для 11 версии OWC.
В ММБшном приложении я сделал чтобы в XML хранились настройки стандартных свойдных таблиц аксаптовского ОЛАПа (так созраняются форматы и т.д.) Единственное "но" - оно сохраняет и настройки подключения - там какая-то нтука была на эту тему - посмотри - я щас не помню |
|