Dynamic visibility in webi

One of the features that webi was lacking for years was the ability to conditionally suppress columns. Especially when compared to Crystal that supported this kind of functionality from the get go, or Xcelsius with its dynamic visibility, webi report designers needing to show or hide columns in tables based on certain conditions were left to use cheesy tricks like setting the column width to 4px (historically, the minimum column width in webi) with white font and white background alert rules. This technique worked “O K” online, but exporting reports to excel revealed the “hidden” data columns and the extra padding could cause some formatting issues.
Well, webi in BO 4.0 has made a big step forward to resolve this issue. Now, any report element can be conditionally set to hide based on a formula, allowing report developers to create different tables for different scenarios.

Consider this simple example, using the e-Fashion universe:
Your reporting requirement is to present e-Fashion stores revenues by State and City, prompting users for a reporting Year. Moreover, in 2004, there were less stores and management wants to break down sales by stores, but only in 2004.
You can start by setting up your query with the needed objects: State, City, Store Name, Sales Revenue and Year. You can make Year a prompt.
Now, you can create two blocks in webi: one with the store name, and one without.

Next, use good old relative positioning to align them along the top right corner of each other.

Finally, go to each report block format options, and specify the appropriate formula to determine when to display or hide it.

And Voila! When users select 2004 as the prompt value, they will get the store names column, for other years it will disappear.

This entry was posted in Web Intelligence and tagged , , . Bookmark the permalink.

14 Responses to Dynamic visibility in webi

  1. Typer85 says:

    Hmm … you can already do this in Web Intelligence 3.1 by applying a block level filter.

  2. Anil says:

    Hi David,

    Thanks a lot for ur example. Its really cool.

    Anil.

  3. Randy says:

    Hi David,
    Thanks for the example to help us visualize this workaround.
    From your Example it is pretty straight-forward to hide/show tables based on 1 or 2 additional possible scenarios. But is there a better/more efficient way if the situation involves a lot more possibilities? My situation currently involves displaying potentially 20-30 more independent columns driven by what different flags on DB. Depending on the flag, users would want to see column A,B,C,D.. or A,C,D.. or A,F,G..

    Thanks a lot for your suggestions
    randy

    • Ron Keler says:

      Based on such a requirement, i would suggest looking at using Crystal. Using conditional suppression on fields or sections in Crystal might be a better way to go when dealing with such a dynamic layout requirement in a report.

  4. Rob Ensinger says:

    Hi Ron.
    I have a business requirement that is probably best addressed by hiding whole reports (in a muli-report Webi document). is there any capability to apply this at an individual report level?

    • Ron Keler says:

      Hi Rob, there is no way to hide a report tab in webi without programming. You can hide all the blocks in the report tab, but not the actual tab. For highly flexible layout requirement, i would look to leverage crystal where you can truely have complete control over as many reports sections as you like through conditional suppression.

  5. Vamsee says:

    This is Really a Very Good Post. Very Helpful.Thank You so much for sharing .

  6. Piyush says:

    Hi David,

    Interesting blog. I have a peculiar scenario where we want to hide break footers which are identical to other break footers. I will illustrate with below example;
    DATA = Group 1 = Group 2
    Interest Income = Interest Income= Other Income
    Rental Income =Other Income =Other Income
    Salary Income =Direct Income =Direct Income
    Bonus Income =Direct Income =Direct Income
    Scrap sale =Other Income =Other Income
    ….
    ….
    Fee expenses =Direct Expenses =Direct Expenses
    Car Rental =Direct Expenses =Direct Expenses
    Travel Exp =Direct Expenses =Direct Expenses
    ….

    DATA Group 1 Group 2
    Interest Income Interest Income Other Income
    Rental Income Other Income Other DATA Group 1 Group 2
    Interest Income Interest Income Other Income
    Rental Income Other Income Other Income
    Salary Income Direct Income Direct Income
    Bonus Income Direct Income Direct Income
    Scrap sale Other Income Other Income
    ….
    ….
    Fee expenses Direct Expenses Direct Expenses
    Car Rental Direct Expenses Direct Expenses
    Travel Exp Direct Expenses Direct Expenses
    ….

    Depreciation on Computers Depreciation Total Depreciation
    Depreciation on Vehicles Depreciation Total Depreciation
    Depreciation on eqpmt Depreciation Total Depreciation

    Salary Income Direct Income Direct Income
    Bonus Income Direct Income Direct Income
    Scrap sale Other Income Other Income
    ….
    ….
    Fee expenses Direct Expenses Direct Expenses
    Car Rental Direct Expenses Direct Expenses
    Travel Exp Direct Expenses Direct Expenses
    ….

    Depreciation on Computers =Depreciation =Total Depreciation
    Depreciation on Vehicles =Depreciation =Total Depreciation
    Depreciation on eqpmt =Depreciation =Total Depreciation

    Out put required is ;

    Salary Income
    Bonus Income
    Direct Income
    Interest Income
    Rental Income
    Scrap Sale
    Other Income
    Total Income
    Fee Expenses
    Car Rental
    Travel Expenses
    Direct Expenses
    Depreciation on Computers
    Depreciation on Vehicles
    Depreciation on eqpmt
    Total Depreciation

    Hope someone can help me with this.

    Thanks

  7. Nix says:

    This article is quite misleading.

    All you are doing is hiding one table (block) or another depending on formula set for those blocks.

    Webi still lacks the ability to dynamically hide columns even in 4.1 SP6.

  8. Franca says:

    Hello

    I have 15 rows /columns and i want to hide 2 columns ,so one user could see all when he filters on input control and the next user could see 13 when he filters in input control.i followed the same steps as you have above but am unable to to hide my columns.Does it mean that i have lots of rows and columns?Also am not really sure what to set in align relative position for vertical if i select start on a new page or repeat on a new page i loose my second block which one should i set it to? and when i try to lay each page on top of each it stii wont lay on top of it. could you think of what am doing wrong?

Leave a Reply

Your email address will not be published. Required fields are marked *