1/*************************************************************************
2 *
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * Copyright 2000, 2010 Oracle and/or its affiliates.
6 *
7 * OpenOffice.org - a multi-platform office productivity suite
8 *
9 * This file is part of OpenOffice.org.
10 *
11 * OpenOffice.org is free software: you can redistribute it and/or modify
12 * it under the terms of the GNU Lesser General Public License version 3
13 * only, as published by the Free Software Foundation.
14 *
15 * OpenOffice.org is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18 * GNU Lesser General Public License version 3 for more details
19 * (a copy is included in the LICENSE file that accompanied this code).
20 *
21 * You should have received a copy of the GNU Lesser General Public License
22 * version 3 along with OpenOffice.org.  If not, see
23 * <http://www.openoffice.org/license.html>
24 * for a copy of the LGPLv3 License.
25 *
26 ************************************************************************/
27
28#ifndef __com_sun_star_sheet_XDataPilotTable2_idl__
29#define __com_sun_star_sheet_XDataPilotTable2_idl__
30
31#ifndef __com_sun_star_uno_XInterface_idl__
32#include <com/sun/star/uno/XInterface.idl>
33#endif
34
35#ifndef __com_sun_star_table_CellAddress_idl__
36#include <com/sun/star/table/CellAddress.idl>
37#endif
38
39#ifndef __com_sun_star_table_CellRangeAddress_idl__
40#include <com/sun/star/table/CellRangeAddress.idl>
41#endif
42
43#ifndef __com_sun_star_sheet_XDataPilotTable_idl__
44#include <com/sun/star/sheet/XDataPilotTable.idl>
45#endif
46
47#ifndef __com_sun_star_sheet_DataPilotOutputRangeType_idl__
48#include <com/sun/star/sheet/DataPilotOutputRangeType.idl>
49#endif
50
51#ifndef __com_sun_star_sheet_DataPilotFieldFilter_idl__
52#include <com/sun/star/sheet/DataPilotFieldFilter.idl>
53#endif
54
55#include <com/sun/star/sheet/DataPilotTablePositionData.idl>
56#include <com/sun/star/lang/IllegalArgumentException.idl>
57
58module com {  module sun {  module star {  module sheet {
59
60/** additional methods to extend <type scope="com::sun::star::sheet">XDataPilotTable</type>.
61
62   <type scope="com::sun::star::sheet">XDataPilotTable2</type> extends the old
63   <type scope="com::sun::star::sheet">XDataPilotTable</type> interface with
64   additional methods.
65
66   @see com::sun::star::sheet::XDataPilotTable
67
68   @since OOo 3.0
69 */
70interface XDataPilotTable2: com::sun::star::sheet::XDataPilotTable
71{
72    /** When the address of a cell within the result area is given,
73        <method>XDataPilotTable2::getDrillDownData</method> returns its drill-down
74        output table that includes only those rows that contribute to the value of
75        that cell.
76
77        @param aAddr cell address within the result area of a DataPilot table.
78
79        @returns drill-down output as 2-dimensional sequence, including the header row.
80
81        @see <method>XDataPilotTable2::insertDrillDownSheet</method>
82     */
83    sequence< sequence< any > > getDrillDownData( [in] com::sun::star::table::CellAddress aAddr );
84
85    /** Given a cell address, it returns the information about that cell.  The
86        type of information returned depends upon whether the cell is within
87        the result area or column/row header area.
88
89        @param aAddr address of the cell whose information is to be returned.
90
91        @returns <type>DataPilotTablePositionData</type> which contains the
92        position type and the information for that cell position.
93
94        @see com::sun::star::sheet::DataPilotTablePositionData
95        @see com::sun::star::sheet::DataPilotTableHeaderData
96        @see com::sun::star::sheet::DataPilotTableResultData
97     */
98    DataPilotTablePositionData getPositionData( [in] com::sun::star::table::CellAddress aAddr );
99
100    /** <p>This method inserts a new sheet to display the drill-down data for a
101        specified result cell.  A drill-down data for a result cell consists
102        of a subset of rows from the original data source that contribute to
103        the value displayed in that cell.</p>
104
105        <p>The new sheet is always inserted to the immediate left of the current
106        sheet where the DataPilot table is.  Note that when the drill-down data
107        is empty, no new sheet is inserted.</p>
108
109        @param aAddr address of a result cell
110
111        @returns <void/>
112     */
113    void insertDrillDownSheet( [in] com::sun::star::table::CellAddress aAddr );
114
115    /** <p>This method returns a different output range of a DataPilot table
116        per specified output range type.</p>
117
118        @returns <type scope="com::sun::star::table">CellRangeAddress</type> depicting
119        the range specified.  See <type>DataPilotOutputRangeType</type> for a set
120        of possible output range types.
121
122        @see com::sun::star::sheet::DataPilotOutputRangeType
123     */
124    com::sun::star::table::CellRangeAddress getOutputRangeByType( [in] long nType )
125        raises (com::sun::star::lang::IllegalArgumentException);
126};
127
128}; }; }; };
129
130#endif
131
132