You are on page 1of 10

Overview

When doing drill, users may navigate among various detail levels in a hierarchy, but the real business status might be more complicate than a single report can display. Suppose a company has several reports and each focuses on different statistic, one focuses on relation between revenue and products, one focuses on relation between cost and regions, one focuses on relation between revenue and regions, and users want to do flexible analysis such as from one report find out the most profitable product, then from another report find out the region which has best sale on the specific product. This can be done by drilling among multiple reports.

Description of use case


We are going to show an example based on the eFashion universe to describe the steps on how to drill among multiple reports. To simplify the workflow, we create only 3 simple reports. Report rev_year is a table of sales revenue and year, report rev_city is a table of sales revenue and citiess, report rev_line is a table of sales revenue and product lines. The drill path is: 1. On the rev_year report, find out the year has the highest sales revenue 2. Drill down to the rev_city report, find out the city has the highest sales revenue in the specific year 3. Drill down to the rev_line report, find out the product line has the highest sales revenue in the specific city and the specific year. Besides, to make the drill more flexible, we also need to use these reports to drill via different paths, for example from rev_line to rev_year, to rev_city.

Steps to create multiple drillable reports

1. In Webi rich client, create a report rev_year based on the universe eFashion, add [Year] and [Sales revenue] to Result Objects panel, add [City] and [Lines] to the filters panel

2. create a report rev_city, add [City] and [Sales revenue] to Result Objects panel, add [Lines] and [Year] to the filters panel

3. create a report rev_line, add [Lines] and [Sales revenue] to Result Objects panel, add [City] and [Year] to the filters panel

4. open the prompt properties window of each prompt in the three reports, check the "Optional prompt" checkbox.

5. In the report rev_year, create two variables, one is link_city ="http://<Server>:8080/OpenDocument/opendoc/openDocument.jsp?sType=wid&sDocN ame=rev_city&lsSEnter+Year:="[Year](If IsPromptAnswered("Enter Lines:") Then "&lsSEnter+Lines:="+URLEncode(UserResponse("Enter Lines:")))

The other is link_line ="http://<Server>:8080/OpenDocument/opendoc/openDocument.jsp?sType=wid&sDocN ame=rev_line&lsSEnter+Year:="[Year](If IsPromptAnswered("Enter City:") Then "&lsSEnter+City:="+URLEncode(UserResponse("Enter City:"))) 6. In the report rev_city, create two variables, one is link_year ="http://<Server>:8080/OpenDocument/opendoc/openDocument.jsp?sType=wid&sDocN ame=rev_year&lsSEnter+City:="URLEncode([City])(If IsPromptAnswered("Enter Lines:") Then "&lsSEnter+Lines:="+URLEncode(UserResponse("Enter Lines:"))) The other is link_line ="http://<Server>:8080/OpenDocument/opendoc/openDocument.jsp?sType=wid&sDocN ame=rev_line&lsSEnter+City:="URLEncode([City])(If IsPromptAnswered("Enter Year:") Then "&lsSEnter+Year:="+UserResponse("Enter Year:")) 7. In the report rev_line, create two variables, one is link_year ="http://<Server>:8080/OpenDocument/opendoc/openDocument.jsp?sType=wid&sDocN ame=rev_year&lsSEnter+Lines:="URLEncode([Lines])(If IsPromptAnswered("Enter City:") Then "&lsSEnter+City:="+URLEncode(UserResponse("Enter City:"))) The other is link_city ="http://<Server>:8080/OpenDocument/opendoc/openDocument.jsp?sType=wid&sDocN

ame=rev_city&lsSEnter+Lines:="URLEncode([Lines])(If IsPromptAnswered("Enter Year:") Then "&lsSEnter+Year:="+UserResponse("Enter Year:")) 8. In the report rev_year, add the variables link_city and link_line as two columns in the table, turn them into hyperlinks. Do the same on reports rev_city and rev_line.

9. In the report rev_year, modify the title as: ="Revenue report "+(If IsPromptAnswered("Enter Lines:") Then " in "+UserResponse("Enter Lines:")) +(If IsPromptAnswered("Enter City:") Then " in "+UserResponse("Enter City:")) 10. In the report rev_year, modify the title as: ="Revenue report "+(If IsPromptAnswered("Enter Year:") Then " in "+UserResponse("Enter Year:")) +(If IsPromptAnswered("Enter Lines:") Then " in "+UserResponse("Enter Lines:")) 11. In the report rev_line, modify the title as: ="Revenue report "+(If IsPromptAnswered("Enter Year:") Then " in "+UserResponse("Enter Year:")) +(If IsPromptAnswered("Enter City:") Then " in "+UserResponse("Enter City:")) 12. Save and export these reports.

13. Try with the drill path rev_year - rev_city - rev_line: on the rev_year report, choose a year which has the highest revenue, it is 2006

14. Drill down to the rev_city report in 2006, note that the prompt value of Year is added into the opendocument function parameter, and the prompt value of Lines is left empty, as these prompts are defined as optional, the WebI removed the empty condition from the

query. Choose the city which has the highest renevue, New York

15. Drill down to the rev_line report and you can browse the table and find out the lines which has the highest revenue in 2006 in New York, note that the prompt values of both

Year and City are added into the opendocument function parameter.

16. And you may drill via different paths, for example from rev_line to rev_year, to rev_city. You may also define various analysis criteria, for example, to search the least profitable product.

Summary
The usability is realized by leveraging several features: 1. Use Optional prompt to dynamically generate query at run time 2. Use Opendocument function to link one report to another, and forward values with the function parameter 3. Use function "If Then" and "IsPromptAnswered()" to form the parameter string 4. Use function URLEncode() to translate the space character to "+" in the url string With this usage, users may have flexibility to drill among multiple reports.

You might also like