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#ifndef __com_sun_star_report_XReportEngine_idl__
28#define __com_sun_star_report_XReportEngine_idl__
29
30#ifndef __com_sun_star_report_XReportDefinition_idl__
31#include <com/sun/star/report/XReportDefinition.idl>
32#endif
33#ifndef __com_sun_star_beans_XPropertySet_idl__
34#include <com/sun/star/beans/XPropertySet.idl>
35#endif
36#ifndef __com_sun_star_lang_XComponent_idl__
37#include <com/sun/star/lang/XComponent.idl>
38#endif
39#ifndef __com_sun_star_util_URL_idl__
40#include <com/sun/star/util/URL.idl>
41#endif
42#ifndef __com_sun_star_frame_XModel_idl__
43#include <com/sun/star/frame/XModel.idl>
44#endif
45#ifndef __com_sun_star_task_XStatusIndicator_idl__
46#include <com/sun/star/task/XStatusIndicator.idl>
47#endif
48#ifndef __com_sun_star_frame_XFrame_idl__
49#include <com/sun/star/frame/XFrame.idl>
50#endif
51#ifndef __com_sun_star_sdbc_XConnection_idl__
52#include <com/sun/star/sdbc/XConnection.idl>
53#endif
54#ifndef __com_sun_star_lang_IllegalArgumentException_idl__
55#include <com/sun/star/lang/IllegalArgumentException.idl>
56#endif
57#ifndef __com_sun_star_lang_DisposedException_idl__
58#include <com/sun/star/lang/DisposedException.idl>
59#endif
60#ifndef __com_sun_star_uno_Exception_idl__
61#include <com/sun/star/uno/Exception.idl>
62#endif
63
64//=============================================================================
65module com {  module sun {  module star {  module report {
66/** identifies a <type>XReportEngine</type> which allows the creation of OpenDocument files.
67
68    <p>The following events are supported by the report engine.
69        OnPageStarted		Is fired when a new page started.
70        OnReportStarted		Is fired when a new report started.
71        OnGroupStarted		Is fired when a new group started.
72        OnGroupEnded		Is fired when the group ended.
73        OnReportEnded		Is fired when the report ended.
74        OnPageEnded			Is fired when the page ended.
75
76    @see com.sun.star.document.OfficeDocument
77*/
78
79published interface XReportEngine
80{
81    /** allows life-time control of report engine.
82     */
83    interface com::sun::star::lang::XComponent;
84
85    /** gives access to the properties.
86    */
87    interface com::sun::star::beans::XPropertySet;
88
89    /** creates a report document.
90        @throws <type scope="com::sun::star::lang">DisposedException</type>
91            If the report engine is already disposed.
92        @throws <type scope="com::sun::star::lang">IllegalArgumentException</type>
93            If the report definition was not set or is <NULL/>.
94    */
95    com::sun::star::frame::XModel createDocumentModel()
96        raises( ::com::sun::star::lang::DisposedException,
97                com::sun::star::lang::IllegalArgumentException,
98                ::com::sun::star::uno::Exception );
99
100    /** creates a report document.
101        @param	_frame
102            The frame must have a controller set. This controller will be set at the model.
103        @throws <type scope="com::sun::star::lang">DisposedException</type>
104            If the report engine is already disposed.
105        @throws <type scope="com::sun::star::lang">IllegalArgumentException</type>
106            If the report definition was not set or is <NULL/>.
107
108        OJ: Has to be discussed if this method is usefull.
109    */
110    com::sun::star::frame::XModel createDocumentAlive([in] com::sun::star::frame::XFrame frame)
111        raises( ::com::sun::star::lang::DisposedException,
112                com::sun::star::lang::IllegalArgumentException,
113                ::com::sun::star::uno::Exception );
114
115    /** creates a report document.
116        @return
117            The URL where the new document is located.
118        @throws <type scope="com::sun::star::lang">DisposedException</type>
119            If the report engine is already disposed.
120        @throws <type scope="com::sun::star::lang">IllegalArgumentException</type>
121            If the report definition was not set or is <NULL/>.
122    */
123    com::sun::star::util::URL createDocument()
124        raises( ::com::sun::star::lang::DisposedException,
125                com::sun::star::lang::IllegalArgumentException,
126                ::com::sun::star::uno::Exception );
127
128    /** allows to interrupt the creation process of the report document.
129        @throws <type scope="com::sun::star::lang">DisposedException</type>
130            If the report engine is already disposed.
131    */
132    void interrupt()
133        raises( ::com::sun::star::lang::DisposedException,
134                ::com::sun::star::uno::Exception );
135
136    /** specifies the report definition object which is used to create the resulting report.
137    */
138    [attribute,bound] XReportDefinition ReportDefinition
139    {
140        set raises (com::sun::star::lang::IllegalArgumentException);
141    };
142
143    /** specifies the active connection which is used to create the resulting report.
144    */
145    [attribute,bound] com::sun::star::sdbc::XConnection ActiveConnection
146    {
147        set raises (com::sun::star::lang::IllegalArgumentException);
148    };
149
150    /** specifies the status indicator which shows the progress of the report generation process.
151    */
152    [attribute] com::sun::star::task::XStatusIndicator StatusIndicator;
153
154    /** defines the maximum number of rows which should be fetched for the report.
155        If the limit is exceeded, the excess rows are silently dropped.
156        <br/>
157        There is no limitation, if set to zero.
158     */
159    [attribute,bound] long MaxRows;
160};
161
162//=============================================================================
163
164}; }; }; };
165
166/*=============================================================================
167
168=============================================================================*/
169#endif
170