Показать сообщение отдельно
Старый 28.07.2010, 16:27   #1  
AlexeyVS is offline
AlexeyVS
Участник
 
103 / 31 (2) +++
Регистрация: 02.04.2010
Группировка сводной таблицы Excel
Коллеги!
Нужна ваша помощь в освоении Excel.
Ситуация следующая: отчет выгружается в шаблон excel, в шаблоне настроена сводная таблица, необходимо сгруппировать столбцы по полю Дата. Группировака должна быть по Месяцам, Кварталам, Годам.
Для реализации пишу такой код:

X++:
Array periods = new Array(Types::Enum);
...

// группировка данных сводной таблицы
    pivotField = pivotTable.pivotFields('Дата');
    dataRange = pivotField.dataRange();
    range = dataRange.cells();
    range = Com::createFromVariant(range.item(1));

    periods.value(1, false);
    periods.value(2, false);
    periods.value(3, false);
    periods.value(4, false);
    periods.value(5, true);
    periods.value(6, true);
    periods.value(7, true);
    
    varArray = ComVariant::createFromArray(periods);
    
    range.group(
        ComArgument::NoValue,
        ComArgument::NoValue,
        ComArgument::NoValue,
        varArray);
При вызове последнего метода получаем ошибку:
Метод "group" в COM-объекте класса "Range" возвратил код ошибки 0x800A03EC (<неизвестно>), который означает: Метод Group из класса Range завершен неверно.

В описании метода group сказано, что последним параметром может быть булевский массив, который и указывает, по каким периодам будет производится группировка. Подозреваю, что надо как-то по другому передавать этот массив.

Каким образом передать массив в метод?