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

Bug 190722

Summary: [Crosstab improvements] Xtab filter should allow filtering on any cube dimension
Product: z_Archived Reporter: Gary Xue <xxue>
Component: BIRTAssignee: Yuejie Chen <yuejie.chen>
Status: VERIFIED FIXED QA Contact: Tianli Zhang <tzhang>
Severity: enhancement    
Priority: P5 CC: bluesoldier, lzhu, rkanguri, wenfeng.fwd, whe, zqian
Version: 2.2.0Keywords: plan
Target Milestone: 2.5.0 RC2   
Hardware: PC   
OS: All   
Whiteboard: Autoed
Attachments:
Description Flags
Fact Table Filter Mockup none

Description Gary Xue CLA 2007-06-03 21:39:40 EDT
In the current (2.2) XTab filter editor, you can only select filter on a level that's placed on an edge in the XTab. We should allow the filter condition to refer to any level in the cube, whether or not it is otherwise used in the XTab.

As an example, a XTab report may place level Time/OrderDate on the column, and level Product/ProduceLine on the row. The design may however want to filter the Xtab based on the Geography/Country level (not shown in the xtab), so that the table only shows data for Country == "USA".
Comment 1 Gary Xue CLA 2007-06-03 21:40:21 EDT
Initially assigned to Data team to address the query aspect of this design. 
Comment 2 Wenbin He CLA 2007-07-31 16:26:30 EDT
Currently BIRT crosstab supports filters for levels only, which defines the selection conditions for members under that level. If a dimension are not binding to the crosstab, there is no meaning to define filters on that dimension. 

I do agree that we may need to support filter on fact data, which could be defined as filter on detail in crosstab. This requires cross team changes. I suggest that we defer to BIRT 2.3.  
Comment 3 Gary Xue CLA 2008-04-17 16:19:39 EDT
Please evaluate the query API change required for this. This may not fit in to 2.3 .
Comment 4 Lin Zhu CLA 2008-04-20 22:39:30 EDT
After discussion we believe no extra api is needed for support this feature. As we are in critical week for RC0, suggest to do this enhancement in RC1.
Comment 5 Lin Zhu CLA 2008-05-23 01:14:58 EDT
It might be risky for making this enhancement in 2.3.0. In current data engine all the filter definition are based on the levels defined in cube query. Lots of changes need to be done in data engine to enable the feature.As this is not a critical feature suggest to make it in 2.3.1.
Comment 6 Lin Zhu CLA 2009-03-08 23:27:47 EDT
We are still working on this feature. Suggest to defer to RC1.
Comment 7 Lin Zhu CLA 2009-04-21 02:11:35 EDT
Data Engine part fix has been done.

Need UI to allow user define such filters. Reassign to UI team.
Comment 8 Zhiqiang Qian CLA 2009-05-06 23:24:28 EDT
Created attachment 134731 [details]
Fact Table Filter Mockup

In crosstab filter dialog, we'll add a new "Fact Table" filter type. For "Fact Table" filter, the target field is 'null', the filter expression can only refer to cube level or level attribute element like dimension["dimName"]["levelname"] or dimension["dimName"]["levelname"]["attrName"]. In the dropdown list of Filter condition, there's no "filter by...". In the expression builder, there's no "available column bindings" category, and the "current data cube" category is also limited to only show the groups(dimensions) node(all groups from cube, no matter if it's used in current crosstab).

Please refer to the attached mockup for the UI change.
Comment 9 Rima Kanguri CLA 2009-05-07 14:31:22 EDT
I don't think we should add another radio button. 
For the option 'level', can we list out all the cube levels too ( which are not used by cross tab, maybe under a different category but in the same list ).

Comment 10 Zhiqiang Qian CLA 2009-05-07 21:57:45 EDT
(In reply to comment #9)
> I don't think we should add another radio button. 
> For the option 'level', can we list out all the cube levels too ( which are not
> used by cross tab, maybe under a different category but in the same list ).
> 
The fact table filter is actually very different with the level/measure filters. It can only refer to expression like "dimension[...]", while the original filters refer to bindings. Also the fact table filter cannot have a target, so we cannot treat it as the level/measure filter type as they must have a target.
Comment 11 Zhiqiang Qian CLA 2009-05-19 02:01:56 EDT
After discuss with Dte team, we decide still keep current UI layout, but allow user to select any dimension/level/attribute from cube in expression builder for target type as measure. For target type as level, we'll keep the old behavior as we cannot distinguish if it's a level filter or fact table filter in this case.
Comment 12 Tianli Zhang CLA 2009-05-19 23:08:03 EDT
Verified in 2.5.0 v20090520-0630 build, the further testing is in progress, mark this bug as verified first.