Input Controls

For a report with multiple tabs I have created in Webi Rich a main tab with multiple input controls that also work on the other tabs (without IputControls).

In short the sollution is ReportFilterSummary() and then boolean filters based on that within the different tabs. It works fine in Rich Client.

The issue is that it does not work correctly within Infoview. If you select a value within an Input Control(IC) on the main tab and you select a different tab, the data is filter as it is supposed to be. So far so good.

But if you go back to the main tab, select a different vaule or change a different IC and go back to one of the other tabs, the data does not change to the new selection, but stays the same as the previous selection. Which means the tab does not refresh. It will only do that if you refresh the report or force the tab to refresh by changing something on the report (and in some cases not even then). Flaw of webi or a setting that can be changed?

I want the report tab to refresh itself when you select it. Or even better: to refresh itself if the value behind the reportfilter has changed and not just when you change the value of the filter itself.


Alfons :netherlands: (BOB member since 2012-04-18)

Are you using 3.1 SP3 by any chance (12.3.0.601)?

Take a look at this subject:

I’ve tried this mechanism on 2 different 12.3.0.601 systems, neither of which worked. I assume it’s a bug which was fixed as part of a fixpack, hence why it works for some but not others.

HTH


mcnelson :uk: (BOB member since 2008-10-09)

Thanks for the reply. Yes, that is more or less the solution that I used to make it work. And yes I use 3.1 SP3 (12.3.0.601).

So it is a bug that makes the report tab not refresh to the filter the 2nd time you change the IC and return to the tab? It is already a big fail that the IC is only working for one tab, but not recalculating or refreshing after every change is a big miss here. It does explain some odd behaviour of some reports and its formulas before (without IC). Too bad cause now I have to split up the report into different versions for every department and team. Reports should always be user friendly.

Any chance you know which fp fixes it? (Even though I do not control the software here.)


Alfons :netherlands: (BOB member since 2012-04-18)

Hi,
Thanks for the confirmation. I’m afraid I don’t know which fixpacks addressed this bug.

Good luck with your solution!

HTH


mcnelson :uk: (BOB member since 2008-10-09)

I was finally able to make it works…Thoses steps will show you how by creating a dummy report…

  • Create a custom query

select ‘1’,‘MyNumber1’
union
select ‘2’,‘MyNumber2’
union
select ‘3’,‘MyNumber3’

For this example, 1st col will be [MyNumber] and 2nd col [Desc]

  • Duplicate the default report

  • On the 1st tab (“Report 1”), add a new Input Control

  • Parse ReportFilterSummary(“Report 1”) to retrieve the filtered value in a variable named [Filtered]

=Trim(If (Pos(ReportFilterSummary(“Report 1”);"MyNumber Equal ") > 0) Then Substr(ReportFilterSummary(“Report 1”);Pos(ReportFilterSummary(“Report 1”);"MyNumber Equal ") + Length("MyNumber Equal ");1) Else “”)

  • Create a boolean variable [Filter] based on [Filtered]

=If([Filtered]=“” Or [Filtered]=[MyNumber];1;0)

  • On the 2nd tab (“Report 1 (1)”), add the variable [Filter] in your table

  • Add a Quick Filter on this column. Select 1 as value.

So it’s where everybody seems to stuck. :hb:
If we go to the first tab and select a value, we see that [Filter] value changed but the table it’s not filtered until we do a refresh :frowning:
If we select a value and then a different value, now the table is filtered in the second tab…but it’s really annoying…and it doesn’t work in Infoview… :cry:

To make it works :

Before, go to the 1st tab and reset your input control. You also need to refresh the report to make sure that the 2nd tab is ok.

So…

  • Create a null measure by creating a custom query

SELECT null

For this example, this col will be [MyNull]

  • On the 2nd tab, add a dummy section by creating a variable [Section] =“” and dragging it over your table
    You can remove this cell after but DON’T DELETE THE SECTION

  • Create a [Filter Measure] variable - Like I said…it’s a MEASURE

= If ([Filter]=1) Then [Filter] Else [MyNull]

  • On the 2nd tab (“Report 1 (1)”), add the variable [Filter Measure] in your table

  • In the table properties, set the “Show rows with empty dimension values” to Yes (This one sounds really weird but IT MAKE IT WORKS :mrgreen: )

AND HERE WE GO…

Just test it…go back at the 1st tab and change your Input control value…the table will change immediatly on the 2nd tab…and it works perfectly in Infoview… :yesnod:

You can remove the [Filter] col but not the [Filter Measure] col but you can “blank” it by removing borders and putting white color as backgroun color (to do this, you need to change it to another color first and then in white)

:smiley: :smiley: :smiley:


FabienRacine (BOB member since 2012-10-23)