OASIS Open Document Format for Office Applications (OpenDocument) TC

  • 1.  Data Pilot proposal

    Posted 08-27-2004 15:02
     MHonArc v2.5.0b2 -->
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    

    office message

    [Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


    Subject: Data Pilot proposal


    Hi all,
    
    please find attached a proposal for enhancing the data pilot specification.
    
    Best regards
    
    Michael
    

    1Table Content

    1.1Data Pilot Table

    1.1.1Data Pilot Table

    [...]

    The attributes associated with the data pilot table element are:

    • Data pilot table name

    • Application data

    • Grand total

    • Ignore empty rows

    • Identify categories

    • Target range address

    • Show Filter Button

    • Drill Down On Double Click

    <define name="table-data-pilot-table">
    	<element name="table:data-pilot-table">
    		<ref name="table-data-pilot-table-attlist"/>
    		<optional>
    			<choice>
    				<ref name="table-database-source-sql"/>
    				<ref name="table-database-source-table"/>
    				<ref name="table-database-source-query"/>
    				<ref name="table-source-service"/>
    				<ref name="table-source-cell-range"/>
    			</choice>
    		</optional>
    		<oneOrMore>
    			<ref name="table-data-pilot-field"/>
    		</oneOrMore>
    	</element>
    </define>

    Show Filter Button

    The table:show-filter-button attribute specifies whether a filter button is shown in the UI within the Data Pilot. A filter button displays a filter dialog if pushed.

    <define name="table-data-pilot-table-attlist" combine="interleave">
    	<optional>
    		<attribute name="table:show-filter-button" a:defaultValue="true">	
    			<ref name="boolean"/>
    		</attribute>
    	</optional>
    </define>

    Drill Down On Double Click

    The table:drill-down-on-double-click attribute specifies how the data pilot table reacts on a double clicks into the data pilot table. If the attribute's value is false, a double click on a member label or the empty area next to it starts the edit mode of the table cell, like for cells outside of the data pilot table. This can then be used to rename group fields or members. If the attribute's value is true, a double click on an member label or the empty area next to it shows or hides details for that member. A double click elsewhere in a data pilot table has no effect.

    <define name="table-data-pilot-table-attlist" combine="interleave">
    	<optional>
    		<attribute name="table:drill-down-on-double-click"
                       a:defaultValue="true">	
    			<ref name="boolean"/>
    		</attribute>
    	</optional>
    </define>

    1.1.2Data Pilot Field

    A data pilot table's fields are specified by <table:data-pilot-field> elements. This element will be extended by an optional <table:data-pilot-groups> element.

    <define name="table-data-pilot-field">
    	<element name="table:data-pilot-field">
    		<ref name="table-data-pilot-field-attlist"/>
    		<optional>
    			<ref name="table-data-pilot-level"/>
    		</optional>
    		<optional>
    			<ref name="table-data-pilot-field-reference"/>
    		</optional>
    		<optional>
    			<ref name="table-data-pilot-groups"/>
    		</optional>
    	</element>
    </define>

    1.1.3Data Pilot Groups

    The <table:data-pilot-groups> element specifies that a data pilot field is a group field. A group field allows grouping of other fields. For example, if a data pilot table contains a column field with the name “city” which has the members “Berlin”, “Munich”, “Frankfurt”, “Hamburg”, “London”, “Manchester”, “Hastings” and “Liverpool”, then one may want to group the cities by their countries. To do so, a group field with name “city2” could be added to the data pilot table, that contains two groups called “England” and “Germany”. Each group here contains a list of the names of its members. In this example, the group “England” would contain “London”, “Manchester”, “Hastings” and “Liverpool”. The group “Germany” would contain “Berlin”, “Munich”, “Frankfurt” and “Hamburg”.

    Grouping may also take place for numeric or date values.

    <define name="table-data-pilot-groups">
    	<element name="table:data-pilot-groups">
    		<ref name="table-data-pilot-groups-attlist"/>
    		<oneOrMore>
    			<ref name="table-data-pilot-group"/>
    		</oneOrMore>
    	</element>
    </define>

    Source Field Name

    The table:source-field-name attribute references the field containing the data that is grouped, if this data differs from the data that is referenced by the field itself.

    <define name="table-data-pilot-groups-attlist" combine="interleave">
    	<attribute name="table:source-field-name">
    		<ref name="string"/>
    	</attribute>
    </define>

    Start

    If numeric or date values are grouped, the table:date-start and table:start attributes specify the start value for the grouping. All values that are lower than the start value are contained in a single group, while values that are equal to or higher than the start value are grouped as specified by the table:grouped-by and table:step attributes.

    If the attribute's value is auto, the lowest value of the field is taken as start value.

    <define name="table-data-pilot-groups-attlist" combine="interleave">
    	<choice>
    		<attribute name=”table:date-start”>
    			<choice>
    				<ref name="dateOrDateTime"/>
    				<value>auto</value>
    			</choice>
    		</attribute>
    		<attribute name=”table:start”>
    			<choice>
    				<ref name="double"/>
    				<value>auto</value>
    			</choice>
    		</attribute>
    	</choice>
    </define>

    End

    If numeric or date values are grouped, the table:date-end and table:end attributes specify the end value for the grouping. All values that are higher than the end value are contained in a single group, while values that are equal to or lower than the end value are grouped as specified by the table:grouped-by and table:step attributes.

    If the attribute's value is auto, the highest value of the field is taken as end value.

    <define name=" table-data-pilot-groups-attlist" combine="interleave">
    	<choice>
    		<attribute name=”table:date-end”>
    			<choice>
    				<ref name="dateOrDateTime"/>
    				<value>auto</value>
    			</choice>
    		</attribute>
    		<attribute name=”table:end”>
    			<choice>
    				<ref name="double"/>
    				<value>auto</value>
    			</choice>
    		</attribute>
    	</choice>
    </define>

    Step

    The table:step attribute specifies the grouping of numeric values, by specifying the distance between the groups. For example, if the table:start attribute for the grouping has the value 5, and the table:step attribute has the value 2, all values that are equal to or higher than 5, but also lower than 7 are in one group. All values that are equal to or higher than 7, but also lower than 9 are in next group, and so on, until the end value is reached.

    <define name=" table-data-pilot-groups-attlist" combine="interleave">
    	<attribute name=”table:step”>
    		<ref name="double"/>
    	</attribute>
    </define>

    Grouped By

    The table:grouped-by attribute specifies the grouping of the date values. Date values can be grouped by seconds, minutes, hours, days, months, quarters or years. It date values are for instance grouped by minutes, all dates or times that are within the same minute are within one group. That, is if the dates 2004-08-27T12:34:46, 2004-08-27T12:34:56 and 2004-08-27T12:35:46 are given, the first two would be within one group, while the last date would be a group of its own.

    <define name=" table-data-pilot-groups-attlist" combine="interleave">
    	<attribute name=”table:grouped-by”>
    		<choice>
    			<value>seconds</value>
    			<value>minutes</value>
    			<value>hours</value>
    			<value>days</value>
    			<value>months</value>
    			<value>quarters</value>
    			<value>years</value>
    		</choice>
    	</attribute>
    </define>

    1.1.4Data Pilot Group

    If grouping takes place by specifying the member names, then the <table:data-pilot-group> element specifies the member names of a single group.

    <define name="table-data-pilot-group">
    	<element name="table:data-pilot-group">
    		<ref name="table-data-pilot-group-attlist"/>
    		<oneOrMore>
    			<ref name="table-data-pilot-member"/>
    		</oneOrMore>
    	</element>
    </define>

    Name

    The table:name attribute specifies the name of the group.

    <define name="table-data-pilot-group-attlist" combine="interleave">
    	<attribute name="table:name">
    		<ref name="string"/>
    	</attribute>
    </define>

    1.1.5Data Pilot Member

    The <table:data-pilot-member> element specifies the name of a single group member.

    <define name="table-data-pilot-group-member">
    	<element name="table:data-pilot-member">
    		<ref name="table-data-pilot-group-member-attlist"/>
    	</element>
    </define>

    Name

    The table:name attribute specifies the name of the member.

    <define name="table-data-pilot-group-member-attlist" combine="interleave">
    	<attribute name="table:name">
    		<ref name="string"/>
    	</attribute>
    </define>