8-800-700-15-02

Звонок по России
бесплатный

info@i-neti.ru

Сводная таблица в AX2012 в Excel

asd
Дата публикации: 11.01.2016

В ComExcelDocument_RU
#define.xlDatabase(1)
#define.xlPivotTableVersion15(5)
#define.PivotTableName("Своднаятаблица1")
#define.PivotTable("PivotTable")
void buildPivotTable(BookMark        _sourceBookMark,
                        container       _columnFields,
                        container       _rowFields,
                        container       _dataFields,
                        int             _sourceWorkSheet = 1,
                        BookMark        _destBookMark = "",
                        int             _destWorkSheet = 1,
                        str             _destWorkSheetName = "",
                        BookMark        _destBookMarkCell = "")
{
    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.Create(#xlDatabase, strFmt("%1!%2", comWorkSheet.name(), _sourceBookMark), #xlPivotTableVersion15);

    //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(strFmt("%1!%2", _destWorkSheetName, _destBookMarkCell), #PivotTableName, #xlPivotTableVersion15);

    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++)
    {
        comPivotTable.AddDataField(comPivotTable.PivotFields(conPeek(_dataFields, iPivotField)));
    }
    //Hide the PivotTable FieldList
    comWorkBook.ShowPivotTableFieldList(true);

    //Hide the PivotTable CommandBar

    comCommandBars = m_comApplication.CommandBars();
    comCommandBar = comCommandBars.item(#PivotTable);
    comCommandBar.visible(true);
}

вызывается вот так:
excel.buildPivotTable(strFmt("%1:%2", "A1", ComExcelDocument_RU::numToNameCell(13, row - 1)), conCols, conRows, conData, 1, "A1", 1, "Лист2", "R3C1");

где

    container                       conCols   = ["Филиал","Регион","Магазин","Тип товара","Группа","Подгруппа","Товар"];
    container                       conRows   = ["Филиал","Регион","Магазин","Тип товара","Группа","Подгруппа","Товар"];
    container                       conData   = ["Количество продаж за период в штуках","Сумма продаж в рублях","Себестоимость продаж"];

 

 

Акция "Тест-драйв Сопровождения"

Попробуй сопровождение АХ до подписания договора!


Узнать подробнее

Другие записи в блоге

20.02.2020
Упрощенное получение значения аналитики После релиза Dynamics 365 for Operations [Enterprise Edition] структура аналитик и бизнес-логика немного изменились. В этом посте я познакомлю вас с...
17.02.2020
В этом ролике Дмитрий, разработчик Dynamics расскажет:
24.01.2020
В этом видео Дмитрий Уткин расскажет о том, как автоматически собрать модель в Microsoft Dynamics AX 2012 с помощью Pipelines в Azure DevOps.

Подпишитесь на блог

Все интересные статьи нашего блога на Вашем почтовом ящике!


Подписка

Служба контроля качества сервиса

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


Письмо директору