- IBM Cognos 10 Report Studio Cookbook(Second Edition)
- Ahmed Lashin Abhishek Sanghani
- 332字
- 2025-04-04 22:29:29
Changing the title of the value prompt
In the previous example, the first line of the value prompt shows the data item name, that is, Month key (ship date) as shown in the following screenshot:

The business owners want to change this to a more generic and user-friendly text.
Getting ready
We will use the report generated in the previous recipe.
How to do it...
We need to add a line to the JavaScript from the previous recipe to change the text of first option (index 0). To do this perform the following steps:
- Open the prompt page of the report created in the previous recipe.
- Double-click on the HTML item that contains the JavaScript.
- Replace the code with the following:
<script> var theSpan = document.getElementById("A1"); var a = theSpan.getElementsByTagName("select"); for( var i = a.length-1; i >= 0; i-- ) { var prompts = a[i]; if( prompts.id.match(/PRMT_SV_/)) { prompts.selectedIndex = 3; prompts.options[0].text = 'Choose Shipment Month'; /* This is the new line added to script */ } canSubmitPrompt(); } </script>
- Run the report to test it as shown in the following screenshot:
How it works...
By default, the first line of a value prompt is the name of the data item. If you define the data item expression within brackets, that is, ([Sales (query)].[Time (ship date)].[Month key (ship date)])
in this example, then the first line of the value prompt is populated by the parameter name.
However, there is no property within Report Studio that would allow us to put a custom title. Hence, we are using JavaScript. We already know how to capture the prompt control using the GetElementsbyTagName
function. Once it is captured, we can manipulate the values. We change the text property of the options[0]
element to update the first line of the prompt.
There's more...
You can also use the REMOVE()
function to remove particular lines of a value prompt. It is often useful to remove the first two lines (title and separator) using the following statements:
Prompts.remove(0); Prompts.remove(1); Prompts.removeAttribute("hasLabel");