Chapter3: Formatting a Report
User Guide   101
4. Specify the options that you want.
Control How Objects Flow Around Other Objects
You can control how objects flow around other objects by choosing any of the following options.
1. Open the report that you want.
2. Click the object you want.
3. In the Properties pane, double-click the Floating property.
4. Specify how you want other objects to flow around the object by specifying the options that 
you want.
Specify Borders and Cell Size in Tables
You can specify the borders and cell size in lists, crosstabs, and tables by choosing any of these 
1. Open the report that you want.
2. Click the object you want.
3. In the Properties pane, double-click the Table Properties property.
4. Specify the borders and cell size by specifying the options that you want.
Sets how other objects flow around the object.
Allow floating objects on both sides
Allows other objects to flow on both sides. The Float 
property must be set.
Move below any floating object on the 
left side
If there are other objects to the left of the object, the 
object moves below those objects. The Float property 
must be set.
Move below any floating object on the 
right side
If there are other objects to the right of the object, the 
object moves under those objects. The Float property 
must be set.
Move below any floating object
Moves the object under any other object in which the 
Float property was set.
Collapse borders
Collapses adjacent cell borders into a single border.
Cell spacing
If borders are not collapsed, sets the amount of space 
between cell borders.
Show empty cell borders
If borders are not collapsed, shows borders of cells that 
are empty.
Fixed size
Makes all cells the same fixed, size.
Add page number to pdf print - insert pages into PDF file in, ASP.NET, MVC, Ajax, WinForms, WPF
Guide C# Users to Insert (Empty) PDF Page or Pages from a Supported File Format
add page number to pdf in preview; add and delete pages from pdf
Add page number to pdf print - VB.NET PDF Page Insert Library: insert pages into PDF file in, ASP.NET, MVC, Ajax, WinForms, WPF
Easy to Use VB.NET APIs to Add a New Blank Page to PDF Document
add page number to pdf reader; adding page numbers pdf file
102    Report Studio
Chapter3: Formatting a Report 
Create and Modify Classes
Create your own classes or modify existing classes in a report to format objects across a report 
according to your particular needs. In Report Studio, objects in reports are assigned a Cascading 
Style Sheet (CSS) class that provides a default style for the object. For example, when you create a 
new report, the report title has the class property Report title text assigned to it. In addition, 
objects inherit the classes set on its parent objects.
Classes you create or modify can be applied only to the current report. If you want to create or 
modify classes for all reports, you must modify the default layout style sheet. In addition, some 
classes can be used to format Query Studio reports.
1. Open the report that you want.
2. If you want to work with classes that were used in Cognos ReportNet
, do the following:
From the File menu, click Report Properties.
Select the Use 1.x report styles check box.
Use 1.x report styles when you are working with reports created in ReportNet and you want 
to preserve their original appearance.
3. Pause the pointer over the page explorer button and click Classes.
4. If you want to create a new class, in the Insertable Objects pane, drag Class to the Local 
Classes pane.
5. If you want to modify an existing class, in the Global Class Extensions pane, click the class 
you want.
Modify a global class to apply a change to all objects that use that class. For example, if you 
modified the style List column title cell, all column titles in lists will reflect your 
Tip: Ctrl+click global classes if you want to make the same change to more than one global 
6. In the Properties pane, modify the properties to specify your desired formatting.
Tip: Look at the Preview pane to preview your changes for different report objects, such as 
blocks, table cells, and text items.
A diamond symbol appears on the global class icon to indicate that the class was modified.
7. Apply the class to the objects you want:
Pause the pointer over the page explorer button, and click a report page.
Click an object to which you want to apply the style.
In the Properties pane, double-click the Class property.
To not apply any class, click the None radio button.
To apply a local class, click the Local Class radio button and then click the class you 
To apply a global class, click the Global Class radio button and then click the class you 
Click OK.
Modify Classes to Format Query Studio Reports
Some global classes are specific to Query Studio or can be applied to Query Studio reports. You 
can modify the following classes to format Query Studio reports. 
List column body cell
Style used to format list data.
List column title cell
Style used to format list column headings.
C# PDF insert text Library: insert text into PDF content in
pageIndex, The page index of the PDF page that will be 0
add page numbers to pdf online; add remove pages from pdf
C# PDF File Split Library: Split, seperate PDF into multiple files
If your page number is set as 1, then the two output PDF files will contains the first page and the later three pages Add necessary references:
adding a page to a pdf document; add page number to pdf file
Chapter3: Formatting a Report
User Guide   103
1. Create a Query Studio template (p.38).
2. Modify the global classes that you want.
3. Save the template.
To format a Query Studio report using the modified classes, the template must be applied to the 
report. For more information about applying a template to a Query Studio report, see the Query 
Studio User Guide.
Modifying the Default Layout Style Sheet
In addition to creating or modifying classes in a report, you can create and modify classes that will 
apply to all reports. Default styles are stored in a style sheet named GlobalReportStyles.css. For 
information about modifying the style sheet, see the Administration and Security Guide.
VB.NET PDF File Split Library: Split, seperate PDF into multiple
can split target multi-page PDF document file to one-page PDF files or PDF file to smaller PDF documents by every given number of pages Add necessary references
add page numbers to a pdf file; adding a page to a pdf file
C# PDF Print Library: Print PDF documents in, ASP.NET
Image: Copy, Paste, Cut Image in Page. Link: Edit Text. Add Text Box. Drawing Markups. Add Stamp Annotation. variety of printing options, like like number of copies
adding page numbers to pdf in preview; add page to pdf acrobat
104    Report Studio
Chapter3: Formatting a Report 
C# PDF Text Search Library: search text inside PDF file in
Add necessary references: Description: Search specified string from all the PDF pages. eg: The first page is 0. 0
add pages to pdf file; add multi page pdf to word document
C# PDF File & Page Process Library SDK for, ASP.NET, MVC
Highlight Text. Add Text. Add Text Box. Drawing Markups. PDF to Jpeg, VB.NET compress PDF, VB.NET print PDF, VB.NET Please note that, PDF page number starts from
add page numbers pdf file; add page to pdf online
User Guide   105
Chapter4: Working with Data
Make a report easier to read and easier to understand by specifying what data appears in the 
report and how the data looks. In Report Studio, you can
filter data
sort data
create sections
add a summary
create a calculation
format data
specify the list of properties for a layout object
show data for a specific time period
define a prompt
work with queries
Filter Data
Add a filter expression to focus a report and minimize processing time by excluding unwanted 
data. For example, you can filter data to show customers who placed purchase orders valued at 
over one thousand dollars during the past year. When you run the report, you see only the filtered 
If an expression is used in multiple reports, or by different report authors, ask your modeler to 
create the expression as a standalone object in the model and include it in the relevant package.
For information about creating filters in the package, see the Framework Manager User Guide.
If you are working with a dimensional data source, you can also define slicers. If you are filtering 
non-numeric data, you must select members from the data tree instead of typing member names 
1. Open the report that you want.
2. If you want to add a filter that was created in the package, in the Insertable Objects pane, on 
the source tab, drag the filter you want to the report.
You must drag the filter to an object that is linked to a query. If there is more than one query 
defined in the report, drag the filter to an object linked to the query you want.
3. From the Data menu, click Filters
If you have more than one query defined in the report, you must first click an object linked to 
a query. If there is more than one query defined in the report, click an object that is linked to 
the query you want.
Tip: You can also define filters in Query Explorer (p.127).
4. In the Filters dialog box, decide what type of filter you want to create:
To add a filter that will apply to detail values, click the Detail Filters tab.
To add a filter that will apply to summary values, click the Summary Filters tab.
5. Click the add button. 
6. In the Available Components box, define the filter expression:
If you want to include data items not shown in the report, on the source tab, double-click 
data items.
C# PDF delete text Library: delete, remove text from PDF file in
Add necessary references: RasterEdge.Imaging.Basic.dll. matchString, The string wil be deleted from PDF file, -. 0
adding pages to a pdf; add and delete pages in pdf online
C# PDF Text Highlight Library: add, delete, update PDF text
200F); annot.EndPoint = new PointF(300F, 400F); // add annotation to The string wil be highlighted from PDF file, 0
add a blank page to a pdf; add a page to a pdf online
106    Report Studio
Chapter4: Working with Data 
If you want to include data items that are in the report but not necessarily in the model 
(such as calculations), on the data items tab, double-click data items.
If you want to include data items from a specific query (p.127) in the report, on the 
queries tab, double-click data items.
If you want to add functions, summaries, and operators to the filter expression, on the 
functions tab, double-click elements.
Note: You can insert only functions that return a boolean value. For example, you cannot 
insert the function topCount because it returns a set of data. Filter expressions must 
resolve to a boolean in order to be valid.
If you want to include a value that is derived from a parameter, on the parameters tab, 
double-click a parameter.
Parameters are used to define prompts (p.117), drill-through reports (p.164), and 
master-detail relationships (p.170).
Tip: You can also type the filter expression directly in the Expression Definition box. When 
typing date values, the date must be in the YYYY-MM-DD format.
For more information about creating expressions, see "Using the Expression Editor"(p.223).
7. Click the validate expression button and click OK.
8. In the Usage box, specify whether the filter is required, optional, or not to be used.
9. If you created a detail filter, in the Application box, click one of the following options:
To apply the filter to individual records in the data source, click Before auto aggregation.
For example, you want to filter out individual orders of a specific product type within a 
product line that generated less than one thousand dollars in revenue.
To apply the filter to data after the query has grouped and summarized at the lowest level 
of detail, click After auto aggregation.
For example, you want to filter out product types within a product line that generated less 
than ten thousand dollars in revenue.
For example, you have a list that contains the data items Product line, Product type, and 
Revenue. The revenue values you see are aggregated to the product type level. If you create 
detail filter on Revenue and you choose to filter values before auto aggregation, you are 
filtering non-aggregated revenue values. If you choose to filter values after auto aggregation, 
you are filtering revenue values aggregated to the product type level.
Tip: If you are using a dimensional data source, after aggregation is always applied, because 
by definition, dimensional data is aggregated.
10.If you are filtering a summary, click the ellipsis points (...) under Scope and select the grouping 
level for which you want to apply the filter.
For example, a revenue report is grouped on product line and product type. You can choose 
to filter total revenue for either the product line or product type level.
If the query in which you are creating the summary filter is linked to more than one data 
container, the data item that you select as the grouping level must be grouped in all data 
containers linked to the query. Otherwise, the report will not run successfully.
Tip: If you want to filter at the overall level, do not click a level. For example, if a report has 
an overall footer that shows the total revenue for all products, by not choosing a level you will 
apply the filter to the footer. In addition, if you are using a dimensional data source, excluding 
a parent level excludes its children, and excluding all children excludes the parent.
11.Click OK.
Define a Slicer
Use slicers to create dimensional filters that reduce the data included in measure rollups. For 
example, a slicer is a filter that is applied to the cells but not the rows or columns in a crosstab.
A slicer member set is an expression that returns a set of members from the same dimension. You 
can create multiple slicer member sets if you want to filter across two or more dimensions. You 
cannot create multiple slicer member sets against the same dimension.
C# WPF PDF Viewer SDK to print PDF document in C#.NET
Highlight Text. Add Text. Add Text Box. Drawing Markups. Add Stamp Annotation. PDF Able to print a single PDF page. Provide the ability to select number of copies
add page numbers to pdf; add pages to pdf without acrobat
Chapter4: Working with Data
User Guide   107
You can add a child member of a report item as a slicer. For example, you create a crosstab with 
Product line as rows, Year as columns, and Revenue as the measure. You drag Sleeping Bags to the 
Slicer pane. When you run the report, all product lines appear in the crosstab, but a value appears 
only for the Camping Equipment row because Sleeping Bags is a child of Camping Equipment.
1. Open the report that you want.
2. Pause the pointer over the query explorer button and click the query to which you want to 
add a slicer.
3. Choose whether to create a slicer with one or more than one member:
To create a slicer with a single member, in the Insertable Objects pane, on the source tab, 
drag the member that you want to the Slicer pane.
To create a slicer with more than one member, on the toolbox tab, drag Slicer Member Set 
to the Slicer pane. Then, drag the members that you want to the Expression Definition 
You must join the members in the expression by using the 
function. For example, the 
following expression contains the Fax and Telephone members from the Order Method 
4. If you want to add members from another dimension, repeat step 3 to create a separate slicer 
member set.
Filtering Data Using an SAP BW Data Source
If you are working with an SAP BW data source, you must consider additional things when 
applying filters.
If you apply a filter and a sort to an item that corresponds to the leaf-level of a recursive hierarchy, 
siblings may appear in the report, although the aggregated values are correct. Siblings are 
characteristic values with the same parent of the filtered member.
Each level in an SAP BW hierarchy has an item with the same name as the level, and has a role of 
_businessKey. Such items are known as level identifiers. The level identifier must be an exact 
value, for the operators =, <, and > to work. For example, for the filter [Office] > 'Chicago' to 
work, the value 'Chicago' must exist in the data source. If you do not know the exact values, you 
can apply the filter to one of the attribute items associated with the level, such as 
[OfficeLongName] > 'C'. Filters on non-identifiers are possible, but they are slower because SAP 
BW is optimized for queries based on level identifiers.
When filtering time-related data, only the level identifier items of the time-related characteristics 
in SAP BW, such as 0CALDAY and 0CALMONTH, should be used for performing anything other 
than equality filters. All other (attribute) items in these hierarchies are formatted string 
representations of the characteristic values with which they are associated. These formatted values 
sort alphanumerically and not chronologically.
Ignoring the Time Component in Date Columns
Database systems use Date, Time, and Timestamp to represent date and time values. While a 
timestamp type holds a date and time component, an application may allow the RDBMS to 
default the time component. When rows are inserted, updated, or queried, the application may 
specify only a date value and leave the RDBMS to extend the value to include a default time 
(usually 00:00:00.000).
The challenge with a timestamp is when the application has no immediate interest in the time 
component. For example, the business question "How many orders were taken today?" implies 
all orders taken irrespective of what time in the day the order was booked. If the application 
defaulted the time component as it stored rows, the query used to answer the question returns the 
count of orders taken today. If the application stored the actual time component, the query likely 
returns no data, because the number of orders entered at midnight is probably zero.
Relying on dates defaulting the time can be dangerous if the application changes and starts to 
capture actual times. To avoid this problem, you can
108    Report Studio
Chapter4: Working with Data 
truncate the time by creating a derived column
convert the timestamp to a date
create a hi-low filter
Truncating the Time by Creating a Derived Column
In the Framework Manager model, create a derived column using a calculated expression that 
truncates the time from a timestamp, and returns a timestamp containing the original date and a 
default time. For example, if you use an Oracle data source, the following expression creates the 
derived column DATEONLY from COL1, where COL1 contains the values as stored by the 
application while DATEONLY contains the dates with the default time of 12:00:00 AM:
Select COL1,trunc(COL1) as DATEONLY from [SCOTT_TIGER].DATES
Tip: You can change the data format of the column to show only the date value by specifying 
Short for the Date Style property.
You can then apply filters to the DATEONLY column that would return the correct results. If you 
create a parameter in Report Studio that filters on this column, the default prompt will present a 
date and time control because the data type is still a timestamp.
Converting the Timestamp to a Date
In the Framework Manager model, define a calculation that uses the CAST function to convert the 
timestamp to a date. For example, the following expression converts the data type of the column 
COL1 to date:
If you create a parameter in Report Studio that filters on this calculation, the default prompt 
presents a date control.
Ignoring the Time by Creating a Hi-Low Filter
You can create a filter to ignore the time. In the Framework Manager model, create a filter in the 
form date-column between date-lowtime and date-hightime. For example, the following 
expression returns all values between 00:00:00:000 and 23:59:59:000 for a given day:
[SCOTT_TIGER].[DATES].[COL1] between
?p1? and cast(substring(?p1?,1,10),’23:59.59.000’,timestamp)
Sort Data
Organize data values in a report by specifying a sort order. Data can be organized in ascending or 
descending order based on the values in any data item.
If you are using a dimensional data source, you cannot sort data items from different dimensions 
that are intermixed. For example, you cannot sort on Data_Item1_Dimension1, 
Data_Item1_Dimension2, Data_Item2_Dimension1. If you do, an exception error occurs.
For SAP BW, each level in a hierarchy has an item with the same name as the level, and has a role 
of _businessKey. Such items are known as level identifiers.
For SAP BW, only the level identifier of all the time-related characteristics, such as 0CALDAY and 
0CALMONTH, should be used for sorting. All other (attribute) items in these hierarchies are 
formatted string representations of the characteristic values with which they are associated. These 
formatted values sort alphanumerically and not chronologically.
Tip: By level identifier, we are referring to a query item with the same name as the level that has 
the role of _businessKey. Each level in a SAP BW hierarchy has a level identifier.
1. Open the report that you want.
2. Click the data item on which you want to sort.
3. From the Data menu, click Sort Ascending or Sort Descending.
Chapter4: Working with Data
User Guide   109
An up arrow or down arrow appears beside the data item to indicate that a sort order has been 
Tip: To remove a sort order, click the column, and from the Data menu, click Don’t Sort.
When you specify a sort order for more than one column, the columns are sorted in the order that 
they were inserted in the report. For example, you add columns A, B, and C to a report and 
specify a sort order for each. When you run the report, column A is sorted first, followed by B and 
then C. You can change the order in which the columns are sorted.
Perform Advanced Sorting
You can perform advanced sorting in a report. For example, in a list, you can sort columns within 
groups and change the sort order of columns. In a crosstab, you can sort a row or column by 
another item, such as Order year by Revenue.
1. Open the report that you want.
2. Click a column.
In a crosstab, click the row or column for which you want to perform advanced sorting.
3. From the Data menu, click Advanced Sorting.
4. If you are sorting a list and you want to sort a column within a group, do the following:
In the Groups pane, under the Groups folder, expand the folder of the grouped column 
(p.43) that you want.
In the Data Items pane, drag the data items you want to sort to the Sort List folder.
Tip: You can also drag data items from the Detail Sort List folder.
Click the sort order button to specify ascending or descending order.
5. If you are sorting a list and you want to change the sort order of columns, in the Groups pane, 
change the order of columns in the Sort List folder of a group, or in the Detail Sort List folder.
Tip: Add items to the Detail Sort List folder to sort items that are not groups.
6. If you are sorting a crosstab, do the following:
From the Data Items pane, drag the item you want to sort on to the Sort List pane.
For example, you have a crosstab with Product line as rows, Order year as columns, and 
Revenue as the measure. To sort Order year by Revenue, drag Revenue to the Sort List 
Click the sort order button to specify ascending or descending order.
7. Click OK.
Create Sections
Create sections in a report to show a data item as the heading of a section. When you run the 
report, separate sections appear for each value.
Creating sections is similar to creating headers by grouping on a data item (p.43). The difference 
is that section headers appear outside the list, crosstab, chart, or repeater. In addition, you can 
group data items only in lists.
1. Open the report that you want.
2. Click the column that you want to show as a section heading.
3. Do one of the following:
From the Structure menu, click Section
If the column is in a list or repeater, this menu option will create sections without creating 
a master-detail relationship. This can improve performance when running the report.
If the column is in a crosstab or chart, this menu option will create sections using a 
master-detail relationship.
110    Report Studio
Chapter4: Working with Data 
From the Structure menu, click Section using Master/Detail.
This menu option creates sections using a master-detail relationship.
Sections are created, and a section header appears. The data container that contains the 
column used to create sections is embedded in a list.
4. If you want to add or remove section headers and footers, from the Structure menu, click List 
Headers & Footers, select or clear the appropriate check boxes, and click OK.
The section header and footer check boxes appear under Overall header.
Remove Sections
To remove sections and reinsert the data item used to create the sections to the data container, do 
the following:
1. From the View menu, click Page Structure.
2. Expand the page containing the data container with the section.
3. Expand Page Body until you see the data container in which you added the section.
The data container is nested in the List Column Body object of the List object that is created 
when you add a section.
4. Drag the data container to Page Body.
The data container appears as a node of Page Body.
5. Delete the List object.
6. From the View menu, click Page Design
7. In the Insertable Objects pane, click the data items tab.
8. Drag the data item that was used as a section header back into the data container.
9. If you created sections in a list without creating a master-detail relationship, click the data 
item and then click the group/ungroup button to ungroup the item.
For information about the page structure view, see "The Page Structure View"(p.82).
Add a Summary
Add a summary to provide an overview of data in a report. An example of a summary is the total 
amount billed on an invoice. You can add the following summaries to a report. 
Adds all existing values.
Selects the smallest existing value.
Selects the largest existing value.
Adds all existing values and then divides by the count of existing values.
Counts all existing values.
Specifies that the summary is defined within the expression that is used to 
populate the column. It is expected that the expression itself is an 
aggregation function and should not require modification to provide 
summary values.
Tip: You can view the expression in the Properties pane by double-clicking 
the Expression property under Data Item.
Summarizes data based on an expression you define.
Documents you may be interested
Documents you may be interested