cancel
Showing results for 
Search instead for 
Did you mean: 

Dynamic show/hide webi 4.1

Former Member
0 Kudos

Hi all,

How do I show/hide a table based on user input.

I have a input control "Data" which shows all the dimensions. I want when all values are selected the table "Name" ; "user" and
"Pie chart" are hidden. When a value is selected in input control table "Name" shows up. When I select a value in "Name" the "user" table shows up(this can be done through element linking but before that I want the table to be hidden) and when a value from "user" is selected the pie chart shows up.

How do I achieve this?

Thanks,

Nisha

Accepted Solutions (1)

Accepted Solutions (1)

mhmohammed
Active Contributor
0 Kudos

Hi Nisha,

I'm pretty sure that you're looking for Cascading Input Controls, where if you select a value (say A) in the first input control, you want to see only values related to A in the second input control (say 1,2,3 are related to A), and then when you select a value (say 1) from the second input control, you want to see the Pie Chart.

Cascading Input Control is not available in Webi, you can use drill filters instead, check out Roslyn Rosalia's response on Apr 13th, 2012 3:17 pm in this discussion.

Also, instead of using Input Controls, how about creating 2 tables tables manually in the report (to use as Input Control tables) and activating Element Linking between so when you select a "Name" in table 1, table 2 shows only those "User(s)" related to the "Name" selected in table 1 and then finally when you select a "User" in table 2, the Pie Chart shows up with whatever data you need/filtered depending on the values selected in tables 1 and 2. Make sense?

Please register and Vote up on this idea on SAP BI Ideas which is related to what you want.

https://ideas.sap.com/D12266

Thanks,
Mahboob Mohammed

Former Member
0 Kudos

yes that does make sense. Only thing I would like to implement here is table 2 should be hidden and when a value from table 1 is selected only then table 2 shows up when both tables are element linked. How do I hide/show table 2 based on table 1 selection?

mhmohammed
Active Contributor
0 Kudos

Hey Nisha,

That can be done easily, right click on the Table 2 -> Format Table -> check the box for Hide when following formula is true: and in the formula bar below, write the formula =(Count([User]) <> 1) and then click Apply and OK.


Test (by selecting different values in Table 1 and clearing the selection) to see if its working fine or not and let us know.


Thanks,
Mahboob Mohammed

Answers (1)

Answers (1)

Former Member
0 Kudos

Hi,

Use ReportFilterSummary() function to get the filter applied on a particular block with a particular object.

1) create a variable to store summ= reportfiltersummary()

2)get the position of filter

pos =Pos([summ];"User Equal")

3) get the string after the filter text i.e from position of filter to till end

4) then delete the User equal to text from the result using replace function

=Replace(Substr([summ];[reportfilterpos];Length([summ]));"User Equal";"")

Note: to narrow the reportfiltersummary results you can use Report name and block name as input

ex:

=Pos(ReportFilterSummary("Dashboard");"Block 3") ...

Let me know if you face any difficulties in implementing the same

Refer this link

If any issues in implementing, give me screenshot /sample of the requirement

Former Member
0 Kudos

Thanks Divya!

I am still unable to implement this. So as of now I have a input control on object "Report folder"

the target table1 has fields "Report Name" and "Universe Name". The table 1 has element linked to table 2(fields list of tables, connection, count of table) and pie chart(universe name and count of table).

I need to show when "all values" or any value in input control is selected table 2 and pie chart should be hidden.

Then when a value is clicked on table 1 through element linking the target table 2 and pie chart should appear depending on table 1 selection. so basically table 2 and pie chart should show only when table 1 field is selected otherwise it should be hidden.

Thanks,

Nisha

Former Member
0 Kudos

Hi,

If my understanding is correct, you have two tables and one chart.

And input control is on Table 1 and if user selects All values then your table1,2 chart has to be hidden and if user selects one value out of the input control then you have to show table1.

If user selects some values out of table1 then table2 n chart has to be displayed.

Am assuming you have table1 as Block 1, table 2 as Block 2 and chart as Block 3

Your input control target is only on block1

Create a variable var1=Pos(ReportFilterSummary();"Block 1")

var2=Pos(ReportFilterSummary();"Block 2")

var3=Pos(ReportFilterSummary();"Block 3")

Use these variables to hide the Block1 hide when var1=0

Block2 as var2=0

Block3 as var3=0

Hope this helps. Let me know if you face any issue while implementing this

Former Member
0 Kudos

Thanks Divya!

I tried implementing the same as above. For some reason var 2=0 doesn't hide the second table. If I replace it by var 3 =0 it works. Var 1 = 0 doesn't work as well for table 1. If I ignore hiding table 1 and select default as "all values" for input control on table 1, then make table 2 and pie chart appear when I click on field in table 1(element linking-target being block 1, block 2 and block 3) that should be ok. but when I try this scenario , firstly having table 2 and pie chart as hidden with var 3 =0 I am not able to put block 1 as target in element linking(which is needed so that block 1 and 2 don't overlap), if I remove the hidden condition I am able to put block 1 also as dependency in element linking but again the hide/show condition is not working.

Any advice on how to implement this.

Thanks,

Nisha

Former Member
0 Kudos

Hi Nisha,

Somehow i am not able to visualize your issue. Can you confirm one thing

Your input control target is only the Block1? or all the three blocks?

If you create the dependency the way which i have mentioned in my earlier post then the solution which i have provided will work.

Let me know if i am missing anything about your requirement