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/