![]() |
#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); |
|