04.03.2011, 17:42 | #1 |
Участник
|
Сводная таблица на форме через ADO.Recordset
Как сделать суммирование в сводной таблице по полям? Чтобы происходила автоматическая группировка?
Грубо говоря, есть так: X++: pivotTotal = activeView.AddTotal('Количество', pivotField, ptConstants.plFunctionCount());
COM::createFromObject(activeView.DataAxis()).InsertTotal(pivotTotal); X++: pivotTotal = activeView.AddTotal('Сумма', pivotField, ptConstants.plFunctionSum());
COM::createFromObject(activeView.DataAxis()).InsertTotal(pivotTotal); PS я пробовал любые поля pivotFields.Item(i)... |
|
04.03.2011, 18:29 | #2 |
Moderator
|
Я бы с такими вещами вначале разобрался в Бейсике (VBA) - в более родной для Pivot'а среде. Возьмите Excel, на один лист поместите ваши данные (recordset), на другой посадите PivotTable (внимание! не путать со сводной таблицей самого Excel!). Далее изобразите программу на VBA, которая бы делала то, что вы хотите. И только потом переносите в Аксапту.
Для удобства манипулирования свойствами PivotTable на VBA, воспользуйтесь подходом: Повышение комфортности разработки при использовании Spreadsheet P.S. Если вы используете в качестве прототипа мой пример про пользователей и группы, то для суммы должно быть как-то так: X++: rst = AdoRst::openRecordsetInMemory([ ... ['Amount', #adDouble]]); ... fld = flds.Item('Amount'); fld.Value(3.62); ... processFieldSet(activeView.DataAxis(), 'Amount'); pivotTotal = activeView.AddTotal('Сумма', pivotField, ptConstants.plFunctionSum()); // использование именованной константы COM::createFromObject( activeView.DataAxis() ).InsertTotal(pivotTotal); Последний раз редактировалось Gustav; 05.03.2011 в 10:38. |
|
05.03.2011, 10:39 | #3 |
Участник
|
Спасибо огромное.
На самом деле я работал с VBA около месяца, но всё уже забыто. По началу мне действительно показалось, что сводные таблицы в Excele и на форме одинаковые. Но excel не сравнимо мощнее. Цитата:
Сообщение от Gustav
Для удобства манипулирования свойствами PivotTable на VBA, воспользуйтесь подходом: Повышение комфортности разработки при использовании Spreadsheet
|
|
05.03.2011, 12:25 | #4 |
Участник
|
Сводные таблицы и Olap в Dax2009
Посмотрите мой проект. В примере идет группировка типа "Количество", но и с типом "Сумма" работает. Возможно, у вас изначально поле "Сумма" неверно добавлено в COM-объект.
__________________
Ivanhoe as is.. |
|