Показать сообщение отдельно
Старый 04.03.2011, 18:29   #2  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Я бы с такими вещами вначале разобрался в Бейсике (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);
Поле-то надо добавить суммируемое в область данных (DataAxis). У меня же в примере с количеством используется просто последнее, оказавшееся в переменной pivotField. При подсчете количества этого достаточно, потому что считать можно практически по любому полю. Для суммы же нужно вполне конкретное числовое: в вашем случае - Amount.

Последний раз редактировалось Gustav; 05.03.2011 в 10:38.