IBM Cognos 10 Report Studio: Practical Examples will help you find the answers to specific questions based on your data and your business. Introduction To Cognos Analytics And Report Navigation report navigation training ibm cognos analytics 11 applicable for former ibm cognos 10 report. tutorial step by step – either way you'll end up with some highly impressive reports. [PDF] Ibm. Cognos 10 Report Studio Practical Examples.
|Language:||English, Spanish, Dutch|
|ePub File Size:||22.75 MB|
|PDF File Size:||20.81 MB|
|Distribution:||Free* [*Sign up for free]|
IBM Cognos 10 Report Studio: practical examples / Roger Johnson, Filip Draskovic. p. cm. ISBN (pbk.) 1. Business intelligence— Computer. [DOWNLOAD $PDF$] IBM Cognos 10 Report Studio: Practical Examples FULL- PAGE Click button below to download or read this book. IBM COGNOS 10 REPORT STUDIO: PRACTICAL EXAMPLES. PDF. By seeing this page, you have done the ideal staring point. This is your begin to choose the .
Skip to main content. Log In Sign Up. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews. Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied.
Filip Draskovic has spent his professional career, which covers the past 11 years, living and breathing IBM Cognos. For the first 8 years of his career, he had been a Cognos consultant and developed his skills applying Cognos Business Intelligence and Planning solutions in multiple industries.
Following his desire to constantly gain new experiences and knowledge, he is currently filling the role of a Cognos client technical professional. You can find him today in Toronto's financial district. At home, with his wife, he is enjoying raising their son and daughter. Blogs My Blogs. Public Blogs. My Updates. Log in to participate. DB2 Performan Ideation Blog: IBM Tunisia H IBM PureData NeerajGaurav R Updated 4 Comments 0. Keep on Learning.
View All Entries. This book provides that advanced know how. Using practical examples based on years of teaching experiences as IBM Cognos instructors, the authors provide you with examples of typical advanced reporting designs and complex queries in reports. The reporting solutions in this book can be directly used in a variety of real-world scenarios to provide answers to your business problems today.
The complexity of the queries and the application of design principles go well beyond basic course content or introductory books. IBM Cognos 10 Report Studio: Practical Examples will help you find the answers to specific questions based on your data and your business model. The final chapter has been dedicated to showing those features that are unique to the latest version of this powerful reporting solution.
About the authors: Roger Johnson is a learning consultant on IBM Cognos technologies delivering a wide variety of courses focusing on the needs of his learners. Click on the OK button and test the report. This time the rows are sorted in descending order of Quantity as required.
How it works The sort option by default works at the detailed level. This means the non-grouped items are sorted by the speciied criteria within their own groups. Here we want to sort the product lines that are grouped not the detailed items. In order to sort the groups, we need to deine a more advanced sorting using the Edit Layout Sorting options shown in this recipe. You can also deine sorting for the whole list report from the Edit Layout Sorting dialog box.
You can use different items and ordering for different groups and details. You can also choose to sort certain groups by the data items that are not shown in the report. You need to bring only those items from source model to the query, and you will be able to pick it in the sorting dialog. They also want the entries to be grouped by product line and see the highest unit cost for each product line.
At the end of the report, they want to see the average unit cost for the whole range. In this recipe, we want to examine how to aggregate the data and what is meant by rollup aggregation. Using the new report that you have created, this is how we are going to start this recipe: We will start by examining the Unit cost column. Click on this column and check the Aggregate Function property. Set this property to Average. Click on the Unit cost column and then click on the Summarize button from the toolbar.
Select the Total option from the list. Now, again click on the Summarize button and choose the Average option as shown in the following screenshot: The previous step will create footers as shown in the following screenshot: The report should look like the following screenshot: Run the report to test it. In this recipe, we have seen two properties of the data items related to aggregation of the values.
The aggregation property We irst examined the aggregation property of unit cost and ensured that it was set to average. Remember that the unit cost here comes from the sales table. The grain of this table is sales entries or orders. This means there will be many entries for each product and their unit cost will repeat.
We want to show only one entry for each product and the unit cost needs to be rolled up correctly. The aggregation property determines what value is shown for unit cost when calculated at product level. If it is set to Total, it will wrongly add up the unit costs for each sales entry. Hence, we are setting it to Average. It can be set to Minimum or Maximum depending on business requirements.
The rollup aggregation property In order to show the maximum unit cost for product type, we create an aggregate type of footer in step 4 and set the Rollup Aggregation to Maximum in step 8. Here we could have directly selected Maximum from the Summarize drop- down toolbox.
But that creates a new data item called Maximum Unit Cost. Instead, we ask Cognos to aggregate the number in the footer and drive the type by rollup aggregation property. This will reduce one data item in query subject and native SQL. Multiple aggregation We also need to show the overall average at the bottom. For this we have to create a new data item. Hence, we select unit cost and create an Average type of aggregation in step 5. This calculates the Average Unit Cost and places it on the product line and in the overall footer.
We then deleted the aggregations that are not required in step 7. The rollup aggregation of any item is important only when you create the aggregation of Aggregate type.
When it is set to automatic, Cognos will decide the function based on the data type, which is not preferred. It is good practice to always set the aggregation and rollup aggregation to a meaningful function rather than leaving them as automatic. However, for the Sales Visit type of order method, they want a facility to select the retailer. Therefore, the report should show quantity by order methods. For the order methods other than Sales Visit, the report should consider all the retailers.
For Sales Visit orders, it should ilter on the selected retailer.
Group by Order method to get one row per method and set the Aggregation for quantity to Total. In this recipe, we need to create a ilter that will be used to select the retailer if the Order method is Sales Visit. We will check what will happen if we use the if then else construction inside the ilter and how to overcome any problems with the following steps: Here we need to apply the retailer ilter only if Order method is Sales Visit.
So, we start by adding a new detail ilter. Validate the report. You will ind multiple error messages. Now change the ilter deinition to: Validate the report and it should be successful. Run the report and test the data. The if else construct works ine when it is used in data expression. However, when we use it in a ilter, Cognos often doesn't like it.
It is strange because the ilter is parsed and validated ine in the expression window and if else is a valid construct. The if condition and corresponding action item are joined with the and clause. You need not use both and and or clauses all the time. The iltering in this example can also be achieved by this expression: Make sure that you cover all the possibilities.
Formatting data — dates, numbers, and percentages Virtually all reports involve displaying numerical information. It is very important to correctly format the numbers.
In this recipe, we will create a report which formats dates, numbers, and percentages. Date transformation and formatting are important in business reports. We will apply some formatting to a numeric column and will also conigure a ratio to be displayed as a percentage. Create a grouping on Product line and Product type.
In this recipe, we will check how to apply different formats on the data items. We will start by formatting the date column we have check in Cognos 8. Now select the Quantity column in the report. Choose Data Format from property and open the dialog box again. This time select Number as the type and set the different properties as required. Finally, we will add the ratio calculation to the report. For that, add a new query calculation and deine it as follows: Select this column and from the Data Format property dialog box, set it as Percent.
In this recipe, we are trying multiple techniques. We are checking how dates can be formatted to hide certain details for example, days and how to change the separator. Also, we have tested formatting options for numbers and the percentage. Date format Here, we started by setting the data format for the Month Year column as date for display purposes. Numerical format This is straightforward.
The quantity column is displayed with two decimal points and negative numbers are displayed in brackets as this is what we have set the data formatting to. Without formatting, the value is simply the result of a division operation. By setting the data format to Percent, Cognos automatically multiplies the ratio by and displays it as a percentage. Please note that ideally the warehouse stores a calendar table with a Date type of ield; this is made available through the Framework model.
Also, we are assuming here that you need to see the shipment month. Using the data format options, you can do a lot of things. Assume that you don't have a date ield in your data source but instead you have just a date key and you want to display the year and month as we did in our recipe. For that, create a new query calculation and use the following expression: You will see that we have gotten rid of the last two digits from the day key and the year part is separated from the month part by a hyphen.
The advantage here is that the numerical operation is faster than converting the numerical key to DATE. We can use similar techniques to cosmetically achieve the required result. Creating sections Users want to see the details of orders. They would like to see the order number and then a small table showing the details product name, promotion, quantity, and unit sell price within each order.
Creating sections in a report is helpful to show a data item as the heading of a section. When you run the report, separate sections appear for each value. There is a way to reconstruct the report, and this is how to do it: Click on the Order number column.
Hit the Section button on the toolbar as shown in the following screenshot: You will see that Report Studio automatically creates a header for Order number and moves it out of the list.
Notice that the Order number ield is now grouped as shown in the following screenshot: The information we are trying to show in this report can also be achieved by normal grouping on order number. That will bring all the related records together. However, in this recipe, I want to introduce another feature of Report Studio called section.
When you create a section on a column, Report Studio automatically does the following: This is report nesting. Both the inner and outer objects use the same query. It also creates a group header for that item and removes it from the inner list. For example, hiding the column title. Some of the advantages of creating sections are as follows: As mentioned earlier, Report Studio does a lot of the work for you and gives you a report that looks more presentable.
It makes the information more readable by clearly differentiating different entities; in our case, different orders. You will see mini-lists or tables, one for each Order number, as shown in the following screenshot: As the outer and inner queries are the same, there is no maintenance overhead.
We need to show monthly sales and the yearly total sales. The year should be shown in the Year total row and not as a separate column.
Add a total for the Month and Order method type then deine appropriate sorting if required. In this recipe, we want to hide the year from the crosstab and show it only in the report as a year total. To do this, perform the following steps: First, let's identify the issue. If you run the report as it is, you will notice that the year is shown to the left of the months.
This consumes one extra column. Also, the yearly total doesn't have a user friendly title as shown in the following screenshot: We will start by updating the title for the yearly total row. Run the report and check that the yearly total is shown with the appropriate year as shown in the following screenshot: Now we need to get rid of the year column on the left edge. For that, click on the Unlock button in the Report Studio toolbar.
The icon should change to an open lock unlocked. Select the empty crosstab node left after deleting the text. Change its Padding to 0 pixels in all directions. Run the report and you will see the following screenshot: As you can see the year column on the left is now successfully hidden. However, in this case, that was not possible. It will look like the following screenshot: As you can see, the cells have shifted to the left leaving the titles out of sync.
This is most often the problem when Report Studio creates some merged cells in our case, for the aggregations. The solution to this is to format the column in such a way that it is hidden in the report as we have seen in this recipe. This solution works best in HTML output. The Excel output still has a column on the left with no data in it. You might need to deine the background color and bordering as well so as to blend the empty column with either the page background on the left or the month column on the right.
However, the display values in the prompts need to be textual and user friendly. In this recipe, we will create a prompt and examine the differences between using the display value and the use value.
Open Page Explorer and click on the Prompt Pages folder. Drag a new page from Toolbox under Prompt Pages. Double-click on the newly created prompt page to open it for editing. From the toolbox, drag Value Prompt to the prompt page. This will open a wizard. Set the prompt name to ProductLine and then click on Next as shown in the following screenshot: Keep the Create a parameterized ilter option checked.
Click on Next as shown in the following screenshot: Keep the Create new query option checked. Give the query name as promptProductLine. Click on the Finish button. When you drag a prompt object from Toolbox, Report Studio launches the prompt wizard. In the irst step, you choose the parameter to be connected to the prompt. It might be an existing parameter deined in the query ilter or framework model or a new one. In this recipe, we chose to create a new one. Then, you are asked whether you want to create a ilter.
If there is already a ilter deined, you can uncheck this option. In our example, we are choosing this option and creating a ilter on Product line code. Please note that we have chosen the numerical key column here. Filtering on a numerical key column is a standard practice in data warehousing as it improves the performance of the query and uses the index. In the next step, Report Studio asks where you want to create a new query for the prompt.
This is the query that will be ired on the database to retrieve prompt values. Here we have the option to choose a different column for the display value. In our recipe, we chose Product line as the display value. Product line is the textual or descriptive column that is user friendly. It has one-to-one mapping with the Product line code. For example, Camping Equipment has a product line code of Hence, when we run the report, we see that the prompt is populated by Product line names, which makes sense to the users.
Whereas if you examine the actual query ired on the database, you will see that iltering happens on the key column; that is, Product line code. Enter any dummy number and examine the query generated for the report.
You will see that the Product line code key column is being iltered for the value you entered. So, now you know how the prompt display values and use values work. If you ever need to capture the prompt value selected by the user in expressions which you will often need for conditional styling or drill-throughs , you can use the following two functions: This function returns the textual value which represents the display value of the prompt. In our example, it will be the product line that was selected by the user.
This function returns the numeric value which represents the use value of the prompt. In our example, it will be the Product line code for the product line selected by the user. Now you know how iltering, sorting, and aggregation work.
You also know how to apply data formatting, create sections, and hide columns. You are also now aware of how to add new prompts and select appropriate options in the prompt wizard. We will also examine some techniques around drill-through links.
These will enable you to create professional reports as required in the current industrial environment. Adding cascaded prompts Business owners want to see sales made by employees. They also want the facility to limit the report to a certain region, country, or employee. When they select a region, they would like the country pick-list to automatically reduce to the countries falling in that region. Similarly, the employee pick-list should also reduce when they pick a country.
Getting ready Create a simple list report with Employee name from the Employee by region query subject and Quantity from Sales fact. Deine appropriate grouping and sorting for Employee name and ensure that aggregations for Quantity are correctly set. In this recipe we will build three prompts for Region, Country, and Employee.
We will create a relationship between these prompts by making them cascading prompts. So if you change the value selected in one prompt, the data in the other prompts should change accordingly.
We will start by creating detailed ilters on the report query. Select the list report and open the ilters dialog by clicking on the Filters button and then click on Edit Filters. Add three detailed ilters as follows: Deine all ilters as Optional as shown in the following screenshot: Now create a new prompt page. We will start by adding a prompt for Region. Drag a new value prompt.
In the prompt wizard, choose the existing parameter Region for it. Choose to create a new query called Regions for this parameter. Now add another value prompt. Choose the existing parameter Country for this, and create a new query called Countries. On the same page, choose Region under the Cascading source as shown in the following screenshot: Similarly, add the third and last value prompt for employee.
Choose Employee as a parameter, Employees as the query name, and Country for the Cascading source. Select the Region prompt and set its Auto-Submit property to Yes.
Do the same for the Countries prompt. In our case, users may run the report for the whole company, select a particular region, select a region and country combination, or go all the way down to employees.
We want to allow them to submit the selections at any stage. That is why we created three ilters and kept them all as optional. Even if it was mandatory for the users to select an employee, we would have kept ilters for country and region. Cascaded source When we set the cascaded source property, Report Studio ensures two things. Firstly, the prompt is disabled until the cascaded source is satisied. Secondly, when re-prompted and the cascade source is populated, the prompt values are iltered accordingly.
In our case, the Countries prompt remains disabled until a valid value for region is submitted. Similarly, the employee list is disabled until a valid value is submitted for countries.
In step 9, we set the Auto-Submit property to Yes for the prompts. Auto-Submit When the Auto-Submit property is set to Yes, the prompt value is automatically submitted when the user selects one.
This enables the dependent prompt to be correctly iltered and enabled. In our recipe, Auto-Submit for Region is set to Yes. Hence, when you select a region, the value is automatically submitted and the Country prompt is enabled with the correct values populated.
In that case, Auto-Submit is not required. See also f The Prompts — display value versus use value recipe in Chapter 1, Report Authoring Basic Concepts Creating a nested report — deining the master-detail relationship Users want to see product lines, products, and corresponding unit costs.
For every product, they also want to see the trend of sales over the last year. We need to produce a list report with the required information and nest a line chart within it to show the sales trend. Getting ready Create a simple list report based on the Sales query namespace. To complete this recipe, we need to create a relationship between the list report created and a chart report that will be embedded into it.
We can do this by deining a master-detail link between them. We already have a list report that shows the product lines, products, and corresponding unit costs. Please make sure that appropriate sorting and aggregations are applied to the columns. Now we will add a nested Chart object to show the sales trend for each product. Drag a new Chart object from the Toolbox pane into the report as a column as shown in the following screenshot: Choose an appropriate chart type. In this recipe, we will choose Line with Markers.
From the source pane, drag Quantity from Sales fact into the chart as the Default measure y-axis. Drag Month key from the Time dimension under Categories x-axis and Product from the Products dimension under Series as shown in the following screenshot: Later on you can use a category label to show month names. Directly pulling the month name results in alphabetic sorting is an incorrect trend.
Create a new link and connect Product items from both the queries as shown in the following screenshot: Click on the OK button to come back on the report page. Now select the Y1 Axis of the chart by clicking on it. Now click on the chart and click on the Filter button from the toolbar and then click on Edit Filters. Deine a detailed ilter on Year from the Time dimension as required.
In this recipe, we will hard code it to So, the ilter is deined as [Sales query ]. Though in practical cases, you would have to ilter for year, rather than hard-coding. Update the chart properties size, marker, color, and so on for better presentation as shown in the following screenshot: Cognos Report Studio allows one report object to be nested within another list report.
In the previous recipe, we saw that the Report Studio automatically creates nesting for us. In this recipe, we manually created nesting for iner control. Then for each record, it ires the detail query with the iltering as deined in the master-detail relationship.
Hence, the detail query is executed multiple times, each time with different iltering. As it has to retrieve very small amounts of information at a time, a page of output is returned very quickly. This is particularly useful when the report is accessed interactively. This will highlight the data containers that have master-detail relationships with an icon like this: By double-clicking on the icon, you can quickly open the relationship for viewing and editing.
By using separate queries for the outer and inner report object in nesting, we can have more control on what information is retrieved. In this example, we want to show a sales trend chart only for one year—we hard coded it to Hence, the chart query needs to be iltered on year.
However, the outer query the list of product lines and products does not need this iltering. As you can see in the report output, there are some rows with no corresponding graph. This means there was no selling of this product in the year If we had used the same query for the list and the chart, this row would have been iltered out resulting in loss of information product and unit cost to the users. Though there is no direct functionality provided in Cognos Report Studio for this, it is still possible to achieve it by putting together multiple tools.
This recipe will show you how to do that. The business wants to see sales igures by products. They then want to write some comments for the products from the same interface. The comments need to be stored in the database for future retrieval and updating. You will need access on the backend database and Framework Manager for this recipe. As we are only concentrating on Report Studio in this book, we will not cover the Framework Manager options in depth.
The power users and Report Studio developers need not be masters in Framework Modeling, but they are expected to have suficient knowledge of how it works. There is often a Framework Manager Specialist or modeler in the team who controls the overall schema, implements the business rules, and deines hierarchies in the model.
Create appropriate sorting, aggregation, and prompts. To complete this recipe, we will use a stored procedure to do the write back action to the database. This is illustrated in the following steps: We will start by creating a table in the database to store the comments entered by users.
For that, open your database client and create a table similar to the one shown later. The table is deined as follows: After creating the table in step 1 in the backend, we will now write a stored procedure that will accept product key and comments.
It will enter this information in the table and then return all the product keys and corresponding comments back as shown in the following code: ProductComments GO 3. You need to conigure the input parameters as Prompts. This is shown in the following screenshot: As you can see in the previous screenshot, ProductID and Comments are the stored procedure parameters. They have in mode which means they accept input. For the values we will be deining prompts so that we can use them inside the reports.
For the parameter ProductID, click on the Value button. A new pop-up window will appear that will help you to set the value as you can see in the following screenshot: Click on Insert Macro and deine the macro as prompt '?
Repeat the same for the Comments parameter and deine another macro for the? Verify the model and publish it. Now, we will create a new report which users will use to insert the comments about the product. For that start with a new list report. Use the InsertComment stored procedure query subject for this report. Drag Product ID and Comment columns on this report as shown in the following screenshot: Create a prompt page for this report.
Insert a Text Value type of prompt and connect it to the existing parameter called Comment. Save this report as drill report. We will call it as 2. Now reopen the irst report. Drag a Text Item as a new column on the report and deine the text as Insert Comment as shown in the following screenshot: Create a drill-through from this text column by clicking on the Drill-through icon. Set Writing Back to Database — Drill as drill target.
Check the option of Open in New Window. Edit the parameter for this drill by clicking on the Edit button. Map the ProductKey parameter to the Product key data item as shown in the following screenshot: Cognos Report Studio on its own cannot perform data manipulation on a database.
It cannot ire DML statements and hence can't write back to the database. For this, we need to import the Stored Procedure as query subject within Framework Manager. When a report that uses this query subject is run, Cognos executes the Stored Procedure on the database. We can use this opportunity to perform some DML operations, for example, inserting or updating rows in tables.
When we import a Stored Procedure into Framework Model, it allows us to deine an expression for every input parameter. In step 3 of this recipe, we deined the parameter value to be prompts.
The prompt parameters, namely ProductKey and Comments then become visible in the report. Once we have imported the Stored Procedure in Framework Model, mapped the input parameter to prompts and published the package, we are ready to start with reports. We created a report drill report to use the Stored Procedure and hence allow users to insert the comments.
In this report, we created a text prompt and linked it to the Comments parameter. The Product Key is passed from the main report. This way we achieve the write-back to the database. We show those records in a simple list report to users. This recipe is a very basic example to demonstrate the capability. You can build upon this idea and perform more sophisticated operations on the database.
Adding conditional formatting The business wants to see company sales igure by years and quarters. They want to highlight the entries where sales are below 5,, We will assume that database provides us the Quarter number and we need to convert that to words.