Difference between revisions of "Calc/Proposal DataPilot byIBM"

From Apache OpenOffice Wiki
Jump to: navigation, search
(Background)
Line 12: Line 12:
  
 
== Background==
 
== Background==
'''Low performance when update a datapilot table'''
+
  DataPilot is a critical function to Spreadsheet users. In Lotus Symphony 1.2 and 1.3 release, our Spreadsheet team developed some DataPilot new features base on OpenOffice 1.1 code base and merged DataPilot related code in OpenOffice 2.4.
  Environment: Hardware: IBM T30  CPU: 2.4 GHz  Memory:1.0 GB Operation System: Window XP SP2
+
 
  Sample file: The datapilot table's source data have 5000 rows.
+
[[Image:pvt test result.jpg]]
+
'''Crash'''
+
  Insert two field into row area ( Each field have about 1000 members ),it causes freezing and crash.
+
 
== Problem Description ==
 
== Problem Description ==
 
  '''Allocate a lot of abundant data'''  
 
  '''Allocate a lot of abundant data'''  

Revision as of 09:08, 23 June 2009

Specification Status
Author Wang Xu Ming
Last Change See wiki history


Background

 DataPilot is a critical function to Spreadsheet users. In Lotus Symphony 1.2 and 1.3 release, our Spreadsheet team developed some DataPilot new features base on OpenOffice 1.1 code base and merged DataPilot related code in OpenOffice 2.4.

Problem Description

Allocate a lot of abundant data 
For a simple datapilot table:
Simple dptable.jpg
 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
Personal tools