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