1/**************************************************************
2 *
3 * Licensed to the Apache Software Foundation (ASF) under one
4 * or more contributor license agreements.  See the NOTICE file
5 * distributed with this work for additional information
6 * regarding copyright ownership.  The ASF licenses this file
7 * to you under the Apache License, Version 2.0 (the
8 * "License"); you may not use this file except in compliance
9 * with the License.  You may obtain a copy of the License at
10 *
11 *   http://www.apache.org/licenses/LICENSE-2.0
12 *
13 * Unless required by applicable law or agreed to in writing,
14 * software distributed under the License is distributed on an
15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16 * KIND, either express or implied.  See the License for the
17 * specific language governing permissions and limitations
18 * under the License.
19 *
20 *************************************************************/
21
22
23
24#ifndef __com_sun_star_sheet_XDataPilotTable2_idl__
25#define __com_sun_star_sheet_XDataPilotTable2_idl__
26
27#ifndef __com_sun_star_uno_XInterface_idl__
28#include <com/sun/star/uno/XInterface.idl>
29#endif
30
31#ifndef __com_sun_star_table_CellAddress_idl__
32#include <com/sun/star/table/CellAddress.idl>
33#endif
34
35#ifndef __com_sun_star_table_CellRangeAddress_idl__
36#include <com/sun/star/table/CellRangeAddress.idl>
37#endif
38
39#ifndef __com_sun_star_sheet_XDataPilotTable_idl__
40#include <com/sun/star/sheet/XDataPilotTable.idl>
41#endif
42
43#ifndef __com_sun_star_sheet_DataPilotOutputRangeType_idl__
44#include <com/sun/star/sheet/DataPilotOutputRangeType.idl>
45#endif
46
47#ifndef __com_sun_star_sheet_DataPilotFieldFilter_idl__
48#include <com/sun/star/sheet/DataPilotFieldFilter.idl>
49#endif
50
51#include <com/sun/star/sheet/DataPilotTablePositionData.idl>
52#include <com/sun/star/lang/IllegalArgumentException.idl>
53
54module com {  module sun {  module star {  module sheet {
55
56/** additional methods to extend <type scope="com::sun::star::sheet">XDataPilotTable</type>.
57
58   <type scope="com::sun::star::sheet">XDataPilotTable2</type> extends the old
59   <type scope="com::sun::star::sheet">XDataPilotTable</type> interface with
60   additional methods.
61
62   @see com::sun::star::sheet::XDataPilotTable
63
64   @since OpenOffice 3.0
65 */
66interface XDataPilotTable2: com::sun::star::sheet::XDataPilotTable
67{
68    /** When the address of a cell within the result area is given,
69        <method>XDataPilotTable2::getDrillDownData</method> returns its drill-down
70        output table that includes only those rows that contribute to the value of
71        that cell.
72
73        @param aAddr cell address within the result area of a DataPilot table.
74
75        @returns drill-down output as 2-dimensional sequence, including the header row.
76
77        @see <method>XDataPilotTable2::insertDrillDownSheet</method>
78     */
79    sequence< sequence< any > > getDrillDownData( [in] com::sun::star::table::CellAddress aAddr );
80
81    /** Given a cell address, it returns the information about that cell.  The
82        type of information returned depends upon whether the cell is within
83        the result area or column/row header area.
84
85        @param aAddr address of the cell whose information is to be returned.
86
87        @returns <type>DataPilotTablePositionData</type> which contains the
88        position type and the information for that cell position.
89
90        @see com::sun::star::sheet::DataPilotTablePositionData
91        @see com::sun::star::sheet::DataPilotTableHeaderData
92        @see com::sun::star::sheet::DataPilotTableResultData
93     */
94    DataPilotTablePositionData getPositionData( [in] com::sun::star::table::CellAddress aAddr );
95
96    /** <p>This method inserts a new sheet to display the drill-down data for a
97        specified result cell.  A drill-down data for a result cell consists
98        of a subset of rows from the original data source that contribute to
99        the value displayed in that cell.</p>
100
101        <p>The new sheet is always inserted to the immediate left of the current
102        sheet where the DataPilot table is.  Note that when the drill-down data
103        is empty, no new sheet is inserted.</p>
104
105        @param aAddr address of a result cell
106
107        @returns <void/>
108     */
109    void insertDrillDownSheet( [in] com::sun::star::table::CellAddress aAddr );
110
111    /** <p>This method returns a different output range of a DataPilot table
112        per specified output range type.</p>
113
114        @returns <type scope="com::sun::star::table">CellRangeAddress</type> depicting
115        the range specified.  See <type>DataPilotOutputRangeType</type> for a set
116        of possible output range types.
117
118        @see com::sun::star::sheet::DataPilotOutputRangeType
119     */
120    com::sun::star::table::CellRangeAddress getOutputRangeByType( [in] long nType )
121        raises (com::sun::star::lang::IllegalArgumentException);
122};
123
124}; }; }; };
125
126#endif
127
128