A long while back, I published an article detailing how to use a list to interact with a checkbox prompt. Since then, several people have asked me to add features to the code, and to fix some bugs. I’ve also learned quite a bit since I wrote that, so I’ve rewritten a parts of it.
The basic core of the code is the same. Using div tags to identify the list and prompt objects, with more HTML items to build the actual checkbox in the list. This is by no means optimized JavaScript, nor is it using the 10.2 Prompt API.
Previously the code would only work with one list. The reference to the list was hardcoded in the script and the checkboxes and select all buttons would fail for the second list. Also requested, using grouped rows. For instance, a user might want to select all of the months in 2011 by checking on the checkbox in the 2011 group. Another thing I fixed was the way it would loop through value prompts to find the correct value. If the key had any special characters, it wouldn’t be able to find it. Cognos would automatically escape those special characters.
The XML below was written on 10.2, but will downgrade easily to 10.1 by changing
xmlns="http://developer.cognos.com/schemas/report/9.0/"
to
xmlns="http://developer.cognos.com/schemas/report/8.0/"
The JavaScript will work in 8.4 as well, but downgrading will be a bit more difficult – you need to use /report/6.0/ and remove all of the version 10 only XML elements. If there’s a demand for it, I’ll go through and post all of the different JavaScript objects here. (But there shouldn’t be, because 10.2 is the greatest things since 10.1.1 and you should all upgrade and IBM should be paying me push upgrades like this.)
checkbox-List-Prompt.txt (1390 downloads)
Excellent! Its wonderful that are sharing your expertise with the world. I would have never guessed that we could do something like this outside of the application. Thank you for posting this and working through all the issues.
HI: This is a very interesting technique. Would you ever have done a way to create a prompt as a pop-up window without using much JS or simple JS code?
Thanks!