|
|
#8 |
|
Участник
|
просто думал что проблема не в самом рекордсете а в той памяти которую он занимает.
AdoRecordset собрал из таблиц: X++: ADOfields = ADORecordset.Fields();
ADOfields.Append(#RContractCode , #adVarChar, 20);
ADOfields.Append(#RContractAccount , #adVarChar, 20);
ADOfields.Append(#Dimension1 , #adVarChar, 64);
ADOfields.Append(#Dimension2 , #adVarChar, 64);
ADOfields.Append(#BudgetAmount , #adDouble);
while(qr.next())
{
custTrans = qr.get(tableNum(CustTrans));
ADORecordset.AddNew();
ADOfield = ADOfields.Item(#RContractCode);
ADOfield.Value(COMVariant::createFromStr(CustTrans.AccountNum));//+RContractTypes::find(rContractPartnerType::Cust));
ADOfield = ADOfields.Item(#RContractAccount);
ADOfield.Value(COMVariant::createFromStr(CustTrans.RContractAccount));
ADOfield = ADOfields.Item(#Dimension1);
ADOfield.Value(COMVariant::createFromStr(CustTrans.Dimension[1]+' '+dimensions::find(SysDimension::Department, CustTrans.Dimension[1]).Description));
ADOfield = ADOfields.Item(#Dimension2);
ADOfield.Value(COMVariant::createFromStr(CustTrans.Dimension[2]+' '+dimensions::find(SysDimension::Center, CustTrans.Dimension[2]).Description));
ADOfield = ADOfields.Item(#BudgetAmount);
ADOfield.Value(COMVariant::createFromReal(CustTrans.AmountMST));
ADORecordset.Update();}X++: PivotTable = grpPivotTableHolder.addControl(formControlType::ActiveX, "PivotTable"); PivotTable.className(xPivotTableManager::getClassId(xPivotTableVersion::OfficePivotTable11)); PivotTable.DataSource(reportEngine.ADORecordset()); ptConstants = pivotTable.Constants(); pivotTableView = pivotTable.ActiveView(); avFieldSets = pivotTableView.FieldSets(); COM::createFromObject(pivotTable.ActiveData()).HideDetails(); COM::createFromObject(pivotTableView.TitleBar()).Visible(false); this.processFieldSet(pivotTableView.RowAxis(), #Dimension1); this.processFieldSet(pivotTableView.RowAxis(), #Dimension2); this.processFieldSet(pivotTableView.DataAxis(), #BudgetAmount); pivotTotal = pivotTableView.AddTotal("Сумма", pivotField, ptConstants.plFunctionSum()); COM::createFromObject(pivotTableView.DataAxis()).InsertTotal(pivotTotal); |
|
|