Creating Dynamic WebI Documents

Often we are forced to find a solution to make our Web Intelligence reports more dynamic, because of a specific user need or for the purpose of sales demos. In this case we can add some interactivity to make our presentations livelier and more visually appealing. In this post you will find some examples for achieving more dynamic WebI reports that don’t come with the out-of the-box WebI standard module:

  1. Dynamic columns
  2. Hiding and Unhiding blocks
  3. Hiding and Unhiding blocks in sections

The techniques explained below are valid not only for tables but also for graphs.

1. Dynamic Columns:

The purpose of this technique is to change the value of a dimension column according to a selection from its input control. Below you will find the high level guidelines for creating dynamic columns:

  • Create a dummy table in the Universe; ideally a derived table with the name of the descriptions you want the user to display and to show in the document. You can see a sample below:
Dummy Table WebI
Dummy Table WebI
  • These dynamic variables should come in a separate Query and be linked with the real data coming from a second Query. Alternatively all data could come from a single Query. If the variables and the data to present are not linked, our solution will not work.
  • The next step is to create the Input Control making sure that the filter applied affects either the entire report or a specific table, depending on where the dynamic columns are located.
  • Once we have all this, we need to build the table or block where our "Dynamic Column" will be located and build a conditional formula with IF and ELSE features. Using our example, if our dynamic variable is called Input control, if the information we want to show is located in the Period table and if the dynamic source fields are Month, Week & Day, then the formula should be the following: =If("inputControl"="Month";[Period.Month];If("inputControl"="Week";[Period.Week];If("inputControl"=”Day”;[Period.Day]))) Make sure the formula sentence is properly defined so that a meaningful result will be displayed when the user applies the "All values" option.

For a more detailed explanation on this topic you can check the Clariba blog article:  How to Use WebIntelligence Input Controls Efficiently from 22nd January 2011 at

2. Hiding / Unhiding blocks

  • The purpose of this technique is to hide one table and show another with dimension columns by changing its value according to a selection from its Input Control:
  • Create a dummy table (like in the example above) with the options we want to show to the user and for the purpose of linking two Queries (i.e. with the word “LINK”)
  • Create a table with all the data you want to show.  After that, it is necessary to uncheck one of the properties that our block/table has by default. Select the proper block, go to properties, deploy the "Display" option and make sure that the "show when empty" property is not active.
  • The next step is to create the Input Control, making sure that the filter applied affects the entire report.
  • Next we need to play around with the filters for the different blocks. The object with the word “LINK” needs to be used like a filter for every single block (equal to). After that we apply a filter with the object we used before for the Input Control, making sure that the option for this filter is “not equal to” the value that corresponds to the actual table. We need to do the same with all tables.

3. Hiding / Unhiding blocks in sections:

Imagine we have a report where we want to split a trends table into sections showing the trends in "Months", "Weeks" and "Days". The section could be too long and the user may not want to scroll down to find a specific one.

  • In this case,  we would make three different tables, one for Months, one for Weeks and the last for Days and place them in the section, making sure that we change the names on the top of the table so that users can  easily recognize them.
  • Select the different blocks and disable "show when empty" selection from the properties. Create three different Input Controls with all values, one for every possible trend. Establish connections between these and their corresponding table.
  • Make sure that the Input Control has one value by default, so only one table is visible. This way when the user makes a selection in a single "trend" Input Control, the corresponding block will be displayed correctly; whereas if the user deselects all the options in the Input Control tables, all the blocks will be visible.

The techniques explained above were developed by our team of Web Intelligence developers to provide business users with the added value of interactivity in their queries, analysis and navigations.

If you have any questions or feedback about these solutions, please feel free to leave a comment below or send an email to