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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 06.02.2015, 17:36   #1  
Art_Tanis is offline
Art_Tanis
Участник
 
225 / 36 (2) +++
Регистрация: 04.02.2014
Метод Build Pivot Table в ComExcelDocument_RU
Добрый день!
Использую метод buildPivotTable
X++:
#define.xlDatabase(1)
#define.xlPivotTableVersion10(1)
#define.PivotTableName("PivotTable")
void buildPivotTable(BookMark _sourceBookMark, container _columnFields, container _rowFields, container _dataFields,
                    int _sourceWorkSheet = 1, BookMark _destBookMark = "", int _destWorkSheet = 1)
{
    COM         comWorkBook, comWorkSheet;
    COM         comPivotCaches, comPviotCache;
    COM         comPivotTable, comPivotField;
    COM         comCommandBars, comCommandBar;
    int         iPivotField;
    BookMark    destBookMark;
    ;

    comWorkBook = m_comApplication.activeWorkBook();
    comWorkSheet = this.getWorkSheet(_sourceWorkSheet);

    comPivotCaches = comWorkBook.PivotCaches();
    //xlDatabase means data is in the active workbook
    comPviotCache = comPivotCaches.Add(#xlDatabase, strFmt("%1!%2", comWorkSheet.name(), _sourceBookMark));
    //CreatePivotTable(str Destination (ex. [Книга1].Лист2!R3A1), str Data location, int pivotTableVersion)
    //Empty String as destination means a new WorkSheet will be created
    if (_destBookMark)
    {
        comWorkSheet = this.getWorkSheet(_destWorkSheet);
        destBookMark = strFmt("%1!%2", comWorkSheet.name(), _destBookMark);
    }
    comPivotTable = comPviotCache.CreatePivotTable(destBookMark, strFmt("%1%2", #PivotTableName, _sourceWorkSheet), #xlPivotTableVersion10);

    for (iPivotField = 1; iPivotField <= conlen(_columnFields); iPivotField++)
    {
        comPivotField = comPivotTable.PivotFields(conPeek(_columnFields, iPivotField));
        comPivotField.Orientation(2); //xlColumnField
        comPivotField.Position(iPivotField);
    }
    for (iPivotField = 1; iPivotField <= conlen(_rowFields); iPivotField++)
    {
        comPivotField = comPivotTable.PivotFields(conPeek(_rowFields, iPivotField));
        comPivotField.Orientation(1); //xlRowField
        comPivotField.Position(iPivotField);
    }

    for (iPivotField = 1; iPivotField <= conLen(_dataFields); iPivotField++)
    {
        //AddDataField(PivotField object [, shown name, type of aggregate function ])
        //xlSum = -4157 is default
        comPivotTable.AddDataField(comPivotTable.PivotFields(conPeek(_dataFields, iPivotField)));
    }
    //Hide the PivotTable FieldList
    comWorkBook.ShowPivotTableFieldList(false);

    //Hide the PivotTable CommandBar
    comCommandBars = m_comApplication.CommandBars();
    comCommandBar = comCommandBars.item(#PivotTableName);
    comCommandBar.visible(false);
}
Проблема вот в чем - мне надо последнее поле агрегировать как сумма, но сводная строится как количество. Не пойму как это справить?
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Pivot table IKA DAX: Программирование 1 17.03.2014 12:28
BookDataCalc_Sales_Ru, метод initOnPayment ошибка jonny DAX: Программирование 4 24.04.2011 16:52
Ax2009 RU5: класс CustVendAutoSettlement_Cust_RU, метод description() Damn DAX: Программирование 4 18.12.2010 15:42
emeadaxsupport: Project module Excel pivot table fails with error 0x80070057 E_INVALIDARG Blog bot DAX Blogs 0 10.05.2010 21:05
ComExcelDocument_RU по именнованной ячейки вывести номер ее строки. Poleax DAX: Программирование 37 15.10.2008 14:06

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

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

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