Skip Headers

Oracle® Reports Building Reports 10g Release 2 (10.1.2) B13895-01 |
| Library | Product | Contents | Index

Previous | Next |

# 27 Building a Matrix with Group Above Report

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

Description of "Figure 27-1 Matrix with group above report output"

Concepts

- 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".

Data Relationships

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.

Layout

This report uses the Matrix with Group layout style.

Example Scenario

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.

- Add labels and lines for summaries.

- Add space between groups.

- 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.

## 27.1 Prerequisites for this example

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.

## 27.2 Create a matrix group data model and layout

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:

1. Launch Reports Builder (or, if already open, choose File > New > Report).

2. In the Welcome or New Report dialog box, select Use the Report Wizard, then click OK.

3. If the Welcome page displays, click Next.

4. On the Report Type page, select Create Paper Layout Only, then click Next.

5. On the Style page, type a Title for your report, select Matrix with Group, then click Next.

6. On the Data Source page, click SQL Query, then click Next.

7. 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: Copy and paste the code from the provided text file called`matrixgroup_code.txt` into the Data Source definition field. Click Query Builder to build the query without entering any code manually. Type the code in the Data Source definition field.

8. Click Next.

   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.

9. 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.

10. 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.

11. 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.

12. 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 `SUM` function. Hence, you should not use the Sum button in this instance.

13. 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.

14. On the Labels page, remove the label for SUM_SAL, then click Next.

15. 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

    Description of "Figure 27-2 Paper Design view for matrix with group above report"

16. Save the report as `matrixgroup_``your_initials``.rdf`.

## 27.3 Add labels and lines for summaries

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:

1. In the Paper Design view, click the Text tool in the tool palette.

2. Click in the open space just below the first department number and to the left of the first total.

3. Enter `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.

4. 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.

5. Click the Text tool in the tool palette.

6. Click in the open space just above the row summaries.

7. Enter `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.

8. 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

Description of "Figure 27-3 Matrix with group above report output with summary labels"

To add lines above column summaries

1. In the Paper Design view, click the Job Tot. label that you created in the previous section.

2. Shift-click the summaries to the right of Job Tot.

3. Click the Flex On button in the toolbar to set Flex mode on.

4. Click and drag Job Tot. and the summary fields down about 0.25 inches (0.5 centimeters).

5. Click the Paper Layout button in the toolbar to display the Paper Layout view.

6. In the Paper Layout view, note the two spaces that now appear just above the F_SumSUM_SALPerJOB and F_SumSUM_SALPerYEAR fields.

7. Click the Line tool in the tool palette.

8. Click and drag a line in the space above F_SumSUM_SALPerJOB.

9. Repeat steps 7 and 8 to create a line above F_SumSUM_SALPerYEAR.

Figure 27-4 Layout model with lines above column summaries

Description of "Figure 27-4 Layout model with lines above column summaries"

## 27.4 Add space between groups

Note that the output has no space between the groups.

To add more space:

1. 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.

2. Click the Year label to select it, then Shift-click the F_YEAR field to the right to select it, too.

3. Click and drag the F_YEAR field down about 0.25 inches (0.5 centimeters).

4. 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

Description of "Figure 27-5 Matrix group above report output with added space"

## 27.5 Create a Web layout

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:

1. Choose Tools > Report Wizard.

2. Select Create Web Layout only.

3. Click Finish.

4. Click the Web Source view button in the toolbar and review the Web source for your Web layout.

5. Choose Program > Run Web Layout to preview your Web layout.

   Notes: If Netscape 7.0 is your default browser, and the browser does not display, set the registry key `HKEY_CURRENT_USERS\Software\Oracle\Toolkit\Tkbrowser` to the default browser location. Ensure that the `BrowserName` and the `BrowserPath` keys reflect the correct values. For example: `BrowserName=Netscape 7`; `BrowserPath=C:\Program Files\Netscape\Netscape\Netscp.exe`. If Run Web Layout fails with an error related to the `major.minor` version, you will need to update the environment variables `CLASSPATH` or `REPORTS_CLASSPATH`, as follows: remove the 9.0.x `ORACLE_HOME` specification in the `oc4j.jar` file path (the `oc4j.jar` file path should specify only the 10g Release 2 (10.1.2) `ORACLE_HOME`).

## 27.6 Summary

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".