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_DataPilotSourceDimension_idl__
29#define __com_sun_star_sheet_DataPilotSourceDimension_idl__
30
31#ifndef __com_sun_star_container_XNamed_idl__
32#include <com/sun/star/container/XNamed.idl>
33#endif
34
35#ifndef __com_sun_star_sheet_XHierarchiesSupplier_idl__
36#include <com/sun/star/sheet/XHierarchiesSupplier.idl>
37#endif
38
39#ifndef __com_sun_star_util_XCloneable_idl__
40#include <com/sun/star/util/XCloneable.idl>
41#endif
42
43#ifndef __com_sun_star_beans_XPropertySet_idl__
44#include <com/sun/star/beans/XPropertySet.idl>
45#endif
46
47#ifndef __com_sun_star_sheet_DataPilotFieldOrientation_idl__
48#include <com/sun/star/sheet/DataPilotFieldOrientation.idl>
49#endif
50
51#ifndef __com_sun_star_sheet_GeneralFunction_idl__
52#include <com/sun/star/sheet/GeneralFunction.idl>
53#endif
54
55#ifndef __com_sun_star_sheet_TableFilterField_idl__
56#include <com/sun/star/sheet/TableFilterField.idl>
57#endif
58
59//=============================================================================
60
61 module com {  module sun {  module star {  module sheet {
62
63//=============================================================================
64
65/** represents a dimension in a data pilot source.
66
67	<p>A dimension is equivalent to a column of a cell range in a spreadsheet
68	used for a data pilot field.</p>
69
70	<p>In more complex data sources, a dimension may contain several
71	hierarchies, which consolidate items of a complex data type, called
72	levels.</p>
73
74	<p>Example: In a database, a column contains date values. This column
75	will be a dimension of the data pilot source. One hierarchy may contain
76	the 3 levels year, month, day. Another hierarchy may contain the 2 levels
77	year and week number.</p>
78
79	@see com::sun::star::sheet::DataPilotSource
80	@see com::sun::star::sheet::DataPilotTable
81 */
82published service DataPilotSourceDimension
83{
84	//-------------------------------------------------------------------------
85
86	/** provides access to the name of the dimension, i.e. used in
87		collections.
88	 */
89	interface com::sun::star::container::XNamed;
90
91	//-------------------------------------------------------------------------
92
93	/** provides access to the collection of hierarchies of this dimension.
94	 */
95	interface com::sun::star::sheet::XHierarchiesSupplier;
96
97	//-------------------------------------------------------------------------
98
99	/** supports duplicating the dimension.
100
101		<p>A dimension may be used several times in a data pilot table,
102		i.e. as row field and data field.</p>
103	 */
104	interface com::sun::star::util::XCloneable;
105
106	//-------------------------------------------------------------------------
107
108//!published service PropertySet
109	/** provides access to the properties.
110	 */
111	interface com::sun::star::beans::XPropertySet;
112
113	//=========================================================================
114
115	/** returns the name of the dimension from which this dimension was
116		cloned, or <NULL/> if it was not cloned.
117	 */
118	[readonly, property] com::sun::star::container::XNamed Original;
119
120	//-------------------------------------------------------------------------
121
122	/** contains <TRUE/> if this is the dimension used to layout the
123		different data dimensions.
124	 */
125	[readonly, property] boolean IsDataLayoutDimension;
126
127	//-------------------------------------------------------------------------
128
129	/** specifies where the dimension is used.
130	 */
131	[property] com::sun::star::sheet::DataPilotFieldOrientation Orientation;
132
133	//-------------------------------------------------------------------------
134
135	/** specifies the position of the dimension within its orientation.
136	 */
137	[property] long Position;
138
139	//-------------------------------------------------------------------------
140
141	/** specifies how data are aggregated.
142	 */
143	[property] com::sun::star::sheet::GeneralFunction Function;
144
145	//-------------------------------------------------------------------------
146
147	/** specifies which hierarchy of the dimension is used.
148
149		@see com::sun::star::sheet::DataPilotSourceHierarchies
150	 */
151	[property] long UsedHierarchy;
152
153	//-------------------------------------------------------------------------
154
155	/** specifies which values are used.
156	 */
157	[property] sequence< com::sun::star::sheet::TableFilterField > Filter;
158
159    //-------------------------------------------------------------------------
160
161    /** contains flags that control the usage of the dimension.
162
163        @see com::sun::star::sheet::DimensionFlags
164     */
165    [readonly, property, optional] long Flags;
166
167};
168
169//=============================================================================
170
171}; }; }; };
172
173#endif
174
175