'************************************************************************* ' ' Licensed to the Apache Software Foundation (ASF) under one ' or more contributor license agreements. See the NOTICE file ' distributed with this work for additional information ' regarding copyright ownership. The ASF licenses this file ' to you under the Apache License, Version 2.0 (the ' "License"); you may not use this file except in compliance ' with the License. You may obtain a copy of the License at ' ' http://www.apache.org/licenses/LICENSE-2.0 ' ' Unless required by applicable law or agreed to in writing, ' software distributed under the License is distributed on an ' "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY ' KIND, either express or implied. See the License for the ' specific language governing permissions and limitations ' under the License. ' '************************************************************************* ' Be sure that all variables are dimensioned: option explicit ' REQUIRED VARIABLES for interface/service tests: ' Requiered for com.sun.star.container.XNamed Global cNameToSet As String ' "fixed" if name is fixed ' Required for com.sun.star.sheet.XDataPilotTable Global oOutputRange As Variant Sub CreateObj() '************************************************************************* ' COMPONENT: ' sc.ScDataPilotTableObj '************************************************************************* On Error Goto ErrHndl Dim oSheet As Object Dim i, j As Integer Dim oDataPilotTables As Object Dim oDataPilotDescriptor As Object Dim oFilterDescriptor As Object Dim oDataPilotField As Object oDoc = utils.createDocument("scalc", cObjectName) oSheet = oDoc.Sheets.getByIndex(0) for i = 1 to 5 oSheet.getCellByPosition(0, i).String = "Row" & i oSheet.getCellByPosition(i, 0).String = "Col" & i next i for i = 1 to 5 for j = 1 to 5 oSheet.getCellByPosition(i, j).Value = 2.5 * j + i next j next i Dim sCellRangeAddress As New com.sun.star.table.CellRangeAddress sCellRangeAddress.Sheet = 0 sCellRangeAddress.StartColumn = 1 sCellRangeAddress.StartRow = 0 sCellRangeAddress.EndColumn = 1 sCellRangeAddress.EndRow = 5 Dim sCellAddress As New com.sun.star.table.CellAddress sCellAddress.Sheet = 0 sCellAddress.Column = 7 sCellAddress.Row = 8 Dim FilterFields(1) As New com.sun.star.sheet.TableFilterField FilterFields(0).Connection = com.sun.star.sheet.FilterConnection.AND FilterFields(0).Field = 1 FilterFields(0).isNumeric = true FilterFields(0).StringValue = "4" FilterFields(0).Operator = com.sun.star.sheet.FilterOperator.GREATER FilterFields(1).Connection = com.sun.star.sheet.FilterConnection.AND FilterFields(1).Field = 1 FilterFields(1).isNumeric = true FilterFields(1).StringValue = "12" FilterFields(1).Operator = com.sun.star.sheet.FilterOperator.LESS_EQUAL oDataPilotTables = oSheet.getDataPilotTables oDataPilotDescriptor = oDataPilotTables.createDataPilotDescriptor() oDataPilotDescriptor.setSourceRange(sCellRangeAddress) oFilterDescriptor = oDataPilotDescriptor.getFilterDescriptor() oFilterDescriptor.setFilterFields(FilterFields()) oDataPilotField = oDataPilotDescriptor.getDataPilotFields().getByIndex(0) oDataPilotField.Function = com.sun.star.sheet.GeneralFunction.SUM oDataPilotField.Orientation = com.sun.star.sheet.DataPilotFieldOrientation.DATA oDataPilotTables.insertNewByName(cObjectName, sCellAddress, oDataPilotDescriptor) oObj = oDataPilotTables(0) oOutputRange = sCellAddress Exit Sub ErrHndl: Test.Exception() End Sub