Business Objects 4.1 – Setting a block to be displayed by selection within Input Controls
(To follow this blog, I’m assuming you already know how to navigate within BO and you are familiar with creating and modifying documents).
I’m sure you already know how to “hide when” within BO. (In case you don’t, instructions are shown below). But how can you set up an Input Control to enable you to select a block to display based upon a certain value? By combing the Web, I found out how to do this, and I would like to share my findings with you.
Let’s first create a variable to ‘Select Measure.’ For example, you have sales data in $$ and you have sales data in units. The selectable measure you would like to enable is either Sales or Units.
Within your report, first create a variable for ‘Select Measure.’ Right click on Variables and select ‘New Variable.’
Give it a name. I usually use “Select Measure” since it’s simple and obvious. It’s a Dimension, and the formula can basically be anything at this point. Since this is a Sales / Units variable, I will use the formula:
Then click ‘OK’ to save the variable.
Next, click on the icon for Input Controls and click ‘New’.
Select your ‘Select Measure’ variable and click the ‘Next’ button.
Choose the ‘Control Type’ – My preference is ‘Combo Box’ but it is user preference. It’s a single value choice.
Then under the ‘Input control properties,’ adjacent to ‘List of Values,’ click the ellipsis (…) for ‘Custom’ values.
The value “Sales” is already in the ‘Selected Value(s)’ list since we set our variable ‘Select Measure’ to be =”Sales.” Now, to add in the value “Units,” in the ‘Type a value’ field type “Units” and click the arrow to move it to the ‘Selected Value(s)’ list. Click the ‘OK’ button.
So, you have customers with sales values in $$. Example:
Within your report, you can now see your Input Control with the “Sales” and “Units” values. Notice there is an “All values” selection… I will get to that in a bit.
You also want to display a table for these customers with units. Make a copy of the table and paste it and simply drag your units over. Example:
For the Sales $ table, right click the edge and select ‘Format Table…’
Select ‘Layout’ on the left and position your block. For example, I chose 1 cm from the Left of Report and 1 cm from the Top of Report. These settings will be used to position your Units table, as well, so they fit right on top of one another.
Type the following formula into the box and click the check mark to validate the formula. Then click the ‘OK’ button.
Notes about syntax:
“ReportFilter” is used to refer to an input control or other filter on the report.
“[Select Measure]” within brackets as shown is the exact title of the variable you created. Surround it with parentheses.
“Sales”: Not equal to “Sales”
This formula means we are going to hide this block when the Input Control “Select Measure” is not equal to “Sales.” Simple enough, right?
Follow the same steps above to position your Units block in the same location as your Sales block. For the ‘Hide when…’ formula, simply replace “Sales” with “Units”.
Now, go ahead and give it a try. Select “Sales” from your Input Control and your Sales block will display. Select “Units” and your Units block will display. Or actually, what you’re seeing is that one is being hidden when the other is selected.
Now for that ‘All values’ selection within your Input Control – You have a couple of options. If you have tables as small as the examples shown here, you could potentially show them side by side (1). Or you can create a third table and show sales and units together (2). Or a third option, you can have text instructing the user to select a measure from the Input Control (3). Let’s go through the steps to accomplish these options.
For options (2) and (3), the steps will be the same. In both cases, we are creating a third element for when the ‘All values’ choice is selected in the Input Control.
Create your table showing sales and units or create a cell with text to instruct the user to select a measure. For example, “Please select a measure from the Input Control.”
For the third element, go into the ‘Format Table’ menu and position where you want the block to appear. I usually choose the same general area as the Sales and Units blocks so the user’s eye is focused on the same area.
For the ‘Hide when…’ formula, type the following:
=ReportFilter([Select Measure]) = “Sales” Or ReportFilter([Select Measure]) = “Units”
Your third element will be hidden if either of the Sales or Units tables is being selected from the Input Control.
To display the blocks side by side (option (1)), we will need to go into the ‘Format Table’ menu and reposition the Units block, for example, so that it is not directly over (or under) the Sales block. For example, I used my Input Control to select “Units,” and I positioned the Units block about where I imagined it to appear and then chose 9 cm from Left of Report and 1 cm from Top of Report.
Now we need to tweak those ‘Hide when…’ formulas. Originally when they were one over the other, we wanted to hide one to show the other. Now that they are in different locations in the report, and since we want to show them both when ‘All values’ is selected, we want to hide them only when the other value is selected.
Modify the formula for the Sales block as shown below:
Modify the formula for the Units block as shown below:
Now each block will only be hidden when the OTHER measure is selected. Thus, when the ‘All values’ selection is chosen, BOTH blocks are displayed.
I hope this information has helped you. Please feel free to post any comments or questions you may have. Thanks for reading!