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_DataPilotFieldGroupInfo_idl__
29#define __com_sun_star_sheet_DataPilotFieldGroupInfo_idl__
30
31#ifndef __com_sun_star_sheet_XDataPilotField_idl__
32#include <com/sun/star/sheet/XDataPilotField.idl>
33#endif
34#ifndef __com_sun_star_container_XNameAccess_idl__
35#include <com/sun/star/container/XNameAccess.idl>
36#endif
37
38//=============================================================================
39
40module com {  module sun {  module star {  module sheet {
41
42//=============================================================================
43
44/** contains the grouping information of a <type>DataPilotField</type>.
45 */
46published struct DataPilotFieldGroupInfo
47{
48    //-------------------------------------------------------------------------
49
50    /** specifies whether the start value for the grouping is taken
51        automatically from the minimum of the item values.
52
53        <p><ul>
54        <li>If <FALSE/> is set, the value from <member>Start</member> will be
55        used as start value for the grouping.</li>
56        <li>If <TRUE/> is set, the start value for the grouping will be
57        calculated automatically from the minimum of all member values of the
58        DataPilot field.</li>
59        </ul></p>
60     */
61    boolean HasAutoStart;
62
63    //-------------------------------------------------------------------------
64
65    /** specifies whether the end value for the grouping is taken
66        automatically from the maximum of the item values.
67
68        <p><ul>
69        <li>If <FALSE/> is set, the value from <member>End</member> will be
70        used as end value for the grouping.</li>
71        <li>If <TRUE/> is set, the end value for the grouping will be
72        calculated automatically from the maximum of all member values of the
73        DataPilot field.</li>
74        </ul></p>
75     */
76    boolean HasAutoEnd;
77
78    //-------------------------------------------------------------------------
79
80    /** specifies whether date values are grouped by ranges of days.
81
82        <p><ul>
83        <li>If <FALSE/> is set, and <member>GroupBy</member> contains zero,
84        grouping is performed inplace on the item values.</li>
85        <li>If <FALSE/> is set, and <member>GroupBy</member> contains one or
86        more flags from <type>DataPilotFieldGroupBy</type>, grouping is
87        performed on date or time.</li>
88        <li>If <TRUE/> is set, <member>Step</member> contains a value greater
89        than or equal to 1, and <member>GroupBy</member> set to <const>
90        DataPilotFieldGroupBy::DAYS</const>, grouping is performed on ranges
91        of days (see descriptions for <member>
92        XDataPilotFieldGrouping::createDateGroup</member> for more details
93        about day grouping).</li>
94        </ul></p>
95     */
96    boolean HasDateValues;
97
98    //-------------------------------------------------------------------------
99
100    /** specifies the start value for the grouping if <member>HasAutoStart
101        </member> is set to <FALSE/>.
102     */
103    double Start;
104
105    //-------------------------------------------------------------------------
106
107    /** specifies the end value for the grouping if <member>HasAutoEnd
108        </member> is set to <FALSE/>.
109     */
110    double End;
111
112    //-------------------------------------------------------------------------
113
114    /** specifies the size of the ranges for numeric or day grouping.
115
116        <p>Example: With <member>HasAutoStart</member> set to <FALSE/>,
117        <member>Start</member> set to 2, and <member>Step</member> set to 3,
118        the first group will contain all values greater than or equal to 2 and
119        less than 5. The second group will contain all values greater than or
120        equal to 5 and less then 8, and so on.</p>
121     */
122    double Step;
123
124    //-------------------------------------------------------------------------
125
126    /** specifies the grouping of the date values.
127
128        @see DataPilotFieldGroupBy
129     */
130    long GroupBy;
131
132    //-------------------------------------------------------------------------
133
134    /** contains the source DataPilot field grouping is based on. Will be
135        <NULL/> if this field is not grouped or contains numeric grouping.
136
137        @see DataPilotField
138     */
139    XDataPilotField SourceField;
140
141    //-------------------------------------------------------------------------
142
143    /** specifies the named groups in this field if there are some.
144
145        <p>The returned object is an instance of <type>DataPilotFieldGroups
146        </type>. The collection of groups can be modified by inserting,
147        removing, replacing, or renaming single groups or item names in the
148        groups. When writing back this struct containing such a changed
149        collection of groups to the <member>DataPilotField::GroupInfo</member>
150        property, the modified grouping settings are applied at the DataPilot
151        field.</p>
152
153        @see DataPilotField
154        @see DataPilotFieldGroups
155     */
156    com::sun::star::container::XNameAccess Groups;
157};
158
159//=============================================================================
160
161}; }; }; };
162
163#endif
164
165