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#ifndef __com_sun_star_report_XReportDefinition_idl__
24#define __com_sun_star_report_XReportDefinition_idl__
25
26#ifndef __com_sun_star_report_XReportComponent_idl__
27#include <com/sun/star/report/XReportComponent.idl>
28#endif
29#ifndef __com_sun_star_report_XFunctionsSupplier_idl__
30#include <com/sun/star/report/XFunctionsSupplier.idl>
31#endif
32#ifndef __com_sun_star_view_PaperOrientation_idl__
33#include <com/sun/star/view/PaperOrientation.idl>
34#endif
35#ifndef __com_sun_star_container_NoSuchElementException_idl__
36#include <com/sun/star/container/NoSuchElementException.idl>
37#endif
38#ifndef __com_sun_star_style_GraphicLocation_idl__
39#include <com/sun/star/style/GraphicLocation.idl>
40#endif
41#ifndef __com_sun_star_view_PaperFormat_idl__
42#include <com/sun/star/view/PaperFormat.idl>
43#endif
44#ifndef __com_sun_star_util_XClosable_idl__
45#include <com/sun/star/util/XCloseable.idl>
46#endif
47#ifndef __com_sun_star_ui_XUIConfigurationManagerSupplier_idl__
48#include <com/sun/star/ui/XUIConfigurationManagerSupplier.idl>
49#endif
50#ifndef __com_sun_star_document_XDocumentSubStorageSupplier_idl__
51#include <com/sun/star/document/XDocumentSubStorageSupplier.idl>
52#endif
53#ifndef __com_sun_star_frame_XModel_idl__
54#include <com/sun/star/frame/XModel.idl>
55#endif
56#ifndef __com_sun_star_document_XViewDataSupplier_idl__
57#include <com/sun/star/document/XViewDataSupplier.idl>
58#endif
59#ifndef __com_sun_star_frame_XLoadable_idl__
60#include <com/sun/star/frame/XLoadable.idl>
61#endif
62#ifndef __com_sun_star_embed_XVisualObject_idl__
63#include <com/sun/star/embed/XVisualObject.idl>
64#endif
65#ifndef __com_sun_star_embed_XStorageBasedDocument_idl__
66#include <com/sun/star/document/XStorageBasedDocument.idl>
67#endif
68#ifndef __com_sun_star_awt_Size_idl__
69#include <com/sun/star/awt/Size.idl>
70#endif
71#ifndef __com_sun_star_util_XModifiable2_idl__
72#include <com/sun/star/util/XModifiable2.idl>
73#endif
74#ifndef __com_sun_star_document_XEventBroadcaster_idl__
75#include <com/sun/star/document/XEventBroadcaster.idl>
76#endif
77#ifndef __com_sun_star_lang_DisposedException_idl__
78#include <com/sun/star/lang/DisposedException.idl>
79#endif
80#ifndef __com_sun_star_style_XStyleFamiliesSupplier_idl__
81#include <com/sun/star/style/XStyleFamiliesSupplier.idl>
82#endif
83
84module com {  module sun {  module star {  module sdbc {
85published interface XConnection;
86};};};};
87//=============================================================================
88
89 module com {  module sun {  module star {  module report {
90
91     published interface XSection;
92     published interface XGroups;
93//=============================================================================
94
95/** identifies a <type>XReportComponent</type> as being a (sub-) report.
96
97    <p>This interface does not really provide an own functionality, it is only for easier
98    runtime identification of report components.</p>
99
100    <p>A report fulfills several tasks, like storing the structure of its
101    report components and it provides the
102    event environment for its contained elements.</p>
103
104    @see XReportComponent
105 */
106published interface XReportDefinition
107{
108    /** allows the access to the model embedded in the database storage.
109    */
110    interface com::sun::star::frame::XModel;
111
112    /** offers a simple way to initialize a component.
113    */
114    interface com::sun::star::frame::XLoadable;
115
116    /** represents common visualisation functionality for the embedded report.
117    */
118    interface com::sun::star::embed::XVisualObject;
119
120    /** allows to initialize the document with a storage.
121    */
122    interface com::sun::star::document::XStorageBasedDocument;
123
124    /** gives access to some properties describing all open views to a document.
125    */
126    interface com::sun::star::document::XViewDataSupplier;
127
128    /** allows to close the document.
129    */
130    interface com::sun::star::util::XCloseable;
131
132    /** allows to retrieve the user interface configuration manager related to an object.
133    */
134    interface com::sun::star::ui::XUIConfigurationManagerSupplier;
135
136    interface com::sun::star::document::XDocumentSubStorageSupplier;
137
138    /** provides access to the collection of style families.
139
140        <p>A spreadsheet document contains 2 families of styles:
141        "PageStyles" and "CellStyles".</p>
142     */
143    interface com::sun::star::style::XStyleFamiliesSupplier;
144
145    //-------------------------------------------------------------------------
146    /** a storable document should provide information about his modify state
147
148        <p>
149        With this interface it's possible too, to reset the modify state.
150        That can be necessary to prevent code against problem during closing
151        of the document without saving any changes.
152        </p>
153     */
154    interface com::sun::star::util::XModifiable2;
155
156    /** allows the creation of sub reports.
157    */
158    interface XReportComponent;
159
160    /** gives access to functions defined in the report definition.
161    */
162    interface XFunctionsSupplier;
163
164    /** makes it possible to register listeners which are called whenever
165        a document event occurs.
166        This is a workaround due to the fact that this interface can not be directly inherited from <type scope="com::sun::star::document">XEventBroadcaster</type>
167        because the methods addEventListener and removeEventListener are already defined in <type scope="com::sun::star::lang">XComponent</type>.
168        A queryInterface call is still supported to the <type scope="com::sun::star::document">XEventBroadcaster</type> interface.
169     */
170    com::sun::star::document::XEventBroadcaster getEventBroadcaster()
171        raises( ::com::sun::star::lang::DisposedException,
172                ::com::sun::star::uno::Exception );
173
174    /** returns a sequence of the currently supported output formats.
175    */
176    sequence<string> getAvailableMimeTypes()
177        raises( ::com::sun::star::lang::DisposedException,
178                ::com::sun::star::uno::Exception );
179
180    //-------------------------------------------------------------------------
181
182    /** Represents the output format (media (mime) type) of the resulting document when executing this report.
183    */
184    [attribute,bound] string MimeType
185    {
186        set raises (com::sun::star::lang::IllegalArgumentException);
187    };
188
189    /** Represents the title of the report in print preview.
190    */
191    [attribute,bound] string Caption;
192
193    /** Specifies whether groups in a multi column report are kept together.
194        @see com::sun::star::report::GroupKeepTogether
195    */
196    [attribute,bound] short GroupKeepTogether
197    {
198        set raises (com::sun::star::lang::IllegalArgumentException);
199    };
200
201    /** Represents the location of the page header.
202        @see ReportPrintOption
203    */
204    [attribute,bound] short PageHeaderOption;
205
206    /** Represents the location of the page footer.
207        @see ReportPrintOption
208    */
209    [attribute,bound] short PageFooterOption;
210
211
212    /** is the command which should be executed, the type of command depends
213    on the CommandType.
214    <p>In case of a <member>CommandType</member> of <member>CommandType::COMMAND</member>,
215    means in case the <member>Command</member> specifies an SQL statement, the inherited
216    <member scope="com::sun::star::sdbc">RowSet::EscapeProcessing</member>
217    becomes relevant:<br/>
218    It then can be to used to specify whether the SQL statement should be analyzed on the
219    client side before sending it to the database server.<br/>
220    The default value for <member scope="com::sun::star::sdbc">RowSet::EscapeProcessing</member>
221    is <TRUE/>. By switching it to <FALSE/>, you can pass backend-specific SQL statements,
222    which are not standard SQL, to your database.</p>
223
224
225    @see com::sun::star::sdb::CommandType
226    */
227    [attribute,bound] string Command;
228
229    /** specifies the type of the command to be executed to retrieve a result set.
230
231        <p><member>Command</member> needs to be interpreted depending on the value of this property.</p>
232
233        <p>This property is only meaningful together with the <member>Command</member>
234        property, thus either <em>both</em> or <em>none</em> of them are present.</p>
235
236        @see com::sun::star::sdb::CommandType
237     */
238    [attribute,bound] long CommandType;
239
240    /** specifies an additional filter to optinally use.
241
242        <p>The Filter string has to form a SQL WHERE-clause, <em>without</em> the WHERE-string itself.</p>
243
244        <p>If a <member>DataSourceName</member>, <member>Command</member> and <member>CommandType</member>
245        are specified, a <type>RowSet</type> can be created with this information. If the results provided by the
246        row set are to be additionally filtered, the Filter property can be used.</p>
247
248        <p>Note that the Filter property does not make sense if a <member>ResultSet</member> has been specified
249        in the DataAccessDescriptor.</p>
250
251        @see com::sun::star::sdb::RowSet
252        @see ResultSet
253    */
254    [attribute,bound] string Filter;
255
256    /** specifies if the <member>Command</member> should be analyzed on the client side before sending it
257        to the database server.
258
259        <p>The default value of this property is <TRUE/>. By switching it to <FALSE/>, you can pass
260        backend-specific SQL statements, which are not standard SQL, to your database.</p>
261
262        <p>This property is usually present together with the <member>Command</member> and
263        <member>CommandType</member> properties, and is evaluated if and only if <member>CommandType</member>
264        equals <member>CommandType::COMMAND</member>.</p>
265    */
266    [attribute,bound] boolean EscapeProcessing;
267
268    /** specifies the active connection which is used to create the resulting report.
269    */
270    [attribute,bound] com::sun::star::sdbc::XConnection ActiveConnection
271    {
272        set raises (com::sun::star::lang::IllegalArgumentException);
273    };
274
275    /** is the name of the datasource to use, this could be a named datasource
276        or the URL of a data access component.
277     */
278    [attribute,bound] string DataSourceName;
279
280    /** Defines that the report header is on.
281        Default is <FALSE/>.
282    */
283    [attribute,bound] boolean ReportHeaderOn;
284
285    /** Defines that the report footer is on.
286        Default is <FALSE/>.
287    */
288    [attribute,bound] boolean ReportFooterOn;
289
290    /** Defines that the page header is on.
291        Default is <TRUE/>.
292    */
293    [attribute,bound] boolean PageHeaderOn;
294
295    /** Defines that the page footer is on.
296        Default is <TRUE/>.
297    */
298    [attribute,bound] boolean PageFooterOn;
299
300    /** Represents the groups of the report.
301    */
302    [attribute,readonly] com::sun::star::report::XGroups Groups;
303
304    /** returns the report header if the <member>ReportHeaderOn</member>is <TRUE/>.
305        @throws <type scope="com::sun::star::container">NoSuchElementException</type>
306            If the report has the report header disabled.
307        @see XSection
308    */
309    [attribute,readonly] com::sun::star::report::XSection ReportHeader
310    {
311        get raises (com::sun::star::container::NoSuchElementException);
312    };
313
314    /** returns the page header if the <member>PageHeaderOn</member>is <TRUE/>.
315        @throws <type scope="com::sun::star::container">NoSuchElementException</type>
316            If the report has the page header disabled.
317        @see XSection
318    */
319    [attribute,readonly] com::sun::star::report::XSection PageHeader
320    {
321        get raises (com::sun::star::container::NoSuchElementException);
322    };
323
324    /** returns the detail section.
325        @see XSection
326    */
327    [attribute,readonly] com::sun::star::report::XSection Detail;
328
329    /** returns the page footer if the <member>PageFooterOn</member>is <TRUE/>.
330        @throws <type scope="com::sun::star::container">NoSuchElementException</type>
331            If the report has the page footer disabled.
332        @see XSection
333    */
334    [attribute,readonly] com::sun::star::report::XSection PageFooter
335    {
336        get raises (com::sun::star::container::NoSuchElementException);
337    };
338
339    /** returns the report footer if the <member>ReportFooterOn</member>is <TRUE/>.
340        @throws <type scope="com::sun::star::container">NullPointerException</type>
341            If the report has the report footer disabled.
342        @see XSection
343    */
344    [attribute,readonly] com::sun::star::report::XSection ReportFooter
345    {
346        get raises (com::sun::star::container::NoSuchElementException);
347    };
348};
349
350//=============================================================================
351
352}; }; }; };
353
354/*=============================================================================
355
356=============================================================================*/
357#endif
358