Oracle® Reports Building Reports
10g Release 2 (10.1.2)
In this chapter, you will learn about nested matrix with group above reports. By following the steps in this chapter, you can generate the report output shown in Figure 27-1.
Figure 27-1 Matrix with group above report output
A matrix with group above report is a combination of a matrix and a group above report layout. Essentially, a matrix report is printed for each master group record. A matrix with group is similar to the multiquery nested matrix, except that in a matrix with group report, the parent exists above the cross product. In a multiquery nested matrix report with groups, the parent/child relationship exists within the across or down dimension of the cross product.
For additional conceptual information, see Section 2.1.8, "About matrix with group reports".
This example of a matrix with group above report uses one query and at least five groups. At least one group is placed above the cross product to serve as the Master group.
This report uses the Matrix with Group layout style.
In this example, you will create report that cross tabulates salaries by department and by job for each year. The result is a group report where year is the master and the detail is a matrix with job functions listed across the top, departments down the side, and sums of salaries in the cells. Thus, you can quickly determine the sum of all of the salaries for clerks in department 20 for any particular year.
As you build this example report, you will:
Create a matrix group data model and layout for a single query.
Create a Web layout without changing the paper layout.
To see a sample matrix with group above report, open the examples folder named
matrixgroup, then open the Oracle Reports example named
matrixgroup.rdf. For details on how to access it, see "Accessing the Example Reports" in the Preface.
To build the example in this chapter, you must have access to the SCOTT sample schema provided with the Oracle Database. If you do not know if you have access to this sample schema, contact your database administrator.
Since this report is a single-query report, it is easiest to build it with the Report Wizard.
To create the data model and layout with the Report Wizard:
Launch Reports Builder (or, if already open, choose File > New > Report).
In the Welcome or New Report dialog box, select Use the Report Wizard, then click OK.
If the Welcome page displays, click Next.
On the Report Type page, select Create Paper Layout Only, then click Next.
On the Style page, type a Title for your report, select Matrix with Group, then click Next.
On the Data Source page, click SQL Query, then click Next.
On the Data page, enter the following
SELECT statement in the Data Source definition field:
SELECT TO_CHAR(HIREDATE, 'YY') YEAR, DEPTNO, JOB, SUM(SAL) FROM EMP GROUP BY TO_CHAR(HIREDATE, 'YY'), DEPTNO, JOB
Note:You can enter this query in any of the following ways:
Note:If you are not already connected to a database, you will be prompted to connect to the database when you click Query Builder or Next. Ensure that you connect to a database that has the appropriate schema for this example. Section 27.1, "Prerequisites for this example" describes the sample schema requirements for this example.
On the Groups page, click YEAR in the Available Fields list and click the right arrow (>) to move this field to the Matrix Group Fields list, then click Next.
On the Rows page, click DEPTNO in the Available Fields list and click the right arrow (>) to move this field to the Matrix Row Fields list, then click Next.
On the Columns page, click JOB in the Available Fields list and click the right arrow (>) to move this field to the Matrix Column Fields list, then click Next.
On the Cell page, click SUM_SAL in the Available Fields list and click the right arrow (>) to move this field to the Matrix Cell Fields list, then click Next.
Note:In this case, the query itself performs the summary through the
On the Totals page, click SUM_SAL in the Available Fields list and click Sum to move this field to the Matrix Totals list, then click Next.
On the Labels page, remove the label for SUM_SAL, then click Next.
On the Template page, select No Template, then click Finish to display your report output in the Paper Design view. It should look something like this:
Figure 27-2 Paper Design view for matrix with group above report
Save the report as
To make your report more readable, it would be useful to add labels for the row and column summaries. It would also be nice to have lines above the column summaries to better distinguish them from the cell values.
To add labels:
In the Paper Design view, click the Text tool in the tool palette.
Click in the open space just below the first department number and to the left of the first total.
Job Tot.:, then click in a blank area of the Paper Design view. If you perform this step correctly, the label should now appear for all of the column summaries in the report.
If necessary, use the arrow keys to better align the label with the summaries.
Tip:If you want more precise movements, turn off Snap to Grid in the View menu. It may also be helpful for this step to turn off Flex mode by clicking the Flex Off button in the toolbar.
Click the Text tool in the tool palette.
Click in the open space just above the row summaries.
Dept. Tot., then click in a blank area of the Paper Design view. If you perform this step correctly, the label should now appear for all of the column summaries in the report.
If necessary, use the arrow keys to better align the label with the summaries.
Figure 27-3 Matrix with group above report output with summary labels
To add lines above column summaries
In the Paper Design view, click the Job Tot. label that you created in the previous section.
Shift-click the summaries to the right of Job Tot.
Click the Flex On button in the toolbar to set Flex mode on.
Click and drag Job Tot. and the summary fields down about 0.25 inches (0.5 centimeters).
Click the Paper Layout button in the toolbar to display the Paper Layout view.
In the Paper Layout view, note the two spaces that now appear just above the F_SumSUM_SALPerJOB and F_SumSUM_SALPerYEAR fields.
Click the Line tool in the tool palette.
Click and drag a line in the space above F_SumSUM_SALPerJOB.
Repeat steps 7 and 8 to create a line above F_SumSUM_SALPerYEAR.
Figure 27-4 Layout model with lines above column summaries
Note that the output has no space between the groups.
To add more space:
In the Paper Layout view, click the Confine Off and Flex On buttons in the toolbar to set Confine mode off and Flex mode on.
Click the Year label to select it, then Shift-click the F_YEAR field to the right to select it, too.
Click and drag the F_YEAR field down about 0.25 inches (0.5 centimeters).
Click the Paper Design button in the toolbar to preview your report output in the Paper Design view.
Figure 27-5 Matrix group above report output with added space
Now that you have created a paper layout, suppose that you decide to have a Web layout for this report. You can quickly create a Web layout in the Report Wizard without changing your paper layout.
To create a Web Layout:
Choose Tools > Report Wizard.
Select Create Web Layout only.
Click the Web Source view button in the toolbar and review the Web source for your Web layout.
Choose Program > Run Web Layout to preview your Web layout.
Congratulations! You have successfully created a matrix group above report. You now know how to:
create a matrix group above report with a single-query data model.
add labels and line for summaries.
add some white space between the master records.
create a Web layout without changing the paper layout.
For more information on any of the wizards, views, or properties used in this example, refer to the Oracle Reports online Help, which is available in Reports Builder or hosted on the Oracle Technology Network (OTN), as described in Section 3.1.1, "Using the Oracle Reports online Help".