Добрый день. Борюсь с проблемой создания PivotTable из навика с признаком добавления в модель данных.
Работаю с Dynamics Nav 2015 и Excel 2013.
Параметры в excel такие:[attachment=1445:Pivot.jpg]
Собственно выделенный признак отвечает за создание пивоттаблицы с использованием фильтров на полях.
Стандартный механизм выгрузки аналитического отчета этого не дает и выглядит так:
xlPivotCache :=
xlApp.ActiveWorkbook.PivotCaches.Add(1,STRSUBSTNO('%1!A1:%2%3',xlSheetName,ExcelBuffer.xlColID,NoOfRows + 1));
xlPivotCache.CreatePivotTable('','PivotTable1');
xlWorkSheet2 := xlApp.ActiveSheet;
xlPivotTable := xlWorkSheet2.PivotTables('PivotTable1');
Код Visual Basic при этом:
ActiveWorkbook.Worksheets("Сводная таблица_ПОДОТЧЕТ").PivotTables("PivotTable1" _
).PivotCache.CreatePivotTable TableDestination:="Лист1!R3C1", TableName:= _
"СводнаяТаблица1", DefaultVersion:=xlPivotTableVersion10
Мне же нужно преобразовать для навика код который создает пивот с признаком модуля данных:
Workbooks("pivot1111.xlsx").Connections.Add2 _
"WorksheetConnection_Данные_ПОДОТЧЕТ!R1C1:R6206C34", "", _
"WORKSHEET;D:\Documents\[pivot1111.xlsx]Данные_ПОДОТЧЕТ", _
"Данные_ПОДОТЧЕТ!R1C1:R6206C34", 7, True, False
Sheets.Add
ActiveWorkbook.PivotCaches.Create(SourceType:=xlExternal, SourceData:= _
ActiveWorkbook.Connections("WorksheetConnection_Данные_ПОДОТЧЕТ!R1C1:R6206C34") _
, Version:=xlPivotTableVersion15).CreatePivotTable TableDestination:= _
"Лист2!R3C1", TableName:="СводнаяТаблица2", DefaultVersion:= _
xlPivotTableVersion15
Если просто поменять 1 на 2 (SourceType:=xlExternal):
xlPivotCache :=
xlApp.ActiveWorkbook.PivotCaches.Add(2,STRSUBSTNO('%1!A1:%2%3',xlSheetName,ExcelBuffer.xlColID,NoOfRows + 1));
то ругается в строке xlPivotCache.CreatePivotTable('','PivotTable1'); как Исключение из HRESULT: 0x800A03EC
Если сделать например так xlPivotCache.CreatePivotTable(xlWorkSheet2.Name+'!A3','PivotTable1'); то тогда такая ошибка:
Вызов System.__ComObject.CreatePivotTable завершился ошибкой со следующим сообщением: Параметр задан неверно. (Исключение из HRESULT: 0x80070057 (E_INVALIDARG))
Проблема в этой строке. Какие бы я параметры выше не делал, даже connection добавил, все выдает или ту или другую ошибку.
Возможно ктото сталкивался с таким, и вообще возможно ли создать из навика таким образом пивот?
|