COGNOiSe.com - The IBM Cognos Community

IBM Cognos 10 Platform => Cognos 10 BI => Report Studio => Topic started by: andy_mason_84 on 27 Mar 2015 04:47:32 AM

Title: Hide Chart based on Count(children)
Post by: andy_mason_84 on 27 Mar 2015 04:47:32 AM
Hi All,

I have a report that has a Bar chart and a Crosstab both containing the same information.

Product Hierarchy
Time
Value

As you drill up and down in the crosstab the chart changes to show a graphical representation of the crosstab and visa versa.

In the underlying data we have products that are not assigned to the hierarchy so they all go under 'Unassigned'.

Now if a user drills down on Unassigned to the bottom of the hierarchy it brings back over 50,000 product codes and the report fails (see attached screenshot).

Now if I only have the Crosstab on the report it doesn't fail which leads me to believe that the chart just doesn't like the fact we are trying to stick 50,000 items in the Series which is fair enough as it would look ridiculous.

So what I want to do is put a render variable o the chart that says something along the lines of if this member you are drilling on has more than 100 children then don't render the chart.

Any ideas on how i can do this?

We are using a Dynamic Cube as the source.

I have tried creating the following members: -

Children of Parent = children(parent(currentMember([Hierarchy].[All Products].[All Products])))

Count Parent Children = count(1 within set [Children of Parent])

This gives me the desired number but when i drill on the Unassigned value it just hangs assumingly because it is counting the children of the parent which is 50,000 but for each memeber in the list of 50,000 products.

Title: Re: Hide Chart based on Count(children)
Post by: andy_mason_84 on 27 Mar 2015 09:48:01 AM
Found the tech note:-

http://www-01.ibm.com/support/docview.wss?uid=swg21684789

Just clarifies that it is because the chart can't handle that many data points but doesn't give you any workarounds in order to resolve it.

Any ideas anyone?

Thanks