In this chapter, we will cover some fundamental techniques which will be used in your day-to-day life as a Report Studio author. In each recipe, we will take a real life example and see how it can be accomplished. At the end of the chapter, you will have learnt several concepts and ideas which you can mix-n-match to build complex reports.
Though this chapter is called 'Basic Concepts', it is not a beginner's guide or a manual. It expects the following:
You are familiar with the Report Studio environment, components, and terminologies
You know how to add items on the report page and open various explorers and panes
You can locate the properties window and know how to test run the report
Based on my personal experience, I will suggest this chapter to new developers with two days to two months of experience. If you have larger experience with Report Studio, you might want to jump to the next chapter.
In the most raw terminology, a report is a bunch of rows and columns. The aim is to extract the right rows and columns from database and present them to the users. The selection of columns drive what information is shown in the report, and the selection of rows narrows the report to a specific purpose and makes it meaningful. The selection of rows is controlled by 'Filters'. Report Studio provides three types of filtering: Detail, Summary, and Slicer. Slicers are used with dimensional models and will be covered in later chapter (Chapter 7, Working with Dimensional Models). In the first recipe, we will cover when and why to use the Detail and Summary filter.
Once we get the correct set of rows by applying the filters, the next step is to present the rows in the most business-friendly manner. Grouping and ordering plays an important role in this. The second recipe will introduce you to the sorting technique for grouped reports.
With grouped reports, we often need to produce sub-totals and totals. There are various types of aggregation possible. For example, average, total, count, and so on. Sometimes the nature of business demands complex aggregation as well. In the third recipe, you will learn how to introduce aggregation without increasing the length of query. It will also show you how to achieve different aggregation for sub-totals and totals.
The fourth recipe will build upon the filtering concept you will have learnt earlier. It will talk about implementing IF
THEN
ELSE
logic in filters. Then, we will see some techniques around data formatting, creating sections in a report, and hiding a column in crosstab.
Finally, the eighth and last recipe of this chapter will show you how to use prompt's Use Value and Display Value properties to achieve better performing queries.
The examples used in all the recipes are based on the GO Data Warehouse (Query) package which is supplied with Cognos 8.4 installation. These recipe samples can be downloaded from the Packt Publishing website. They use the relational schema from Sales and Marketing | Sales (query) namespace.
This is similar to Database Layer of the traditional GOSales package supplied with Cognos 8.2.
Please note that though there might be slight variations to scripts or features available in different versions of Report Studio, all the recipes mentioned in this book are applicable for all versions of Cognos 8 (8.1 through 8.4).
The screenshots used throughout this book are based on version 8.4. With versions 8.3 and 8.4, you need to choose Professional Authoring Mode from the View menu.