Difference between revisions of "Calc/Proposal DataPilot byIBM"
From Apache OpenOffice Wiki
< Calc
(→Background) |
(→Background) |
||
Line 12: | Line 12: | ||
== Background== | == Background== | ||
− | + | DataPilot is a critical function to Spreadsheet users. | |
+ | In IBM Lotus Symphony 1.2 and 1.3 release, our Spreadsheet team developed some new features for DataPilot base on OpenOffice 1.1 code base | ||
+ | and merged DataPilot related code in OpenOffice 2.4. | ||
+ | During the development, test team found that there is serious performance problem when user create or update a DataPilot table. | ||
== Problem Description == | == Problem Description == |
Revision as of 09:15, 23 June 2009
Specification Status | |
Author | Wang Xu Ming |
Last Change | See wiki history |
Background
DataPilot is a critical function to Spreadsheet users. In IBM Lotus Symphony 1.2 and 1.3 release, our Spreadsheet team developed some new features for DataPilot base on OpenOffice 1.1 code base and merged DataPilot related code in OpenOffice 2.4. During the development, test team found that there is serious performance problem when user create or update a DataPilot table.
Problem Description
Allocate a lot of abundant data For a simple datapilot table: Member A1 in L1 field will create a array for all members {B1,B2,B3}. But only B1 is visible and valid. Allocate too much memories Every member's data is stored in a big structure. Set too many times of border styles for output area Some borders are set twice or more.
Solution
Data Source buffer A document stored a source buffer array. Every table have a buffer id. The datapilot table can use the same id if they have same data source. In the buffer, the members of a field can be identified by an id( the sorted index ). Then in the output table's algorithm the ScDPItemData structure is replaced by an id. Only allocate visible member Enhance the algorithm of setting border style