office-gobmx/offapi/com/sun/star/form/component/DataForm.idl
Oliver Bolte a2b7c77b92 INTEGRATION: CWS sb18 (1.9.76); FILE MERGED
2004/05/21 14:58:41 sb 1.9.76.1: #i21150# Added published flag.
2004-06-03 18:47:25 +00:00

248 lines
11 KiB
Text

/*************************************************************************
*
* $RCSfile: DataForm.idl,v $
*
* $Revision: 1.10 $
*
* last change: $Author: obo $ $Date: 2004-06-03 19:47:25 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
*
* - GNU Lesser General Public License Version 2.1
* - Sun Industry Standards Source License Version 1.1
*
* Sun Microsystems Inc., October, 2000
*
* GNU Lesser General Public License Version 2.1
* =============================================
* Copyright 2000 by Sun Microsystems, Inc.
* 901 San Antonio Road, Palo Alto, CA 94303, USA
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License version 2.1, as published by the Free Software Foundation.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
* MA 02111-1307 USA
*
*
* Sun Industry Standards Source License Version 1.1
* =================================================
* The contents of this file are subject to the Sun Industry Standards
* Source License Version 1.1 (the "License"); You may not use this file
* except in compliance with the License. You may obtain a copy of the
* License at http://www.openoffice.org/license.html.
*
* Software provided under this License is provided on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
* WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
* MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
* See the License for the specific provisions governing your rights and
* obligations concerning the Software.
*
* The Initial Developer of the Original Code is: Sun Microsystems, Inc.
*
* Copyright: 2000 by Sun Microsystems, Inc.
*
* All Rights Reserved.
*
* Contributor(s): _______________________________________
*
*
************************************************************************/
#ifndef __com_sun_star_form_component_DataForm_idl__
#define __com_sun_star_form_component_DataForm_idl__
#ifndef __com_sun_star_form_component_Form_idl__
#include <com/sun/star/form/component/Form.idl>
#endif
#ifndef __com_sun_star_sdb_RowSet_idl__
#include <com/sun/star/sdb/RowSet.idl>
#endif
#ifndef __com_sun_star_form_TabulatorCycle_idl__
#include <com/sun/star/form/TabulatorCycle.idl>
#endif
#ifndef __com_sun_star_form_NavigationBarMode_idl__
#include <com/sun/star/form/NavigationBarMode.idl>
#endif
#ifndef __com_sun_star_form_XLoadable_idl__
#include <com/sun/star/form/XLoadable.idl>
#endif
#ifndef __com_sun_star_sdb_XCompletedExecution_idl__
#include <com/sun/star/sdb/XCompletedExecution.idl>
#endif
#ifndef __com_sun_star_awt_TabControllerModel_idl__
#include <com/sun/star/awt/TabControllerModel.idl>
#endif
//=============================================================================
module com { module sun { module star { module form {
published interface XReset;
published interface XDatabaseParameterBroadcaster;
module component {
//=============================================================================
/** This service specifies a form which is connected to a database and
displays the results of SQL queries. It provides the possiblity of
adding new data records, modifying existing ones, or deleting them.
<p>A database form is a special kind of enhanced database row set
which provides all information for displaying the data and has more
possibilities for configuring the data manipulation.</p>
*/
published service DataForm
{
service com::sun::star::sdb::RowSet;
service com::sun::star::form::component::Form;
/** is used to initialize a data row which should be inserted.
TODO: define the conditions under which forms and controls are (or should be) reset
*/
interface com::sun::star::form::XReset;
/** used to load/unload the form
<p>Loading a form is basically the same as executing the underlying row set. In fact, all the
functionality of this interface could be simulated by using setting some properties manually,
<method scope="com::sun::star::sdbc">XRowSet::execute</method>, moving the row set cursor and so on.</p>
<p>One main difference between <method>XLoadable::load</method> and <method scope="com::sun::star::sdbc">XRowSet::execute</method>
is that if you use the former, the row set is positioned on the first record, while in the latter case
it is position <em>before</em> the it.</p>
*/
interface com::sun::star::form::XLoadable;
/** can be used to allow an interaction handler to supply missing data during a load process.
<p>If data is needed during loading a form, then this is usually obtained via broadcaster-listener
mechanisms. An example for this (and currently the only one) are parameter values.</p>
<p>However, if you use this method, you can pass an interaction handler which should supply these
additional data.</p>
@see com::sun::star::sdb::InteractionHandler
*/
interface com::sun::star::sdb::XCompletedExecution;
/** can be used for filling parameters.
<p>You can add your component as
<type scope="com::sun::star::form">XDatabaseParameterListener</type>
to a form to get notified whenever the form needs parameter values to be filled in<br/>
In a first approach, the form tries to fill any parameters from it's master-detail relation
(if any). All values which can't be filled are then passed to all listeners, which can
fill them by their own choice.</p>
<p>This is sligtly changed if the form is loaded using the
<member scope="com::sun::star::sdb">XCompletedExecution::connectWithCompletion</member> method. In this case, the parameters
are obtained from the interaction handler, not from the listeners</p>
@see XCompletedExecution
@see MasterFields
@see DetailFields
*/
interface com::sun::star::form::XDatabaseParameterBroadcaster;
//-------------------------------------------------------------------------
/** is used for subforms and contains the names of columns of the parent form.
<p> These columns are typically the foreign key fields of the parent form.
The values of theses columns are used to identify the data for the subform.
Each time the parent form changes it's current row, the subform requeries
it's data based on the values of the master fields.</p>
<p>If the form is no sub form (e.g. it's parent is not a form itself), this
property is not evaluated.</p>
*/
[property] sequence<string> MasterFields;
//-------------------------------------------------------------------------
/** is used for subforms and contains the names of the columns of the subform
which are related to the master fields of the parent form.
<p>Entries in this sequence can either denote column names in the sub form,
or paramater names.<br/>
For instance, you could base the form on the SQL statement
<code>SELECT * FROM invoices WHERE cust_ref = :cid</code>, and add <code>cid</code>
to the DetailFields property. In this case, the parameter will be filled from
the corresponding master field.<br/>
Alternatively, you could simply base your form on the table <code>invoices</code>,
and add the column name <code>cust_ref</code> to the DetailFields. In this case,
and implicit filter clause <code>WHERE cust_ref = :&lt;new_param_name&gt;</code> will
be created, and the artificial parameter will be filled from the corresponding
master field.<br/>
If a string in this property denotes both a column name and a parameter name, it
is undefined which way it is interpreted, but implementations of the service are required
to either decide for the paramter or the column, and proceed as usual.
</p>
<p>The columns specified herein typically represent a part of the primary key
fields or their aliases of the detail form.</p>
<p>If the form is no sub form (e.g. it's parent is not a form itself), this
property is not evaluated.</p>
*/
[property] sequence<string> DetailFields;
//-------------------------------------------------------------------------
/** returns the kind of tabulator controlling.
*/
[property] com::sun::star::form::TabulatorCycle Cycle;
//-------------------------------------------------------------------------
/** determines how an navigation bar for this form should act.
*/
[property] com::sun::star::form::NavigationBarMode NavigationBarMode;
//-------------------------------------------------------------------------
/** determines if insertions into the form's row set are allowed.
<p>Note that this is a recommendation for user interface components displaying the
form. Form implementations may decide to allow for insertions done via the API, even
if the property is set to <FALSE/>, but the user interface should respect the property
value.</p>
*/
[property] boolean AllowInserts;
//-------------------------------------------------------------------------
/** determines if modifications of the current record of the form are allowed.
<p>Note that this is a recommendation for user interface components displaying the
form. Form implementations may decide to allow for updates done via the API, even
if the property is set to <FALSE/>, but the user interface should respect the property
value.</p>
*/
[property] boolean AllowUpdates;
//-------------------------------------------------------------------------
/** determines if deletions of records of the form are allowed.
<p>Note that this is a recommendation for user interface components displaying the
form. Form implementations may decide to allow for deletions done via the API, even
if the property is set to <FALSE/>, but the user interface should respect the property
value.</p>
*/
[property] boolean AllowDeletes;
};
//=============================================================================
}; }; }; }; };
#endif