Skip Headers

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

Previous | Next |

# 17 Building a Header with Database Values Report

In this chapter, you will learn about reports with headers that include values queried from the database. By following the steps in this chapter, you can generate the report output shown in Figure 17-1.

Figure 17-1 Group left report output with database values in header

Description of "Figure 17-1 Group left report output with database values in header"

Concepts

In this example report, both the first and last department numbers found on each page are displayed in the page header.

Layout

This report uses one query and two groups. You'll also create two summary columns to provide the values for the header fields. To ensure unique field values for each page, you'll compute the values using the First and Last functions. The First function will return the first database value selected for a group, page, or report, and the Last function will return the last database value selected for a group, page, or report.

Layout

This report uses the default group left format with no modifications.

Example Scenario

In this example, you will create a report that displays and summarizes employee data by department. To make the report more readable, you decide to add a header to each page that indicates which departments appear on the page.

As you build this example report, you will:

- Create a data model and a group left layout.

- Add summary columns for the header data.

- Add a page heading that repeats on all pages with database values.

To see a sample header with database values report, open the examples folder named `headingdb`, then open the Oracle Reports example called `headingdb.rdf`. For details on how to access it, see "Accessing the Example Reports" in the Preface.

## 17.1 Prerequisites for this example

To build the example in this chapter, you must have access to the Human Resources sample schema (HR) provided with the Oracle Database. If you do not know if you have access to this sample schema, contact your database administrator.

## 17.2 Create a data model and a group left layout

When you are creating a single-query report, such as this one, you can use the Report Wizard to create the data model and layout simultaneously.

To create a data model and layout:

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 Group Left, 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 DEPARTMENT_ID, FIRST_NAME, LAST_NAME, JOB_ID, SALARY
       FROM EMPLOYEES
       ORDER BY DEPARTMENT_ID, EMPLOYEE_ID

   Note: You can enter this query in any of the following ways: Copy and paste the code from the provided text file called`heading_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 17.1, "Prerequisites for this example" describes the sample schema requirements for this example.

9. On the Groups page, click DEPARTMENT_ID and click the right arrow (>) to move this field to the Group Fields list, then click Next.

10. On the Fields page, click the double right arrows (>>) to move all of the fields to the Displayed Fields list, then click Next.

11. On the Totals page, click Next.

12. On the Labels page, change the labels as follows, then click Next:

    Fields | Labels
    --- | ---
    DEPARTMENT_ID | `Department`
    JOB_ID | `Job`

13. On the Template page, click Finish to display your report output in the Paper Design view.

14. In the Paper Design view, click the first number value underneath the Salary label.

    Tip: If you are familiar with format mask syntax, you could now right-click the field values, choose Property Inspector, and choose or manually enter a value for the Format Mask property.

15. Click the Currency button in the toolbar. A currency symbol immediately appears next to all of the values.

16. Click the Add Decimal Place button twice. Two decimal places are added to the right of the decimal point.

17. Resize the field by clicking and dragging the rightmost handle of the field approximately 0.5 inches (1.5 centimeters) to the left.

18. Shift-click the Salary label itself.

19. Click the Align Right button in the toolbar. All of the values and the Salary label are immediately right aligned.

20. Click the first department number value under the Department label to select it.

21. Click the Align Center button in the toolbar.

    Your report should look something like this:

    Figure 17-2 Group left report output with values formatted

    Description of "Figure 17-2 Group left report output with values formatted"

22. Save your report as `headingdb_``your_initials``.rdf`.

## 17.3 Add summary columns for the header data

For the header that you want to create (that is, departments found on this page), you need to create two summary columns that compute the values you need in order to populate the header.

1. In the Report Editor, click the Data Model button in the toolbar to display the Data Model view.

2. Click the Summary Column tool in the tool palette, then click in an open area of the Data Model view to create a summary column.

3. Double-click the new summary column object (CS_1) to display the Property Inspector, and set the following properties:

   - Under General Information, set the Name property to FirstDeptRec.

   - Under Summary, set the Function property to First, set the Source property to DEPARTMENT_ID, set the Reset At property to Page.

4. Create a second summary column, and set its properties as follows:

   - Under General Information, set the Name property to LastDeptRec.

   - Under Summary, set the Function property to Last, set the Source property to DEPARTMENT_ID, set the Reset At property to Page.

   Your data model should now look like this:

Figure 17-3 Data Model with Summary Columns for Header

Description of "Figure 17-3 Data Model with Summary Columns for Header"

## 17.4 Add a page heading

Now that you have the data for the header, you need to add the corresponding layout objects to the margin area of the report.

1. In the Paper Design view, from the font lists in the toolbar, choose Arial (Western), point size 10.

2. In the Paper Layout view, click the Edit Margin button in the toolbar.

3. Click the Text tool in the tool palette.

4. Draw an area somewhere to the right of the logo image and type the following text:

       Departments found on this page: &FirstDeptRec through &LastDeptRec

5. Move to an open area of the Paper Layout view and click the mouse button to exit text mode. Notice that the text object you just created is still selected, you can now adjust its positioning with the arrow keys. If you click in an open area a second time, the object is deselected.

6. Choose Program > Run Paper Layout to run your report.

   Your report should now look like this:

   Figure 17-4 Group left report output with database values in the header

   Description of "Figure 17-4 Group left report output with database values in the header"

7. Save your report.

## 17.5 Summary

Congratulations! You have successfully created a header with database values report. You now know how to:

- create a data model and a layout.

- add summary columns to populate a header.

- add a heading that repeats on all pages with database values.

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