1cdf0e10cSrcweir<?xml version="1.0" encoding="UTF-8"?>
2cdf0e10cSrcweir<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
3cdf0e10cSrcweir<script:module xmlns:script="http://openoffice.org/2000/script" script:name="sc_ScDataPilotTableObj" script:language="StarBasic">
4cdf0e10cSrcweir
5cdf0e10cSrcweir
6cdf0e10cSrcweir'*************************************************************************
7cdf0e10cSrcweir'
8*5846f787SAndrew Rist'  Licensed to the Apache Software Foundation (ASF) under one
9*5846f787SAndrew Rist'  or more contributor license agreements.  See the NOTICE file
10*5846f787SAndrew Rist'  distributed with this work for additional information
11*5846f787SAndrew Rist'  regarding copyright ownership.  The ASF licenses this file
12*5846f787SAndrew Rist'  to you under the Apache License, Version 2.0 (the
13*5846f787SAndrew Rist'  "License"); you may not use this file except in compliance
14*5846f787SAndrew Rist'  with the License.  You may obtain a copy of the License at
15*5846f787SAndrew Rist'
16*5846f787SAndrew Rist'    http://www.apache.org/licenses/LICENSE-2.0
17*5846f787SAndrew Rist'
18*5846f787SAndrew Rist'  Unless required by applicable law or agreed to in writing,
19*5846f787SAndrew Rist'  software distributed under the License is distributed on an
20*5846f787SAndrew Rist'  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
21*5846f787SAndrew Rist'  KIND, either express or implied.  See the License for the
22*5846f787SAndrew Rist'  specific language governing permissions and limitations
23*5846f787SAndrew Rist'  under the License.
24cdf0e10cSrcweir'
25cdf0e10cSrcweir'*************************************************************************
26cdf0e10cSrcweir
27cdf0e10cSrcweir
28cdf0e10cSrcweir
29*5846f787SAndrew Rist
30*5846f787SAndrew Rist
31cdf0e10cSrcweir' Be sure that all variables are dimensioned:
32cdf0e10cSrcweiroption explicit
33cdf0e10cSrcweir
34cdf0e10cSrcweir
35cdf0e10cSrcweir' REQUIRED VARIABLES for interface/service tests:
36cdf0e10cSrcweir
37cdf0e10cSrcweir' Requiered for com.sun.star.container.XNamed
38cdf0e10cSrcweirGlobal cNameToSet As String ' "fixed" if name is fixed
39cdf0e10cSrcweir
40cdf0e10cSrcweir' Required for com.sun.star.sheet.XDataPilotTable
41cdf0e10cSrcweirGlobal oOutputRange As Variant
42cdf0e10cSrcweir
43cdf0e10cSrcweir
44cdf0e10cSrcweirSub CreateObj()
45cdf0e10cSrcweir
46cdf0e10cSrcweir'*************************************************************************
47cdf0e10cSrcweir' COMPONENT:
48cdf0e10cSrcweir' sc.ScDataPilotTableObj
49cdf0e10cSrcweir'*************************************************************************
50cdf0e10cSrcweirOn Error Goto ErrHndl
51cdf0e10cSrcweir    Dim oSheet As Object
52cdf0e10cSrcweir    Dim i, j As Integer
53cdf0e10cSrcweir    Dim oDataPilotTables As Object
54cdf0e10cSrcweir    Dim oDataPilotDescriptor As Object
55cdf0e10cSrcweir    Dim oFilterDescriptor As Object
56cdf0e10cSrcweir    Dim oDataPilotField As Object
57cdf0e10cSrcweir
58cdf0e10cSrcweir    oDoc = utils.createDocument("scalc", cObjectName)
59cdf0e10cSrcweir    oSheet = oDoc.Sheets.getByIndex(0)
60cdf0e10cSrcweir
61cdf0e10cSrcweir    for i = 1 to 5
62cdf0e10cSrcweir    	oSheet.getCellByPosition(0, i).String = "Row" &amp; i
63cdf0e10cSrcweir    	oSheet.getCellByPosition(i, 0).String = "Col" &amp; i
64cdf0e10cSrcweir    next i
65cdf0e10cSrcweir
66cdf0e10cSrcweir    for i = 1 to 5
67cdf0e10cSrcweir        for j = 1 to 5
68cdf0e10cSrcweir            oSheet.getCellByPosition(i, j).Value = 2.5 * j + i
69cdf0e10cSrcweir        next j
70cdf0e10cSrcweir    next i
71cdf0e10cSrcweir
72cdf0e10cSrcweir    Dim sCellRangeAddress As New com.sun.star.table.CellRangeAddress
73cdf0e10cSrcweir    sCellRangeAddress.Sheet = 0
74cdf0e10cSrcweir    sCellRangeAddress.StartColumn = 1
75cdf0e10cSrcweir    sCellRangeAddress.StartRow = 0
76cdf0e10cSrcweir    sCellRangeAddress.EndColumn = 1
77cdf0e10cSrcweir    sCellRangeAddress.EndRow = 5
78cdf0e10cSrcweir
79cdf0e10cSrcweir    Dim sCellAddress As New com.sun.star.table.CellAddress
80cdf0e10cSrcweir    sCellAddress.Sheet = 0
81cdf0e10cSrcweir    sCellAddress.Column = 7
82cdf0e10cSrcweir    sCellAddress.Row = 8
83cdf0e10cSrcweir
84cdf0e10cSrcweir    Dim FilterFields(1) As New com.sun.star.sheet.TableFilterField
85cdf0e10cSrcweir    FilterFields(0).Connection = com.sun.star.sheet.FilterConnection.AND
86cdf0e10cSrcweir    FilterFields(0).Field = 1
87cdf0e10cSrcweir    FilterFields(0).isNumeric = true
88cdf0e10cSrcweir    FilterFields(0).StringValue = "4"
89cdf0e10cSrcweir    FilterFields(0).Operator = com.sun.star.sheet.FilterOperator.GREATER
90cdf0e10cSrcweir
91cdf0e10cSrcweir    FilterFields(1).Connection = com.sun.star.sheet.FilterConnection.AND
92cdf0e10cSrcweir    FilterFields(1).Field = 1
93cdf0e10cSrcweir    FilterFields(1).isNumeric = true
94cdf0e10cSrcweir    FilterFields(1).StringValue = "12"
95cdf0e10cSrcweir    FilterFields(1).Operator = com.sun.star.sheet.FilterOperator.LESS_EQUAL
96cdf0e10cSrcweir
97cdf0e10cSrcweir    oDataPilotTables = oSheet.getDataPilotTables
98cdf0e10cSrcweir    oDataPilotDescriptor = oDataPilotTables.createDataPilotDescriptor()
99cdf0e10cSrcweir    oDataPilotDescriptor.setSourceRange(sCellRangeAddress)
100cdf0e10cSrcweir    oFilterDescriptor = oDataPilotDescriptor.getFilterDescriptor()
101cdf0e10cSrcweir    oFilterDescriptor.setFilterFields(FilterFields())
102cdf0e10cSrcweir
103cdf0e10cSrcweir    oDataPilotField = oDataPilotDescriptor.getDataPilotFields().getByIndex(0)
104cdf0e10cSrcweir    oDataPilotField.Function = com.sun.star.sheet.GeneralFunction.SUM
105cdf0e10cSrcweir    oDataPilotField.Orientation = com.sun.star.sheet.DataPilotFieldOrientation.DATA
106cdf0e10cSrcweir
107cdf0e10cSrcweir    oDataPilotTables.insertNewByName(cObjectName, sCellAddress, oDataPilotDescriptor)
108cdf0e10cSrcweir
109cdf0e10cSrcweir    oObj = oDataPilotTables(0)
110cdf0e10cSrcweir    oOutputRange = sCellAddress
111cdf0e10cSrcweir
112cdf0e10cSrcweirExit Sub
113cdf0e10cSrcweirErrHndl:
114cdf0e10cSrcweir    Test.Exception()
115cdf0e10cSrcweirEnd Sub
116cdf0e10cSrcweir
117cdf0e10cSrcweir</script:module>
118