Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 183874

Summary: Cross tab - Support for scripting
Product: z_Archived Reporter: Rima Kanguri <rkanguri>
Component: BIRTAssignee: Chen Chao <cchen>
Status: RESOLVED FIXED QA Contact:
Severity: enhancement    
Priority: P3 CC: qaobsolete, tzhang, whe, xxue
Version: 2.2.0Keywords: plan
Target Milestone: 2.3.0 M6   
Hardware: PC   
OS: All   
Whiteboard:
Bug Depends on: 208352, 220351    
Bug Blocks: 202333    

Description Rima Kanguri CLA 2007-04-24 17:49:56 EDT
We need to support scripting in cross tab similiar to other report items.

Below is the draft summary of changes required for scripting support in cross-tab.

 

1) Report Elements - 
a. Cube
No support for scripting events
 
b. Cross tab
i. ICrossTab object available in onPrepare()
ii.ICrossTabInstance object available in onCreate(), onRender(), onPageBreak()

 
c. Cross tab cell
i. Existing ICell object available in onPrepare()
ii.Existing ICellInstance  object available in onCreate(), onRender(), onPageBreak()
 
Note: In java script the above objects are available as “this” object based on the context 

 
2) Details of each interface.
a)       ICrossTab -> IReportItem
a.       get/setMeasureDirection()
b.       get/setEmptyCellValue()
c.       get/setPageLayout() 
d.       get/setRepeatColumnHeader() 
e.       get/setRepeatRowHeader()
f.         getRowLevels() returns ILevel
g.       getColumnLevels() returns list of ILevel
h.       getMeasures() returns IMeasure

Note: c,d,e,f will be supported only if engine support horizontal page breaks, or not much use of these properties.

 
ILevel <- IReportElement
-          getName()
-          getDimensionName()
-          getID() // level key
-          getFilterConditions()
-          removeFilterConditions()
-          addFilterCondition( IFilterCondition )
-          removeFilterCondition( IFilterCondition )
-          addSortConditions()
-          removeSortConditions( )
-          addSortCondition(ISortCondition )
-          removeSortCondition(ISortCondition )

IMeasure<-
-          getName()
-          getFunctionName()
-          getMeasureExpression()
 

b)       ICrossTabInstance
a.       get/setMeasureDirection()
b.       get/setEmptyCellValue()
c.       get/setPageLayout() 
d.       get/setRepeatColumnHeader() 
e.       get/setRepeatRowHeader()
f.       getRowLevels() returns ILevelInstance
g.       getMeasures() returns IMeasureInstance


ILevelInstance <- IReportElementInstance
-          getName()
-          getDimensionName()
-          getID() // level key

 
IMeasureInstance<-
-          getName()
-          getFunctionName()
-          getMeasureExpression()
Comment 1 Rima Kanguri CLA 2007-04-24 17:52:08 EDT
Comment from Wei
As the XTab create the normal TABLE, so several APIs of the ICrossTableInstance has no means as they can’t change the XTAB instance itself.


a)     ICrossTabInstance
a.      get/setMeasureDirection()          -> set won’t change the XTab measure direction.
b.      get/setEmptyCellValue()             -> set wont’ change the XTab
c.      get/setPageLayout()                   -> set won’t change the XTab






Comment 2 Rima Kanguri CLA 2007-07-23 21:42:07 EDT
As discussed in todays meeting, we dont want to introduce any new API, we may want to move this to BIRT 2.3
Comment 3 Zhiqiang Qian CLA 2008-01-31 22:03:38 EST
Deferred to M6.
Comment 4 Zhiqiang Qian CLA 2008-03-19 07:32:35 EDT
Please add "Event Handler" tab for crosstab property editor. The associated event handler interface is ICrosstabEventHandler.
Comment 5 Chen Chao CLA 2008-03-19 23:51:03 EDT
Fixed it.