Calc/Features/DataPilot drill-down on data field

From Apache OpenOffice Wiki
< Calc‎ | Features
Revision as of 04:30, 26 October 2007 by Kohei (Talk | contribs)

Jump to: navigation, search

Description

When a cell within the data field is double-clicked, it inserts a new sheet containing a subset of rows from the original data source that constitutes the result data displayed in that cell. For instance, when the data field function is selected to be SUM, then the number that is shown in that cell must be identical to the sum of all the data field values in the constituent rows.

API Change

This functionality introduces the following new API.

[cpp,N] module com { module sun { module star { module sheet {

interface XDrillDownDataSupplier: com::sun::star::uno::XInterface {

   void getDrillDownData( [in] sequence< com::sun::star::sheet::DataPilotFieldFilter > aFilters, 
                          [out] sequence< sequence< any > > rData );

};

}; }; }; };

[cpp,N] module com { module sun { module star { module sheet {

struct DataPilotFieldFilter {

   /** Field name. */
   string FieldName;
   /** String value that needs to match against. */
   string MatchValue;

};

}; }; }; };

The com.sun.star.sheet.DataPilotSource service is expected to support XDrillDownDataSupplier interface, to provide a 2-dimensional array data consisting of a subset of the original data source table that satisfies a given set of filtering criteria. A sequence of DataPilotFieldFilter provides desired filtering criteria to XDrillDownDataSupplier::getDrillDownData() method.

TODO: Add another method that takes a cell address instead of a sequence of filters.

Personal tools