Using application logic and Report Generator

Related Topics 	Where am I?

About application logic and Report Generator

About generated application logic created by Report Generator

About user-modified generated application logic and Report Generator

Modifying generated application logic created by Report Generator

Capturing application logic from Oracle Reports applications

About user-defined application logic and Report Generator

Entering user-defined event code for Report Generator

Entering user-defined named routines for Report Generator

Modifying user-defined application logic for Report Generator

About template application logic and Report Generator

Entering template event code for Report Generator

Entering template named routines for Report Generator

Event code generated by Report Generator

Alphabetical list of Report Generator events


About application logic and Report Generator

Related Topics 	Where am I?

Application logic is the name given to both code created by the Oracle Designer Generators and code you enter by hand.

Report Generator supports the following types of application logic:

Type of application logic	Description
generated	Event code and named routines in the generated application that have been created by a Generator from generatable application logic.
generatable	Code that a Generator may or may not generate. You can view generatable event code (but not named routines) in the Design Editor, but the code is not saved in the repository.
user-defined	Event code and named routines you define using the Design Editor or capture from an application. In either case, the code is saved in the repository.
template	Code in a template file that a Generator includes in the generated application.
user-modified generated	Modifications to generated code made using the target design-time environment. Captured and saved in the repository as user-modified generated application logic.
user-modified user-defined	Modifications to generated code made using the target design-time environment. Captured and saved in the repository as user-defined application logic.
hand-coded	New code added into the generated application using the target design-time environment. Captured and saved in the repository as additional user-defined application logic.


About generated application logic created by Report Generator

Related Topics 	Where am I?

Generated application logic consists of the event code and named routines that are generated by Report Generator. Report Generator generates application logic when you define:

•	a drilldown report

•	a font style for an item using the Formatting property, e.g. bold, underline, etc.

•	validation for a parameter

•	a bookmark for an HTML or PDF report

The Before Report event creates Y2K compliant code each time you generate a report. Generated application logic is not stored in the repository and is overwritten each time you generate the report.

Generated event code

Generated event code contains the standard sections of trigger code and any called program units that are generated by Report Generator.

Generated code is identified by a unique comment (or tag), e.g.:

CG$PV001

Although generated application logic is not saved to the repository, the Design Editor Navigator displays the following icon for generated event code:

Generated named routines

Generated named routines are the standard program units that Report Generator creates at report-level in the generated report. Generated named routines are not saved to the repository and are not represented in the Design Editor Navigator window.


About user-modified generated application logic and Report Generator

Related Topics 	Where am I?

Report Generator generates application logic each time you generate a report. For more information, refer to About generated application logic created by Report Generator.

Using Report Builder, you can modify this generated application logic. For information about how to do this, refer to Modifying generated application logic created by Report Generator.

If you intend to generate the report again using Report Generator, you must save the modifications that you made to the code back to the repository using the Capture Application Logic utility. Saving the modified application logic preserves the changes you make, which will be incorporated next time the module is generated. For more information, refer to Capturing application logic from Oracle Reports applications.

The Design Editor Navigator displays the following icon for user-modified event code:


Modifying generated application logic created by Report Generator

Related Topics 	Where am I?

Report Generator generates application logic each time you generate a report.  About

You can modify this generated application logic using Report Builder and save the user-modified application logic back to the repository.  About

To modify generated application logic:

1.	Start Report Builder.

2.	Open the generated report.

3.	Open the generated application logic in the PL/SQL Editor.

4.	If you intend to generate the report again using Report Generator, add text to the comment generated by Report Generator. For example, you might add the text 'modified' between the comment symbol and the start of the generated tag:

-- modified CG$PV0001

5.	Modify the generated application logic as required.

6.	Click [image] to save the modified code.

7.	In the Design Editor, use the Capture Application Logic utility to save the modified application logic back to the repository.  How

Caution:	If you do not save the modified application logic back to the repository, the next time you generate the report your modifications will be overwritten.


Capturing application logic from Oracle Reports applications

Related Topics 	Where am I?

To capture application logic when capturing non-generated reports into the repository:

1.	Select Generate→Capture Design of→Report to display the Capture Report Design dialog box.

2.	Specify the report containing the application logic you want to capture.

3.	Select the Capture BOTH module design and application logic radio button to capture the report and associated application logic into the repository as a new module.

4.	Click Start to capture the report and associated application logic into the repository.

To capture hand-coded and modified generated application logic from generated reports:

1.	In the Design Editor, select the existing repository module from which the modified report was originally generated.

2.	Select Generate→Capture Application Logic... to display the Reports Capture Application Logic dialog box.

3.	Specify the report containing the application logic you want to capture.

The Update application logic of existing repository module radio button is permanently selected to enable you to capture hand-coded application logic and user-modified generated application logic into the existing repository module.

4.	Click Start to capture the application logic into the repository.

Notes

•	Report Generator will attempt to capture any user-modified generated event code or user-defined event code. If this Oracle Reports event code does not have generated tags, the event code will not be captured (unless it is a window-level trigger). All other code will be captured against the module's window object.

•	To capture new event code and attach it to any object (other than the window), create placeholder application logic against the repository object prior to generation:

BEGIN

NULL;

END;

This placeholder code allows Report Generator to generate successfully. After generation, replace the placeholder code (using Report Builder) with your own code, between the generated tags:

-- USER ENTERED APPLICATION LOGIC CC$.1000071233.MA..ARGUMENT1

BEGIN

-- Altered existing code comment

srw.message(1234,'New code added');

END;

-- USER ENTERED APPLICATION LOGIC CC$.1000071233.MA..ARGUMENT1

•	There are some circumstances when Report Generator will not update properties of repository objects. For more information, refer to When are repository objects not updated during generation and design capture.


About user-defined application logic and Report Generator

Related Topics 	Where am I?

User-defined application logic can be either or both:

•	code you enter into the repository using the Design Editor and the Logic Editor

•	code you enter using Report Builder and then capture into the repository

When you enter user-defined application logic in the Design Editor, you specify it as being one of the following:

•	event code, which is generated as Oracle Reports trigger code

•	a named routine, which is generated as an Oracle Reports program unit and called from triggers or other program units


Entering user-defined event code for Report Generator

Related Topics 	Where am I?

You can enter user-defined event code against windows, items, action items, and arguments for Report Generator. You can also define where the new code is sequenced in relation to other code (generatable event code and other user-defined event code) generated for the same event.

To enter user-defined event code for Report Generator:

1.	In the Design Editor, create user-defined event code.  How


Entering user-defined named routines for Report Generator

Related Topics 	Where am I?

You can enter user-defined named routines against windows, items, action items, and arguments for Report Generator.

To enter user-defined named routines for Report Generator:

1.	In the Design Editor, create a user-defined named routine.  How

2.	Specify the type of routine (e.g. Procedure).

Note that the name you give to each named routine of type Procedure or type Function must be unique within the module. Two named routines comprising a Package Specification/Package Body pair must have the same name, but that name must also be unique within the module.


Modifying user-defined application logic for Report Generator

Related Topics 	Where am I?

Report Generator generates application logic each time you generate a report.  About

You can modify this generated application logic using Report Builder and save the user-modified application logic back to the repository.  About

To modify user-defined application logic:

1.	Start Report Builder.

2.	Open the generated report.

3.	Open the program unit of the user-defined application logic you want to modify.

4.	You can add any text between the two User Entered Application Logic tags generated by Report Generator. For example, you might add comments or code between the tags:

-- USER ENTERED APPLICATION LOGIC CC$.1000071233.WN..WIN

-- Repos User Defined Code

BEGIN

-- Altered existing code comment

srw.message(1234,'New code added in an existing segment');

-- New Code

NULL;

END;

-- USER ENTERED APPLICATION LOGIC CC$.1000071233.WN..WIN

5.	Modify the user-defined application logic that exists on the module.

6.	Click [image] to save the modified code.

7.	In the Design Editor, use the Capture Application Logic utility to save the modified application logic back to the repository.  How

Caution:	If you do not save the modified application logic back to the repository, the next time you generate the report your modifications will be overwritten.

Note:	If you add any text after the second User Entered Application Logic tags, a new program unit of application logic will be created. The first line of text will become the description, and anything else before the code will be considered the comment.


About template application logic and Report Generator

Related Topics 	Where am I?

Template application logic consists of event code and named routines (i.e. report triggers and program units) that you create in the template report. Create application logic in a template report to make event code and named routines available to all reports generated using that template.

You can define template event code against the following Oracle Reports triggers:  How

•	Before Report

•	After Report

•	Between Pages

•	Before Parameter Form

•	After Parameter Form

For more information about these triggers, refer to Report triggers in the Oracle Reports help system.

During generation, Report Generator merges the event code that you defined in the template with the other types of application logic that are generated for the event.

You can also define event code against boilerplate objects in the margin, header, and trailer regions of the template report.  How

Note that Report Generator copies the event code for the boilerplate object into the generated report; it is not merged with the other types of application logic.

You can also define named routines in a template report.  How

Report Generator copies named routines from the template report straight into the generated report, provided the named routines have unique names. If the template named routine has the same name as a named routine on the module, a warning message will display. The named routine present on the module will overwrite the template named routine if their names are the same.


Entering template event code for Report Generator

Related Topics 	Where am I?

You can define event code in a template report to make it available to all reports that are generated using that template.  About

You can also define the sequence of the template event code in relation to other segments of event code that are defined for the same event e.g., user-defined event code.

To define event code in a template report:

1.	Start Report Builder.

2.	Open the template report.

3.	In the Object Navigator, expand the Report Triggers node.

4.	Double-click the PL/SQL icon next to the trigger (or event) to which you want to add event code.

5.	Enter the code for the trigger.

6.	If you want a block placed before segments of event code that are defined for the same event, add the following line at the beginning of the code:

-- CGAP$SEQUENCE_BEFORE

Or, if you want a block placed after segments of event code that are defined for the same event, add the following line at the beginning of the code:

-- CGAP$SEQUENCE_AFTER

Should you forget to tag a piece of template logic, it will be placed as a BEFORE code segment. The CGAP$SEQUENCE_BEFORE tag will then be added to the segments description:

-- TEMPLATE DERIVED CODE

-- CGAP$SEQUENCE_BEFORE

srw.message(1234,'New code added in an existing segment');

-- New Code

NULL;

END;

-- TEMPLATE DERIVED CODE

Note:	Wrap all blocks in Template Derived Code tags. If you only have one block, the compiler will do this for you, but if you have multiple blocks, the compiler will wrap the blocks and treat them as a single block.

7.	Compile the code and close the PL/SQL Editor.

8.	Save the template report.


Entering template named routines for Report Generator

Related Topics 	Where am I?

You can define named routines in a template report to make it available to all reports that are generated using that template.  About

To define a named routine in a template report:

1.	Start Report Builder.

2.	Open the template report.

3.	In the Object Navigator, select the Program Units node.

4.	Click the [image] toolbar button to display the New Program Unit dialog box.

5.	Enter a name for the program unit (routine) and select the program type, e.g. Procedure.

6.	Click OK.

7.	Enter the code for the program unit.

8.	Compile the code and close the PL/SQL Editor.

9.	Save the template report.

Note:	Each named routine must have a unique name.


Event code generated by Report Generator

Related Topics

Generated event code	Related Topics
Call Child for drilldown	About Drilldown reports
PL/SQL for 'Formatting' property e.g. Bold, Underline, etc	Repository item properties used by Report Generator
Validate the parameter value	Validating values entered in generated parameters


Alphabetical list of Report Generator events

Related Topics

After Parameter Form

After Report

Before Parameter Form

Before Report

Between Pages

Drilldown

Format Trigger

Formular

Parameter Validation


 After Parameter Form event

Related Topics

The After Parameter Form event occurs after the Runtime Parameter Form is displayed. You can define code for this event against windows in the repository.

Note:	You can also define code for this event by creating application logic in the template report.

During generation, Report Generator adds After Parameter Form event code to the Oracle Reports After Parameter Form trigger of the generated report.

For more information, refer to Report triggers in the Oracle Reports help system.


 After Report event

Related Topics

The After Report event occurs after you exit the Runtime Previewer or Live Previewer, or after report output is sent to a specified destination, such as a file, a printer, or a mailid. You can define code for this event against windows in the repository.

Note:	You can also define code for this event by creating application logic in the template report.

During generation, Report Generator adds After Report event code to the Oracle Reports After Report trigger of the generated report.

For more information, refer to Report triggers in the Oracle Reports help system.


 Before Parameter Form event

Related Topics

The Before Parameter Form event occurs before the Runtime Parameter form is displayed. You can define code for this event against windows in the repository.

Note:	You can also define code for this event by creating application logic in the template report.

During generation, Report Generator adds Before Parameter Form event code to the Oracle Reports Before Parameter Form trigger of the generated report.

For more information, refer to Report triggers in the Oracle Reports help system.


 Before Report event

Related Topics

The Before Report event occurs before the report is executed but after queries are parsed and data is fetched. You can define code for this event against windows in the repository.

Note:	You can also define code for this event by creating application logic in the template report.

During generation, Report Generator adds Before Report event code to the Oracle Reports Before Report trigger of the generated report.

For more information, refer to Report triggers in the Oracle Reports help system.


 Between Pages event

Related Topics

The Between Pages event occurs before each page of the report is formatted, except the very first page. You can define code for this event against windows in the repository.

Note:	You can also define code for this event by creating application logic in the template report.

During generation, Report Generator adds Between Pages event code to the Oracle Reports Between Pages trigger of the generated report.

For more information, refer to Report triggers in the Oracle Reports help system.


 Drilldown event

Related Topics

The drilldown event occurs when a button that drills down to another report is clicked. You can define code for this event against action items in the repository.

Add code to the drilldown event whenever you specify code to be executed during the button navigation from the parent report to the child report. This is available irrespective of whether the drilldown occurs from a module network, multiple windows or by adding a navigation action item

During generation, Report Generator adds drilldown event code to the button that performs the drilldown.

For more information about drilldown reports, refer to About Drilldown reports.


 Format Trigger event

Related Topics

The Format Trigger event occurs before an object is formatted. You can define code for this event against items in the repository.

During generation, Report Generator adds Format Trigger event code to the Oracle Reports Format trigger of the generated field.

For more information, refer to Format trigger in the Oracle Reports help system.

Note:	If you only want to apply simple formatting to an item, for example color it blue or underline it, use the item Formatting repository property. Refer to Repository item properties used by Report Generator for more information.


 Formular event

Related Topics

The Formular event occurs when a formula or placeholder column is populated. You can define code for this event against items in the repository.

During generation, Report Generator adds Formular event code to the Oracle Reports Formula trigger of the generated field.

For more information, refer to Formula in the Oracle Reports help system.


 Parameter Validation event

Related Topics

The Parameter Validation event occurs when parameter values are specified on the command line and when the Runtime Parameter Form is accepted. You can define code for this trigger against module arguments in the repository.

During generation, Report Generator adds Parameter Validation event code to the Oracle Reports Validation trigger of the generated parameter.

For more information, refer to Validation trigger in the Oracle Reports help system.


 Generate Report dialog box

Related Topics

Module

The Short Name of the module selected for generation.

Default Template - Name

To use a custom template to generate the report, enter the name of the template. You can use the Browse button to search for a template.

The value of the window Template/Library Object takes precedence over the value entered in this field.

If you do not want to use a template report you must make sure that both this field and the Template/Library Object property are not set.

Default Template - Browse button

To search for the template used to generate the report, click Browse.

Default Template - Reset button

To reset the default template name to the value of the LAYREP preference, click Reset.

Passwords - Password For Runtime Database Users

To specify the account used to run the generated report, enter the password of the user.

You can specify the username and connect string of this user by clicking Options.

Password - Role Password

To specify that the user of the generated report must enter a role password to run the report, enter the password.

This field is only available if you specified a database role in the ROLENM preference.

Include Module Network

To generate modules below this module in the repository module network, check this check box.

Generate Attached Libraries

To generate attached libraries during generation, check this check box.

Note that an attached library will only be generated if its Language property is set to one of the following:

•	the same as the Language property of the module being generated

•	Oracle Common Library

Post Generation

Use the Post Generation options to specify what happens when generation is complete.

Post Generation - Commit

Select this option to update repository objects when generation is complete.

Note that there are some circumstances when Report Generator will not update properties of repository objects. For more information, refer to When are repository objects not updated during generation and design capture.

Post Generation - Revert

Select this option if you do not want to update repository objects with the property settings used during generation.

Post Generation - Browse/Edit mode

Select this option to activate Post Processing Mode, which enables you to choose how to process proposed repository changes.

For more information about Post Processing Mode, refer to About the Design Editor Post Processing Mode.

Start button

To start Report Generator, click Start.

Options button

To specify where to save the generated report, the location of templates, and how to run the generated report, click Options.


 Report Generator Options dialog box

Related Topics

Source - File System

Select this option if you want those files that are required during generation to be retrieved from the filesystem and not from the repository.

Source - File System Directory

Specify the location of files required during generation (e.g. template reports). You can use the Browse button to search for a directory.

Source - Repository

Select this option if you want those files that are required during generation to be retrieved from the repository and synchronized with files in the filesystem before being used. For more information about storing source files in the repository, refer to About storing files in the repository for use during generation.

Source - Repository Folders

Specify the repository folder containing the files required during generation. To specify multiple folders, separate the folder names with commas. Multiple folders are searched in the order in which you specify them.

For more information about storing source files in the repository, refer to About storing files in the repository for use during generation.

Target - Destination of generated files

To save generated files in a specific directory on the filesystem, enter the drive and directory you require. Alternatively, click Browse to select the location.

If no location is specified, generated files are saved to the working directory of the program item or shortcut used to start Oracle Designer. The default location is <ORACLE_HOME>\BIN\

Note that if you specify a directory for the Implementation Name module property, Report Generator ignores the directory that you specify in this field.

Target - Upload generated output to Repository

To save generated files in the repository folder mapped to the directory specified in the Destination of generated files field, check this checkbox. If a repository folder is not mapped to the specified directory, the file is not saved in the repository.

For more information about saving generated files in the repository, refer to About storing generated files in the repository after generation.

Runtime Database User - Name

To specify the account to use to run the generated report, enter the name of the runtime database user.

To specify the password of this user, click OK and then enter the password on the Generate Report dialog box.

Runtime Database User - Connect String

To specify the account to use to run the generated report, enter the name of the database.

To specify the password of the specified user on this database, click OK and then enter the password on the Generate Report dialog box.


 Capture Report Design dialog box

Related Topics

Target container

Specifies the container into which to capture the report.

Destination Module

To capture a report into a new repository module, enter the short name for the repository module that will be created by the design capture process.

To capture a report and merge it with an existing repository module, use this field to specify the name of the existing module. During design capture, Report Generator prompts you to confirm that you want to merge the existing module and the captured module.

File - Name

To identify the report application that you want to capture, enter the name and location of the report definition file (.RDF). You can use the Browse button to search for the report.

File - Browse button

To search for the report that you want to capture, click Browse.

Capture Mode - Capture BOTH module design and application logic radio button

To capture a report and its associated application logic, select this radio button.

This radio button is not available if you chose Generate→Capture Application Logic.

Capture Mode - Capture ONLY module design radio button

To capture a report without capturing its associated application logic, select this radio button.

This radio button is not available if you chose Generate→Capture Application Logic.

Additional Containers

Use this field to specify additional containers in which to locate objects referenced by the report being captured. Use a comma to separate container names.

Report Generator captures the report into the specified target container. If the objects being captured refer to other objects (e.g. tables, languages, attached libraries, reusable module components) that are not in the target container, Report Generator attempts to locate the referenced objects by searching the specified additional containers.

Note the following:

•	Report Generator does not update or create referenced objects in additional containers during design capture.

•	Referenced objects must be visible in the current workarea.

•	Report Generator searches for referenced objects in the additional containers in the order in which you enter the containers in the field.

•	If referenced tables and languages do not exist in either the target container or the additional containers, Report Generator is unable to capture the report.

•	If referenced reusable module components do not exist in either the target container or the additional containers, Report Generator captures the report and creates new reusable module components in the target container.

•	If referenced attached libraries do not exist in either the target container or the additional containers, Report Generator captures the report but does not capture or create the attachment.

Additional Containers - Browse button

To search for the container containing referenced objects, click Browse.

Post Capture

Use the Post Capture options to specify what happens when design capture is complete.

Post Capture - Commit

Select this option to update repository objects when design capture is complete.

Note that there are some circumstances when Report Generator will not update properties of repository objects. For more information, refer to When are repository objects not updated during generation and design capture.

Post Capture - Browse/Edit mode

Select this option to activate Post Processing Mode, which enables you to choose how to process proposed repository changes.

For more information about Post Processing Mode, refer to About the Design Editor Post Processing Mode.

Create on Diagram after Capture

To automatically display a module diagram showing the module definition as captured into the repository at the end of the design capture process, select this check box.

Start button

To capture the design of the selected report, click Start.

Options

To display the Report Design Capture Options dialog box, click Options.


 Capture Reports Design Options dialog box

Related Topics

Capture Library Links checkbox

Check this checkbox to capture the existence of library attachments in the report being captured as links in a repository module network. For the link to be created, a repository library module with the same name (i.e. unique Implementation Name, or Short Name if the module does not have an Implementation Name) as the library attachment must have already been defined and the library attachment's Comment property must not contain the string CG$IGNORE_ON_DESIGN_CAPTURE.

Design capture log file

Specifies the name (and optionally, the location) in which to save a report detailing the objects that have been captured into the repository during design capture. If you do not specify a name in this field, no file is created.

Design capture log file - Browse button

To view and select from a list of existing design capture log files and locations, select this button.


 Reports Capture Application Logic dialog box

Related Topics

Target container

Displays the container into which to capture the application logic.

Destination Module

Displays the name of the currently selected repository module into which application logic will be captured.

File - Name

Specifies the name of the file from which application logic will be captured into the repository module specified in the Destination module field.

File - Browse Button

Select this button to locate the file from which you want to capture application logic.

Capture Mode - Capture BOTH module design and application logic radio button

This option is not available.

Capture Mode - Capture ONLY module design radio button

This option is not available.

Capture Mode - Update application logic of existing repository module

This option is permanently selected when capturing application logic.

Additional Containers

This option is not available.

Additional Containers - Browse button

This option is not available.

Post Capture

Use the Post Capture options to specify what happens when application logic capture is complete.

Post Capture - Commit

Select this option to update repository objects when application logic capture is complete.

Note that there are some circumstances when Report Generator will not update properties of repository objects. For more information, refer to When are repository objects not updated during generation and design capture.

Post Capture - Browse/Edit mode

Select this option to activate Post Processing Mode, which enables you to choose how to process proposed repository changes.

For more information about Post Processing Mode, refer to About the Design Editor Post Processing Mode.

Create on Diagram after Capture

This option is not available.

Start button

Select this button to capture application logic from the file specified in the Destination Module field.

Options button

Select this button to display the Reports Capture Application Logic Options dialog box.


Reports Capture Application Logic Options dialog box

Related Topics

Capture Library Links checkbox

Not available.

Design Capture Log File

Specifies the name (and optionally, the location) in which to save a text file detailing the objects that have been captured into the repository during design capture. If you do not specify a name in this field, no file is created.

Browse button

Select this button to locate an existing log file you want to be overwritten during the capture of application logic.


 Repository application system properties used by Report Generator

Related Topics

Application system property	Used by Report Generator	Related topics
Name	Displays the name as boilerplate text in the generated report.  Make sure that the template contains the CG$AN object.	Adding generator objects to template reports
Parent	Not used by Report Generator.
Title	Displays the title as boilerplate text in the generated report.  Make sure that the template contains the CG$AT object.	Adding generator objects to template reports
Status	Not used by Report Generator.
Authority	Not used by Report Generator.
Owner	Not used by Report Generator.
Data Warehouse	Not used by Report Generator.
Documentation
Priorities	Not used by Report Generator.
Constraints	Not used by Report Generator.
Comment	Not used by Report Generator.
Summary	Not used by Report Generator.
Objectives	Not used by Report Generator.
Description	Not used by Report Generator.
Notes	Not used by Report Generator.


 Repository module properties used by Report Generator

Related Topics

Module property	Used by Report Generator	Related topics
Short Name	Displays the short name as boilerplate text in the generated report.  Make sure that the template contains the CG$MS object. The Short Name also defines the name of the generated report definition file (.rdf) whenever no value is specified for the Implementation Name property.	Adding generator objects to template reports
Name	Displays the short name as boilerplate text in the generated report.  Make sure that the template contains the CG$MN object.	Adding generator objects to template reports
Language	Specifies the type of application to generate from this module.  To create a module for report generation, set this property to Oracle Reports.	You can also generate reports from other module languages such as Forms and Visual Basic by choosing Generate→Generate Module As
Purpose	Displays the purpose as boilerplate text in the generated report.  Make sure that the template contains the CG$MP object.	Adding generator objects to template reports
Implementation Name	Defines the name of the generated report definition file (.rdf). If you do not specify an Implementation Name, the Short Name property is used instead. If you restricted the length of generated filenames, ensure that the Implementation Name does not exceed the length that you specified.
Module Type	Specifies the type of module to generate. Options are: • Default to generate a report module (.rdf) • Library to generate a library module (.pll) Report Generator does not generate menu modules.	About generated reports and PL/SQL library modules)
Display
Top Title	Report Generator uses this property as the title of the report if no value is specified for the Window Title property. Make sure that the template contains the CG$MT object.	Adding generator objects to template reports
Bottom Title	Defines the title that appears on the trailer page of the generated report. Make sure that the template contains the CG$MB object.	Adding generator objects to template reports
Short Title	If you delete the value specified for the Window Title property, the Short Title property defines the caption that is displayed on generated buttons. Otherwise, Report Generator does not use this property.	Creating Drilldown reports
Layout Format	Specifies the default layout styles assigned to the groups in a generated report. Report Generator supports the following Layout Formats: • <Null> • Control Break • Label • Master Detail • Matrix	About report types and report module structure
Planning
Status	Not used by Report Generator.
Candidate	Indicates whether module was created by the Application Design Transformer. To generate a report from a module created by the Application Design Transformer, you must accept the candidate module by setting this property to No.	Generating report output
Prevent Generation?	Indicates whether the module can be generated. To prevent Report Generator from generating and modifying the module, set this property to Yes.	Generating report output
Size	Not used by Report Generator.
Complexity	Not used by Report Generator.
Project	Displays the module project code as boilerplate text in the generated report.  Make sure that the template contains the CG$MJ object.	Adding generator objects to template reports
Activity	Not used by Report Generator.
Task	Displays the module task code as boilerplate text in the generated report.  Make sure that the template contains the CG$MK object.	Adding generator objects to template reports
Time Estimate	Not used by Report Generator.
Estimate Units	Not used by Report Generator.
Invocation
Top Level?	Not used by Report Generator.
Command Line	Not used by Report Generator.
Return Type	Not used by Report Generator.
Runtime Path	Not used by Report Generator.
Source
Source Path	Not used by Report Generator.
Help
User/Help Text	Not used by Report Generator.
Help File Name	Not used by Report Generator.
Help Graphic File Name	Not used by Report Generator.
Help Context Id Prefix	Not used by Report Generator.
Documentation
Release Notes	Not used by Report Generator.
Description	Includes the Module Description in the comments generated for the report module. Make sure that the DOCFMT preference setting includes the value for Module Description, 'DS'.	DOCFMT preference
Notes	Includes the Module Notes in the comments generated for the report module. Make sure that the DOCFMT preference setting includes the value for Module Notes, 'NT'.	DOCFMT preference


 Repository argument properties used by Report Generator

Related Topics

Argument property	Used by Report Generator	Related topics
Module	The name of the module for which this argument is defined.
Name	The name of the argument, which can be referenced in the WHERE Clause of Query property or in application logic. The name you specify must not exceed 18 characters, and must not be the same as the name of a repository item.	Using generated parameters to restrict report data
Input Output	Defines whether the argument gets values from or passes values to another module.	Using generated parameters to exchange data between modules
Position	Specifies the sequence of this argument in relation to other arguments in the module.
Defined By
Domain	You can use a domain definition as the basis of the argument definition.  If you use a domain definition, the generated parameter will inherit the following properties from the domain: • Datatype • Default value • Length (up to a maximum of 20) • Decimal places
Datastructure	Not used by Report Generator.
Column	Not used by Report Generator.
Table Definition	Not used by Report Generator.
Oracle Type	Not used by Report Generator.
Definition
Datatype	Specifies the datatype of the parameters that are generated from this argument.  If you specified a domain or a datastructure as the basis of a argument, this property is not used.
Length	Specifies the length of the parameters that are generated from this argument (up to a maximum of 20). If you specified a domain as the basis of a argument, this property is not used.
Decimal Places	If you specified a numeric datatype, you can set the number of decimal places by setting this property. If you specified a domain as the basis of a argument, this property is not used.
Default	Specifies a default value for the generated parameter. If you specified a domain as the basis of a argument, this property is not used.
Optional?	Specifies whether the user must enter a value for the parameter.
Display
Display?	Not used by Report Generator.
Prompt	Specifies a label for the generated parameter (up to a maximum of 20 characters).
Dynamic List?	Use this property if you defined allowable values for the argument for either of the following reasons: • you are generating a list of values for a parameter • you are providing validation for parameter input Set this property to Yes to use allowable values stored in the reference code table. Then, generate the reference code table. For more information, refer to About reference code tables in the Server Generator online help. Set this property to No to use the hard-coded allowable values that you specified for the argument.	Creating lists of values for generated parameters  Creating allowable values for arguments
Suggestion List?	Use this property if you are generating a list of values for a parameter. Set this property to Yes to allow users to enter a value or select a value from the list. Set this property to No to require users to select a value from the list.	Creating lists of values for generated parameters
Input Mask	If you specified a numeric or data datatype, use this property to apply a format mask to the generated parameter.
Menu Generation
Substitution String	Not used by Report Generator.
Documentation
Comment	Not used by Report Generator.
Description	Not used by Report Generator.
Notes	Not used by Report Generator.


 Repository module component properties used by Report Generator

Related Topics

Module component property	Used by Report Generator	Related topics
Module	The name of the module within which this module component has been included.
Name	Specifies the name of the module component. Report Generator uses the module component name to derive the name of the generated query. Do not specify more than 15 characters for this property.	Changing query names
Short Description	Not used by Report Generator.
Template/Library Object	Not used by Report Generator.
Language	Oracle Reports.
Module Level?	Specifies whether this is a module level component. A module level component contains only unbound items (e.g., report level summaries) and no table usages. This property is used when creating page level and report level summaries. You may not use table usages in a module level component.	Creating computed summary items
Sub-component	Not used by Report Generator.
Usage Sequence	Order of this group with respect to other generated groups in the report.
Placement
Window	Specifies the name of the report that this group belongs to.
Placement	Not used by Report Generator.
Right of Component	Not used by Report Generator.
Placement Template/Library Object	Not used by Report Generator.
X Position	Not used by Report Generator.
Y Position	Not used by Report Generator.
Relative Tab Stops
Tab Stop Scope	Not used by Report Generator.
Data
Datasource Type	Not used by Report Generator.
Datatarget Type	Not used by Report Generator.
Operations
Insert?	Not used by Report Generator.
Delete?	Not used by Report Generator.
Update?	Not used by Report Generator.
Query
Query?	Not used by Report Generator.
Autoquery?	Not used by Report Generator.
Display
Title	Specifies the title of the group generated from this module component. The default value of this property is the Display Title of the table that the module component is based on.
Layout Style	Specifies the layout style of the group generated from this module component. Report Generator supports the following Layout Styles: • <Null> • Across • Address • Tabular • Form	About report types and report module structure
Rows Displayed	Specifies the maximum number of records to display on each logical page of the generated report.	Specifying the maximum number of rows displayed per page
Overflow	Not used by Report Generator.
Size
Width	Not used by Report Generator.
Height	Not used by Report Generator.
View Width	Not used by Report Generator.
View Height	Not used by Report Generator.
Help
User/Help Text	Not used by Report Generator.
Help Context Id Prefix	Not used by Report Generator.
Documentation
Description	Added to Comments property of generated query if DOCFMT  set to QR at Module Component level for this module component
Notes	Additional descriptive information about the repository item for administrative purposes.


 Repository table usage properties used by Report Generator

Related Topics

Table usage property	Used by Report Generator	Related topics
SQL Query Set	The name of the SQL query set to which this table usage has been defined.
Table/View/Materialized View	The name of the module component for which this table usage has been defined.
Usage Alias	The Usage Alias specifies the table alias in the generated query and can be used in user-defined application logic to reference table values. If the table alias is not unique within the module component, Report Generator appends a number to the alias. Do not specify more than 15 characters for this property.	Changing table and column aliases in queries
Name in Database	Specifies the table name in the FROM clause of generated queries. You can select one of the Global Synonym Names or type the name.	This name is used without any user/schema prefix, regardless of the setting of the TABOWN preference.
Partition	Not used by Report Generator.
Usage Type	Specifies whether the table usage is a base, lookup, sub-query, or single row SQL aggregate table usage.	Adding sub-queries to restrict data Creating SQL aggregate summary items
Template/Library Object	Not used by Report Generator.
Query
WHERE Clause of Query	Restricts the records that are displayed for one or more columns. For example: transaction_date BETWEEN 01-JUN-99 AND 31-DEC-99 When you generate the module, the value of this property is added to the WHERE clause of the generated query. Note: You do not need to include the WHERE keyword.	Selecting specific data using WHERE clauses
Select Distinct?	Specifies that duplicate rows are not returned by the query.
Link
Link To	Displays the alias of the table usage that this table usage is linked to.
Via Join Constraint	Displays the join constraint that links this table usage to another table usage.
Outer Join?	When set to Yes, Report Generator adds an outer join operator (+) to the generated query.  When set to Default Behavior, Report Generator adds an outer join operator (+) to the generated query if this table usage: • is a lookup table usage • is based on a table that contains descriptor columns	Including outer joins in lookup links
Lookup
Validation WHERE clause	Not used by Report Generator.
Sub Query
Not Exists?	For sub-query table usages only, if this property is set to Yes, Report Generator adds the NOT operator to reverse the logic of the generated subquery.	Adding sub-queries to restrict data
Tree Walk
Via Pig's Ear Join Constraint	Specifies the recursive join constraint to use.	Displaying hierarchical data
Via Network Join Constraint	Specifies the module network link to use.	Displaying hierarchical data
Connect By Clause	A CONNECT BY clause which restricts the rows returned in a hierarchy of data.	Displaying hierarchical data
Start With Clause	A START WITH clause which provides a starting point for the hierarchy of data.	Displaying hierarchical data
Direction	Not used by Report Generator.
Documentation
Comment	Not used by Report Generator.
Description	Not used by Report Generator.
Notes	Not used by Report Generator.


 Repository item properties used by Report Generator

Related Topics

When you create a bound item, Design Editor sets default values for the properties. The Design Editor uses the default display properties of the column definition as the default values of the item properties.

Common item property	Used by Report Generator	Related topics
SQL Query Set	The name of the SQL query set to which the item belongs.
Table Usage (bound items only)	Specifies the name of the table usage that contains this bound item.
Column (bound items only)	Name of the column that the bound item is based on.
Name	Specifies the name of the generated item and the column alias in the generated query. The Name must be 30 characters or less and be unique across all items within the module. If the item name is not unique, Report Generator appends a number to the name. You can use the value specified for this property to reference column values from derivation text or from a cross group summary.	Changing table and column aliases in queries
Unbound Type (unbound items only)	Specifies the unbound item type. Report Generator supports the following types of unbound items: • Computed • SQL Aggregate • SQL Expression • Client Side Function • Server Side Function • Target Specific • Shared Data	Creating computed summary items Creating SQL aggregate summary items Creating formula items Adding buttons to call PL/SQL functions and procedures Adding boilerplate text Adding images Adding buttons to display multimedia objects
Maximum Length	Not used by Report Generator.
Usage Sequence	Specifies the order of the item on the generated report.  Design Editor assigns a number to each item in the module component based on the position of the item on the Module Diagram.  Note that lookup items appear immediately after the foreign key columns used to retrieve them.
Template/Library Object	Not used by Report Generator.
Operations
Insert?	Not used by Report Generator.
Update?	Not used by Report Generator.
Query
Query?	Not used by Report Generator.
Range Search	Not used by Report Generator.
ConText Option?  (bound items only)	Not used by Report Generator.
Display
Display?	Specifies whether to display the item on the generated report.
Prompt	Specifies the label to use for the item. If the report is not wide enough to display all fields in a group on one line, Report Generator automatically splits labels to make more space. You can control label splitting by entering the split character (specified in the Split field labels preferences) at the position in the label where you want it to split.	If the report is not wide enough to display all fields in a group on one line, Report Generator automatically splits labels to make more space. You can control label splitting by entering the split character (specified in the Split field labels preferences) at the position in the label where you want it to split.
Display Type	Use this property to specify how column values are displayed in the generated report. Report Generator supports the following display types: • <Null> • Text • Button • Image • OLE Container
Show Meaning	Specifies how allowable values are displayed in a list of values. This property applies to items created for parameters, only.	Creating lists of values for generated parameters
	<Null>	Displays the values specified for the Value property of the Allowable Values repository object.
	Abbreviation only	Displays the values specified for the Abbreviation property of the Allowable Values repository object.
	Meaning alongside code	Displays the values specified for the Value and Meaning properties of the Allowable Values repository object. The Meaning property is generated as a text item and is displayed beside the parameter, which displays the allowable values.
	Meaning only	Displays the values specified for the Meaning property of the Allowable Values repository object.
Width	Specifies the width of the field on the generated report.  The width is measured in characters. The size of the character is determined by the font specified in the template report. If you do not specify a value for this field, Report Generator uses the width specified for the database column on which the item is based.
Height	Specifies the height of the field on the generated report.  The height is measured in characters. The size of the character is determined by the font specified in the template report. If you do not specify a value, the setting of the Wrap Style property determines the height of the field.
Alignment	Specifies whether the field is left aligned, right-aligned or centered within the group on the generated report.
Format Mask	(For items based on columns that have a DATE display datatype or a numeric datatype, only.) Applies a format mask to the column values in the generated report.	If you do not apply a format mask for an item based on a DATE column, Report Generator uses the default date format mask, DD-MON-RR. You can change the default format mask by changing the DTEMSK preference.
Formatting	Applies simple formatting to a text item. You can set this property to: BOLD UNDERLINE ITALIC STRIKEOUT REVERSE BLACK BLUE CYAN RED GREEN GRAY MAGENTA WHITE YELLOW You can combine the above values by separating them with a comma or space, e.g. BOLD,BLUE or UNDERLINE GREEN.  Report Generator adds code to the item's Format trigger to apply the specified formatting. Report Generator ignores this property if it is set to one of the following: IMAGE ESCAPE MAILTO PREFORMAT URL FLASH If this property is set to any other value, Report Generator treats it as a call to a user-defined routine and the value is copied directly into the item's Format trigger.	To apply more complex formatting to an item, define the formatting directly in the item's Format trigger using application logic. Refer to Entering user-defined event code for Report Generator. If you use this property to call a routine, the routine must be defined: • in the template, refer to Entering template named routines for Report Generator • in an attached library, refer to About generated reports and PL/SQL library modules) • or in the repository, refer to Entering user-defined named routines for Report Generator
Wrap Style	Specifies whether the field is truncated or wrapped. This property is applied to only those items that have a Width that is less than the Display Width that is specified for the column that the item is based on.
Item Group	The name of the item group that this item belongs to.
Context?	Set this property to Yes to display the item on all overflow pages. If you are generating a report for HTML or PDF output, setting this option to Yes also generates bookmarks for the column values. Set this property to No to remove the item from overflow pages.	Creating HTML and PDF bookmarks for repository items  CXDPTH preference
User Text Areas (unbound items only)	Includes the specified text as boilerplate text in the generated report.	Adding boilerplate text
Relative Tab Stops
Start Tab Stop	Not used by Report Generator.
End Tab Stop	Not used by Report Generator.
Align Prompt?	Not used by Report Generator.
Definition
Domain (unbound items only)	Specifies the domain that is associated with the generated item. Specify a domain to: • link the item to a domain.  • create a list of values for a parameter that is based on this item.
Datatype	Specifies the datatype of the item. The default value of this property is the datatype of the column on which the item is based.
Default value	Not used by Report Generator.
Default Value Type	Not used by Report Generator.
Optional?	Not used by Report Generator.
Ordering
Order By Sequence	Specifies that this item will be used to sort the rows selected by the generated query. Set this property to 1 to indicate that this column is the primary source column. You can sort by an additional column by setting this property to 2 for that item. Use the Sort Order property to display rows in ascending or descending order.
Sort Order	If you specified an Order By sequence for this item, this property specifies whether to display the rows in ascending or descending order.
Computed
Reset Level (unbound items only)	Specifies the level to reset the computed summary item: • Current Group • Module • Named Group • Page • Parent Group You can create a cross-group summary by selecting the Named Group property and specifying a group for the Reset Group property.	Creating computed summary items
Reset Group (unbound items only)	If you selected Named Group as the Reset Level, specify the group where the summary item will be displayed.	Creating computed summary items
SQL
Derivation Text (unbound items only)	A SQL expression used to derive a value for the unbound item. For example, to create a summary that references another item: SUM(ITEM_X)*10 You can also specify the path and file name of an image, sound, or video file to include a multimedia object in the generated report.	About computed summary items  About SQL aggregate summary items  About formula items  Adding images  Adding buttons to display multimedia objects
PL/SQL Block	Not used by Report Generator.
Validation
Dynamic List?  (unbound items only)	Specifies whether the unbound item has valid values defined against it.
Help
Hint	Not used by Report Generator.
User/Help Text	Not used by Report Generator.
Documentation
Comment	Not used by Report Generator.
Description	Not used by Report Generator.
Notes	Not used by Report Generator.


 Repository item group properties used by Report Generator

Related Topics

Item group property	Used by Report Generator	Related topics
Module Component	The name of the module component that contains this item group.
Name	Specifies the name of the item group.
Parent Item Group	If this item group is nested, this property specifies the name of the parent item group.
Template/Library Object	Not used by Report Generator.
Display
Prompt	If the group is a layout item group, this property specifies the group label.
	If the group is a break group, this property specifies the text to be displayed in the group header.	Creating group headers
Layout Format	Specifies the style used to display the item group.
Orientation	Not used by Report Generator
Stacked	Not used by Report Generator
Relative Tab Stops
Tab Stop Scope	Not used by Report Generator
Start Tab Stop	Not used by Report Generator
End Tab Stop	Not used by Report Generator
Reports Break Group
Break Group	Specifies the type of object that will be created from this item group in the generated report: • Set this property to Yes to generate a new break group. A break group is automatically created whenever you define a report module component. This break group defines the group that will be generated from the module component. You can define additional break groups in a module component to define a Group Left or Matrix report structure. • Set this property to No to create a layout item group. A layout item group displays a group of related fields as a single unit on the report. To specify the items that are a part of the break group or item group, use the Item Group dialog or the Item Group property of the item that you want to add to the group.	About Group Left reports  About Group Above reports About Matrix reports
Break Group Direction	If you set Break group to Yes, this property specifies the layout style of the group in the generated report.  If you do not select a break group direction, Report Generator defaults the direction from the module component layout style.
Help
User/Help Text	Not used by Report Generator.
Documentation
Description	Not used by Report Generator.
Notes	Not used by Report Generator.


 Repository action item properties used by Report Generator

Related Topics

Report Generator supports Navigation action items only.

Action item property	Used by Report Generator	Related topics
Module	The name of the module that contains this action item.
Module Component	The name of the module component that contains this action item.
Name	Specifies the name of the action item.
Generator Item Type (Generator action items only)	Not used by Report Generator.
Enable on database record (Custom action items only)	Not used by Report Generator.
Usage Sequence	Specifies the order of the item on the generated report.
Template/Library Object	Not used by Report Generator.
Navigate To
To Module Component (Navigation action items only)	Specifies the module component to navigate to when the user clicks the navigation button.	About Drilldown reports
To Module Network (Navigation action items only)	Specifies the module to navigate to when the user clicks the navigation button.	About Drilldown reports
Display
Prompt	Not used by Report Generator.
Icon Name	Not used by Report Generator.
Create Button? (Navigation and Custom action items only)	Report Generator always creates a button for action items.
Button Height	Not used by Report Generator.
Button Width	Specifies width of generated button.
Create Menu Item? (Navigation and Custom action items only)	Not used by Report Generator.
Help
Hint	Not used by Report Generator.
User/Help Text	Not used by Report Generator.
Documentation
Description	Not used by Report Generator.
Notes	Not used by Report Generator.


 Repository window properties used by Report Generator

Related Topics

Window property	Used by Report Generator	Related topics
Module	The name of the module that contains this window.
Name	The internal name of the window. The value of this property is defaulted from the Window Title property.
Template/Library Object	Specifies the template to use for the report.	Using templates for report generation
Display
Title	Specifies the title of the report. The title is also used as the button label in drilldown reports.	About Drilldown reports
Scrollable	Not used by Report Generator.
Width	Not used by Report Generator.
Height	Not used by Report Generator.
Placement
X Position	Not used by Report Generator.
Y Position	Not used by Report Generator.
Documentation
Description	Not used by Report Generator.
Notes	Not used by Report Generator.


This link has not been implemented. Click the Back button to go to the previous topic.


Generating Oracle Reports applications

	Defining report structure
	Adding report objects
	Enhancing query generation
	Customizing report layout and appearance
	Using application logic for report generation
	Using templates for report generation
	Using Report Generator preferences
	Generating report output


Generating Oracle Reports applications

	Defining report structure
	Adding report objects
	Enhancing query generation
	Customizing report layout and appearance
	Using application logic for report generation
	Using templates for report generation
	Using Report Generator preferences
	Generating report output


Generating Oracle Reports applications

	Defining report structure
	Adding report objects
	Enhancing query generation
	Customizing report layout and appearance
	Using application logic for report generation
	Using templates for report generation
	Using Report Generator preferences
	Generating report output


Generating Oracle Reports applications

	Defining report structure
	Adding report objects
	Enhancing query generation
	Customizing report layout and appearance
	Using application logic for report generation
	Using templates for report generation
	Using Report Generator preferences
	Generating report output


Generating Oracle Reports applications

	Defining report structure
	Adding report objects
	Enhancing query generation
	Customizing report layout and appearance
	Using application logic for report generation
	Using templates for report generation
	Using Report Generator preferences
	Generating report output


Generating Oracle Reports applications

	Defining report structure
	Adding report objects
	Enhancing query generation
	Customizing report layout and appearance
	Using application logic for report generation
	Using templates for report generation
	Using Report Generator preferences
	Generating report output


Generating Oracle Reports applications

	Defining report structure
	Adding report objects
	Enhancing query generation
	Customizing report layout and appearance
	Using application logic for report generation
	Using templates for report generation
	Using Report Generator preferences
	Generating report output


Generating Oracle Reports applications

	Defining report structure
	Adding report objects
	Enhancing query generation
	Customizing report layout and appearance
	Using application logic for report generation
	Using templates for report generation
	Using Report Generator preferences
	Generating report output


 Using templates for report generation

Related Topics 	Where am I?

About template reports

Creating template reports

Adding generator objects to template reports

List of generator objects

Specifying template reports


 About template reports

Related Topics 	Where am I?

A template report is a file (.tdf) that Report Generator uses during generation to determine the visual design of generated reports.

Note:	It is not mandatory that you use a template for report generation, but it is strongly recommended that you use one to control the visual design of generated reports.

In the template you can define:

•	parameters

•	the layout and appearance of frames, fields and item groups

•	template application logic

Report Generator is supplied with four standard template reports for generating report layout:

Template	Description
cgbmpt.tdf	template report for A4 portrait reports (bitmap)
cgchpt.tdf	template report for A4 portrait reports (character mode)
cgbmls.tdf	template report for A4 landscape reports (bitmap)
cgchls.tdf	template report for A4 landscape reports (character mode)
You can use one of these standard template reports or you can use Report Builder to create your own. For information about how to create a template report, refer to Creating template reports.

Note that we strongly recommend you do not modify any of the standard template reports. Instead, take a copy of the standard template and modify the copy.

As well as storing template reports in the filesystem for use during generation, you can also store template reports in the repository. For more information, refer to About storing files in the repository for use during generation

For more information about template reports, refer to the Oracle Reports help system.


 Creating template reports

Related Topics 	Where am I?

You can create template reports to control the visual design of generated reports.  About

To create a template report:

1.	Start Report Builder.

2.	In the Object Navigator, select the Templates node and click [image].

3.	You can perform the following tasks when creating template reports:

•	add user parameters  How

•	set default layout properties

For example, you can set properties to define the spacing between frames or the font of fields and their labels. These properties will apply to all reports generated using this template. For more information about default layout properties, refer to the Oracle Reports help system.

Use the Oracle Designer Item Group Style and Item Group Title properties in the template to set properties for generated layout groups. Use the Title properties in the template to set properties for generated break groups.

•	override default layout properties for individual report styles

For example, you might want the font of field labels in a Group Left report to be different from those for a Group Above report. For more information about override layout properties, refer to the Oracle Reports help system.

•	add user objects, e.g. current date field or page numbers  How

•	add generator objects to the report to display information such as the application system name or module name  How

•	add application logic by defining:

-	event code (or report triggers)  How
-	named routines (or program units)  How
•	attach a PL/SQL library

For more information, refer to About generated reports and PL/SQL library modules.

4.	Save the template report and exit Report Builder.

Notes

We strongly recommend that you do not modify any of the standard template reports. If you want to use a standard template as a starting point for your own template, take a copy of the standard template and modify the copy.

As well as storing template reports in the filesystem for use during generation, you can also store template reports in the repository. For more information, refer to About storing files in the repository for use during generation.


 Adding generator objects to template reports

Related Topics 	Where am I?

You can add generator objects to the template report. Use generator objects to display information such as the application system or module name.

To add a generator object to a template report:

1.	Start Report Builder.

2.	Open the template report.

3.	Select the Layout Model node.

4.	Choose Tools→Template Editor.

5.	Select the report style from the drop-down list, e.g. Tabular, Group Above.

6.	Add a text item to the template in the position where you want to place the generator object.

7.	In the Object Navigator, select the text item you just created.

8.	Set the name of the text item, prefixing the name with the appropriate generator object name (refer to List of generator objects for more information).

9.	Save the template report.


 List of generator objects

Related Topics 	Where am I?

The following table lists and describes the generator objects that you can include in a template report:

Generator object name:	Description:
CG$AN	Displays the application system name
CG$AT	Displays the application system display title
CG$AV	Displays the application system's version label
CG$CN	Displays the company name
CG$MB	Displays the module bottom title
CG$MJ	Displays the module project code
CG$MK	Displays the module task code
CG$MN	Displays the module name
CG$MO	Displays the module owner
CG$MP	Displays the module purpose
CG$MS	Displays the module short name
CG$MT	Displays the module top title
CG$PS<n>	Specifies the boilerplate object used to display the value of a page level summary, where n is the sequence number of the summary item.


 Specifying template reports

Related Topics 	Where am I?

When you generate a report, you can specify which template report to use during generation. You can specify different templates for the master and detail reports in a drilldown report,

To specify the template report to use during generation:

1.	In the Design Editor Navigator, select the window that contains the report (if no such window exists, create one now).

2.	Make sure that Options→Use Property Palette is selected and click the [image] toolbar button.

3.	Set the Template/Library Object property to the name of the template report.

4.	Click [image] to save your changes.

If you do not set the Template/Library Object property, Report Generator uses the template report specified in the Generate Report dialog box Template Name field. For more information, refer to Generate Report dialog box.

If you do not want to use a template report, you must make sure that both the Template/Library Object property and the Generate Report dialog box Template Name field are not set.

Use the Source options on the Report Generator Options dialog box to specify where to locate the template (on the filesystem or in the repository) during generation.


 Design capture of existing Oracle Reports applications

Related Topics

About design capture

About captured report modules

Capturing existing Oracle Reports applications into the repository


 About design capture

Related Topics

Design capture is the process of creating or modifying an Oracle Designer module using information in an existing Oracle Reports report.

The design capture process enables you to:

•	document Oracle Reports applications as new modules in the repository

•	merge Oracle Reports modules with existing repository modules

Note:	Report Generator captures the design of Oracle Reports 6.0 reports and later. To capture reports created using an earlier version of Reports, you must first upgrade the report.

If you perform design capture of an drilldown report, you must capture the 'Called' report before capturing the 'Calling' report. The 'Called' report must exist in the repository before the 'Calling' report to ensure the navigation action item is set.

To capture a report, you must have:

•	access to the report

•	write access to a container in the repository

•	repository definitions for all database objects referenced by the report

Note:	If the required database object definitions do not already exist in the repository, you can use the Capture Server Model from Database utility to read information from the database and create corresponding table and column definitions in the repository.

During the design capture process, as much information as possible is extracted from the report and recorded in the repository. Report Generator sets:

•	module properties for the report being captured

•	window properties for the report

•	module component properties for each query in the report

•	table usage properties for each table identified in the query

•	bound and unbound item properties for each item identified in the query

•	item group properties for each break group identified in the query

•	module argument properties for each item and user parameter in the report

•	module level component properties for report level summaries in the report

•	unbound item properties for summaries and formulas in the report

What happens when a captured module is merged with an existing module?

Instead of creating a new repository module during design capture, you can merge an Oracle Reports module with an existing repository module. Report Generator applies the following rules to determine which repository objects and properties to set:

•	If the object being captured does not already exist in the repository, the Oracle Reports object's properties are used to set the repository object's properties.

•	If there is an object in the repository that does not exist in the report being captured, the object and its properties are deleted.

•	If the Oracle Reports object being captured already exists in the repository (i.e. an object of the same type and with the same name exists), the Oracle Reports object's properties replace the repository object's properties. Any of the repository object's properties that are not normally set during design capture are retained unmodified.

Note that Report Generator never creates, updates, or deletes reusable module components during design capture.

Notes

There are some circumstances when Report Generator will not update properties of existing repository objects during design capture. For more information, refer to When are repository objects not updated during generation and design capture.

If the report being captured has associated application logic, you can choose either to capture the report together with its application logic, or to capture just the application logic. For more information, refer to Capturing application logic from Oracle Reports applications.

As well as Oracle Reports reports, you can also capture library modules into the repository. For more information about capturing library modules, refer to Design capture of existing PL/SQL library modules in the Library Generator help system.

If the report being captured contains library attachments, you can use Report Generator to capture the existence of the attachments as module network links providing the following conditions are met:

•	a repository library module with the same name as the library attachment already exists

•	the library attachment's Comment property does not contain the string CG$IGNORE_ON_DESIGN_CAPTURE

•	you have checked the Capture Library Links checkbox on the Capture Reports Design Options dialog box

If any of these conditions are not met, Report Generator does not capture the library attachment.


 About captured report modules

Related Topics

During the design capture process, reports are analyzed and their objects and object properties used to set properties in the repository:

•	module properties for the report being captured

•	window properties for the report

•	module level component properties for report level summaries in the report

•	table usage properties for each table identified in the query

•	bound and unbound item properties for each item identified in the query

•	item group properties for each break group identified in the query

•	module argument properties for each item and user parameter in the report

•	module component properties for each query in the report

•	unbound item properties for summaries and formulas in the report

Notes on captured table usages

Each query consists of a SQL SELECT statement. During design capture, this statement is analyzed to identify the tables that are referenced in it. Table usages are created from the following:

•	tables that are the source of one or more bound items in the SELECT list

•	tables that are used for join criteria

To capture the usage of a table by an application during design capture (i.e. to create a table usage), a corresponding repository table definition must already exist. Report Generator uses the name of the table used by the application to identify the corresponding repository table definition, as follows:

Firstly:	Report Generator searches for a repository table definition with the same name as the table used by the application
If Repository table definition not found:	If the table used by the application has a name ending with the characters _JN (i.e. the table is a journal table), Report Generator searches for a repository table definition without the _JN suffix
If Repository table definition still not found:	Report Generator searches for a repository table definition that has a synonym with the same name as the table used by the application
Notes on links between module components

Links between table usages in the same module component (for example the link between a base and lookup table usage) are captured. Also, all table usages of types base, lookup, subquery, and SRSA are captured. Key based links between module components are also captured. If the report is generated from a module with the DOJOIN property set to Y then the two module components are captured with the link and a warning is issued.

Note:	Only key based links between module components are captured. Group links and data links are not recovered.

Notes on captured item groups

An item group is created for each break group defined in the report. Hierarchies of break groups are created as nested item groups.

Groups associated with layout are not captured.

Notes on captured items

Items in the SELECT list are either captured as bound items, or if they contain an expression, as unbound items.

Report Generator determines the Unbound Type property of captured unbound items by parsing the captured expression:

if:	the captured unbound item's expression contains an aggregate function (e.g. AVG, SUM), set the captured item's Unbound Type property to Computed
otherwise, if:	the captured unbound item's expression does not contain an aggregate function, set the captured item's Unbound Type property to SQL Expression providing Report Generator recognizes the expression as a valid SQL expression
otherwise:	where Report Generator does not recognize the captured unbound item's expression as a valid SQL expression, set the captured item's Unbound Type property to Server Side Function

These captured items are placed in the module component captured for the query or in the captured module level component.

During design capture, Report Generator may change aliases in order to ensure uniqueness. If this occurs, the expression in the Derivation Text property may be inaccurate. You should check that unbound item Derivation Text is correct before generating the captured report.

Notes on template items

Report Generator ignores template items during design capture.

Notes on preferences

Report Generator preferences are not set during design capture. After design capture, set the preferences manually and generate the report.


 Capturing existing Oracle Reports applications into the repository

Related Topics

Design capture is the process of creating or modifying a repository module using information stored in an existing Oracle Reports report.  About

To capture the design of an existing report:

1.	Make sure:

•	you have access to the report you want to capture

•	you have write access to a container in the repository and you are connected to that container

•	there are repository definitions for all database objects referenced by the report

2.	If you want to merge the report information into an existing repository module, select the module.

If you want to create a new module, make sure that an existing module is not selected either in the Design Editor Navigator, or in a module diagram.

3.	Choose Generate→Capture Design of→Report to display the Capture Report Design dialog box.

4.	If you selected an existing module, the Destination Module field is populated with the Short Name of that module.

If you did not select an existing module, enter a name for the new module in the Destination Module field.

5.	Enter the name of the report definition file (.RDF) that you want to capture in the File - Name field. You can use the Browse button to help you locate the file.

6.	Specify whether you also want to capture the application logic associated with the report.

For more information, refer to Capturing application logic from Oracle Reports applications

7.	If you want to create a module diagram after you have captured the report, select the Create on Diagram after Capture check box.

8.	Use the Additional Containers field to specify the location of objects (e.g. tables, languages, attached libraries, reusable module components) that are referenced by the report being captured but which are not in the target container.

9.	Use the Post Capture options to specify whether to save changes to the repository during design capture:

•	Commit - update repository objects

•	Browse/Edit - show proposed repository changes, enabling you to choose how to process them

Note that there are some circumstances when Report Generator will not update properties of repository objects. For more information, refer to When are repository objects not updated during generation and design capture.

10.	Click Options to display the Capture Reports Design Options dialog box and set design capture options as necessary.

11.	When you have specified the options you require, return to the Capture Report Design dialog box and click Start to begin the design capture process.


 Enhancing query generation

Related Topics 	Where am I?

You can control data that is retrieved for a report by setting repository properties and Report Generator preferences that control query generation.

Changing query names

Changing table and column aliases in queries

Selecting specific data using WHERE clauses

Selecting specific data using HAVING clauses

Specifying the maximum number of rows displayed per page

Removing duplicate rows

Outer joins

About including outer joins in lookup links

Including outer joins in lookup links

Hierarchical data

About displaying hierarchical data

Displaying hierarchical data

Merging queries

About merging master and detail queries

Merging master and detail queries

Combining queries

About combining the results of queries

Combining the results of queries

Subqueries

About sub-queries

Adding sub-queries to restrict data


 Changing query names

Related Topics 	Where am I?

You can change the default name assigned to generated queries.

To change the name of a query:

1.	In the Design Editor, select the module component that represents the query.

2.	Make sure Options→Use Property Palette is selected.

3.	Click the [image] toolbar button to display the Property Palette.

4.	Edit the value of the Name property.

Note:	The Name property must be unique within the module and may contain up to 30 characters.

5.	Click [image] to save your changes.

Next step

Generate the report to apply the changes or continue enhancing the query.

Generating report output

Enhancing query generation


 Changing table and column aliases in queries

Related Topics 	Where am I?

Table and column aliases provide unique names for the tables and columns used in the generated query. You can change the table and column aliases.

To change the alias of a table:

1.	In the Design Editor, select the table usage.

2.	Make sure Options→Use Property Palette is selected.

3.	Click the [image] toolbar button to display the Property Palette.

4.	Edit the value of the Usage Alias property.

Note:	The Usage Alias property must be unique within the module and may contain up to 15 characters.

5.	Click [image] to save your changes.

To change the alias of a column:

1.	In the Design Editor, select the item.

2.	Make sure Options→Use Property Palette is selected.

3.	Click the [image] toolbar button to display the Property Palette.

4.	Edit the value of the Name property.

Note:	The alias must be unique within the module component and may contain up to 15 characters.

5.	Click [image] to save your changes.

Next step

Generate the report to apply the changes or continue enhancing the query.

Generating report output

Enhancing query generation


 Selecting specific data using WHERE clauses

Related Topics 	Where am I?

When you generate a report, Report Generator retrieves all the data in the columns that are specified in the query. You can select specific data by adding a WHERE clause to the query.

Note:	You can also restrict data at runtime by defining runtime parameters. For more information, refer to About parameters.

To add a WHERE clause for a table usage:

1.	In the Design Editor, select the base table usage.

2.	Make sure Options→Use Property Palette is selected.

3.	Click the [image] toolbar button to display the Property Palette.

4.	Enter the SQL WHERE clause in the WHERE Clause of Query property. For example:

transaction_date BETWEEN 01-JUN-99 AND 31-DEC-99

Note:	You do not need to enter the WHERE keyword.

5.	Click [image] to save your changes.

Next step

Generate the report to apply the changes or continue enhancing the query.

Generating report output

Enhancing query generation


 Selecting specific data using HAVING clauses

Related Topics 	Where am I?

When you generate a report, Report Generator retrieves all the data in the columns that are specified in the query. Unlike the WHERE clause, you cannot specifically set a HAVING clause in SQL. When you create an argument, and bind it to an unbound item, Report Generator will add a HAVING clause to the query.

Note:	You can also restrict data at runtime by defining runtime parameters. For more information, refer to About parameters.

To add a HAVING clause:

1.	Create the module structure for a single group report and a base table usage.  How

2.	Create a Single Row SQL Aggregate (SRSA) table usage with a foreign key link to the base table usage.  How

3.	Create an unbound item:

a.	Set Unbound type to SQL aggregate.

b.	Set Derivation Text to Sum.

4.	Create an argument.  How

5.	Create an argument item usage with the Item property set to the unbound item.  How

Note:	You can only bind an argument item usage to an unbound item in a HAVING clause.

Next step

Generate the report to apply the changes or continue enhancing the query.

Generating report output

Enhancing query generation


 Specifying the maximum number of rows displayed per page

Related Topics 	Where am I?

You can specify the maximum number of records to display on each logical page of a generated report.

To specify the maximum number of rows per page:

1.	In the Design Editor, select the module component.

2.	Make sure Options→Use Property Palette is selected.

3.	Click the [image] toolbar button to display the Property Palette.

4.	Set the Rows Displayed property to the maximum number of rows that you want to appear on each logical page.

Note:	If you set this property to 0, Report Generator will fit as many rows as possible on each logical page.

5.	Click [image] to save your changes.

Next step

Generate the report to apply the changes or continue enhancing the query.

Generating report output

Enhancing query generation


 Removing duplicate rows

Related Topics 	Where am I?

When you generate a report, if there is neither a primary key or a unique key selected or displayed, the data returned by the query may contain duplicate rows. You can specify that duplicate rows should be removed from the generated report.

To remove duplicate rows from a report:

1.	In the Design Editor, select the base table usage.

2.	Make sure Options→Use Property Palette is displayed.

3.	Click the [image] toolbar button to display the Property Palette.

4.	Set the Select Distinct? property to one of the following:

Yes	Do not retrieve duplicate rows. Report Generator adds the DISTINCT keyword to the query.
No	Display duplicate rows.
5.	Click [image] to save your changes.

Next step

Generate the report to apply the changes or continue enhancing the query.

Generating report output

Enhancing query generation


 About including outer joins in lookup links

Related Topics 	Where am I?

When you define a lookup table usage, Report Generator creates a simple join between the two tables in the generated query. A simple join returns only those rows that satisfy the join condition.

You can extend the results of the query by adding an outer join operator. The outer join operator ensures that all rows from the base table are returned to the generated report, including those rows that have no matching rows in the lookup table.

For example, note that in the following table, there are no employees in Department 40:

DEPTNO	COUNT(EMPNO)
10	2
20	3
30	2
40	0
If you defined a base table usage for the DEPT table and a single row SQL aggregate table usage for the EMP table, Report Generator would not return a row for the Operations column, unless you specified that Report Generator should create an outer join.

If you specified that an outer join should be used, Report Generator creates the following SELECT statement:

SELECT dept.deptno, count(emp.empno)

   FROM dept, emp

   WHERE dept.deptno = emp.deptno (+)

   GROUP BY dept.deptno

For information about how to include outer joins, refer to Including outer joins in lookup links.


 Including outer joins in lookup links

Related Topics 	Where am I?

If you define a lookup table usage, you can ensure that all base table rows are returned to the generated report, including those rows that have no matching rows in the lookup table.

About

To add an outer join operator:

1.	In the Design Editor, select the lookup table usage.

2.	Make sure Options→Use Property Palette is selected.

3.	Click the [image] toolbar button to display the Property Palette.

4.	Set the Outer Join? property to Yes.

5.	Click [image] to save your changes.

Next step

Generate the report to apply the changes or continue enhancing the query.

Generating report output

Enhancing query generation


 About displaying hierarchical data

Related Topics 	Where am I?

If you create a table usage for a table that contains hierarchical data, you can display the data in the generated report in hierarchical order.

To do this, create a treewalk link on the table usage and include START WITH clause to include in the generated query.

Note:	Report Generator automatically adds a CONNECT BY clause to the query to specify the relationship between parent and child rows in the hierarchy.

About treewalk links

A treewalk link enables Report Generator to search up or down the data in a table. You can create a treewalk link:

•	on a single table usage

•	between two different table usages

Treewalk links on a single table usage

You can create a treewalk link on a single base table usage using a recursive foreign key, i.e. a foreign key that references the primary key of the same table. For example, in the COMPANIES table CO_PARENT_NAME is a recursive foreign key.

To create a treewalk link on a single base table usage, create a key based link where the origin and destination of the link are the same table usage. For information about how to create a key based link, refer to Creating key based links using module diagrams.

Treewalk links between different table usages

You can create a treewalk link between two different table usages using a second lookup link.

To create a lookup link, create a key based link between the base and lookup table usages. For information about how to create a key based link, refer to Creating key based links using module diagrams.

Note:	Report Generator implements treewalks across multiple table usages using embedded tables.

About the START WITH clause

The START WITH clause identifies the root of the hierarchy, i.e. where to begin. For example, for the EMPLOYEES table the START WITH clause might be:

START WITH job = 'PRESIDENT'

About the CONNECT BY clause

The CONNECT BY clause identifies the relationship between parent and child rows of the hierarchy. The CONNECT BY clause must include the PRIOR operator to refer to the parent row. For example, for the EMPLOYEES table, the CONNECT BY clause might be:

CONNECT BY PRIOR empno= mgr

Note:	Report Generator automatically adds a CONNECT BY clause to the query to specify the relationship between parent and child rows in the hierarchy.

About the LEVEL pseudocolumn

The LEVEL pseudocolumn returns a value of 1 for the root node, 2 for a child node of the root node, 3 for a grandchild of a root node, etc. You can use LEVEL in reports that display hierarchical data, to determine where a particular row is within the hierarchy. For example, you could use LEVEL in a SQL expression, such as:

LPAD(' ',LEVEL) || ename

to produce the following output:

	KING
		JONES
			SCOTT
For information about how to display hierarchical data in your report, refer to Displaying hierarchical data.


 Displaying hierarchical data

Related Topics 	Where am I?

If you create a table usage for a table that contains hierarchical data, you can display the data in the generated report in hierarchical order.

About

To display hierarchical data:

1.	In the Design Editor, select the table usage that represents the table containing the hierarchical data.

2.	Make sure Options→Use Property Palette is selected.

3.	Click the [image] toolbar button to display the Property Palette.

4.	Specify the root row of the hierarchy using the Start With property.

5.	Report Generator uses the foreign key used by the treewalk link to determine the relationship between the parent and child rows of the hierarchy. You can however, include more information about this relationship by setting the Connect By property.

Note:	You can also use the Connect By property to exclude branches of the hierarchy from the query.

6.	Click [image] to save your changes.

Next step

Generate the report to apply the changes or continue enhancing the query.

Generating report output

Enhancing query generation


 About merging master and detail queries

Related Topics 	Where am I?

By default, Report Generator creates a separate query for each module component in the report module. If there is a master-detail relationship between module components, you can enable Report Generator to merge the queries into one query by setting the DOJOIN preference to Yes.

If DOJOIN is set to Yes, Report Generator determines whether to merge queries by comparing the following two ratios:

•	The displayed items ratio, which is the number of displayed items (bound and unbound) in the master module component divided by the number of displayed items (bound and unbound) in the detail module component.

•	The rows ratio, which is the number of rows in the master module component divided by the number of rows in the detail module component.

To determine the number of rows, Report Generator uses the values specified for the repository table definition property: End Rows. If you did not set this property for the base tables that are referenced in the master and the detail module components, Report Generator uses an internal value to calculate the ratio of rows.

Report Generator merges queries when any of the following ratios are true:

Displayed items ratio	Rows ratio
Fewer detail items than master items, or The same number of detail and master items	5 or fewer detail rows for each master row
3 or fewer detail items for each master item	8 or fewer detail rows for each master row
8 or fewer detail items for each master item	11 or fewer detail rows for each master row
Report Generator also merges queries if the ratio of displayed items is greater than the ratio of rows.

For information about how to merge queries, refer to Merging master and detail queries.


 Merging master and detail queries

Related Topics 	Where am I?

You can enable Report Generator to merge queries generated for master and detail module components.

About

To merge queries:

1.	In the Design Editor Navigator, select the container (i.e. folder or application system) or module node.

2.	Click the [image] toolbar button to display the Preference Palette.

3.	If necessary, select Report Generator from the Product dropdown list to display the Report Generator preferences.

4.	Expand the Queries and PL/SQL node.

5.	Set the DOJOIN preference to Yes.

6.	Click [image] to save your changes.

Next step

Generate the report to apply the changes or continue enhancing the query.

Generating report output

Enhancing query generation


 About combining the results of queries

Related Topics 	Where am I?

You can include a UNION operator in the generated query to display similar column values from different tables. To do this, you define SQL Query Sets to combine the results of queries.

For example, the COMPANIES table contains the names and email addresses of company contacts. The CUSTOMERS table contains customer names and addresses.

You can display the email names and addresses of customer and company contacts by creating a base table usage for the COMPANIES table and a SQL Query Set for the CUSTOMERS table.

When you generate the report, Report Generator creates the following query:

SELECT co.contact_name contact_name, co.email_address email_address

   FROM companies co

UNION

SELECT cu.first_name first_name||' '||cu.last_name last_name, cu.email_address email_address

   FROM customers cu

Note:	The datatype of the items in the same position in the select lists must be the same in the two queries. In the above example co.email_address must be the same datatype as cu.email_address. If there is a mismatch of datatypes, the report will not be generated. In the module component in which the query set is present, set the Datasource Type property to 'Query'.

For information about how to combine the results of queries, refer to Combining the results of queries.


 Combining the results of queries

Related Topics 	Where am I?

You can combine the results of queries generated for table usages that contain similar items.

About

To combine queries:

1.	In the Design Editor, create a base table usage for the first query.  How

2.	For each query that you want to combine with the query that is generated for the base table usage:

a.	In the Design Editor Navigator, expand the node for the base table usage.

b.	Select the SQL Query Set node.

c.	Click [image].

d.	Create a table usage.

e.	Create the same number of bound items with the same datatype as used in the first query.

When you generate the report, Report Generator combines the queries, inserting a UNION operator between each SELECT statement.

Next step

Generate the report to apply the changes or continue enhancing the query.

Generating report output

Enhancing query generation


 About sub-queries

Related Topics 	Where am I?

A sub-query is a nested query that appears in another SQL statement. You can use sub-queries to further restrict the rows retrieved. To define a sub-query, create a sub-query table usage:

For example, you can display the employees who have handled at least one rental by creating a sub-query table usage for the RENTALS table that is linked to a base table usage for the EMPLOYEES table.

When you generate the report, Report Generator creates the following query, using the EXISTS clause to link the sub-query to the parent query:

SELECT emp.first_name first_name, emp.last_name last_name

   FROM employees emp

   WHERE EXISTS

      (SELECT NULL

          FROM rentals ren

          WHERE ren.emp_id = emp.emp_id

      )

You can also reverse the logic of the sub-query. For example, you can display the employees who have not handled any rentals by reversing the logic of the sub-query in the above example.

When you generate the report, Report Generator creates the following query, adding the NOT keyword to the EXISTS clause:

SELECT emp.first_name first_name, emp.last_name last_name

   FROM employees emp

   WHERE NOT EXISTS

      (SELECT NULL

          FROM rentals ren

          WHERE ren.emp_id = emp.emp_id

      )

For information about how to create a sub-query, refer to Adding sub-queries to restrict data.


 Adding sub-queries to restrict data

Related Topics 	Where am I?

You can generate a sub-query, or nested query, by adding a sub-query table usage to the module component.

About

To create a subquery:

1.	In the Design Editor, open a module diagram for the report module.

2.	Create a sub-query table usage.  How

To reverse the logic of a subquery:

1.	In the Design Editor, select the sub-query table usage.

2.	Make sure Options→Use Property Palette is selected.

3.	Click the [image] toolbar button to display the Property Palette.

4.	Set the Not Exists? property to Yes.

5.	Click [image] to save your changes.

Next step

Generate the report to apply the changes or continue enhancing the query.

Generating report output

Enhancing query generation


 Generating report output

Related Topics 	Where am I?

About report output

Setting Report Generator options

Starting Report Generator

Running generated reports

Converting generated reports

Distributing generated Oracle Reports applications


 About report output

Related Topics 	Where am I?

Once you define the module structure for the type of report that you want to generate, you can generate the report and run the report output.

When you generate a report, Report Generator saves the report as an Oracle Reports report definition file (RDF). Using the Report Generator preference, DSPFMT, you can also generate reports for HTML (HyperText Markup Language), HTMLCSS (HTML with support for cascading style sheets), or PDF (Portable Document Format).

RDF report output

Report Generator saves generated files as Oracle Reports report definition files (RDF), using the module Implementation Name as the filename. If you have not specified an Implementation Name, Report Generator uses the module Short Name instead. You can run the generated report in Reports Runtime:

You can also view the generated report in the Live Previewer and use Report Builder to make post-generation changes to your RDF reports.

HTML and HTMLCSS report output

You can generate reports for output in HTML or HTMLCSS (cascading style sheets).

When you generate a report for HTML output, Report Generator sets the DESFORMAT system parameter to HTML or HTMLCSS. When you run the report, Reports Runtime creates three HTML files:

File	Filename
The master file. This files contains two frames that reference two subordinate files.	<module implementation name>.htm
The subordinate file containing the report information.	<module implementation name>_d.htm
The subordinate file containing the bookmark information.	<module implementation name>_b.htm
If the report contains embedded images, Reports Runtime will also generate graphic files called:

<module implementation name>_n.gif

where n is the next unique number in a sequence starting at zero.

You can view the generated report in an HTML browser, if you have one installed:

In addition, you can use the PL/SQL procedures in the Oracle Reports SRW built-in package to create HTML objects in the report output, such as hyperlinks, bookmarks, and document headers and footers. For more information about adding objects to HTML reports, refer to Adding objects to HTML and PDF report output.

After you generate and customize HTML report output, you can export the reports to a remote report server to deploy them on the World Wide Web. See the Oracle Reports online help system for more information.

PDF report output

You can generate reports for output in Adobe Acrobat Portable Document Format (PDF).

The Adobe Portable Document Format (PDF) is a cross-platform, PostScript-based file format. PDF reports are compressed, platform independent files that appear exactly as they were generated.

When you generate a report for PDF output, Report Generator sets the DESFORMAT system parameter to PDF.

When you run the report, Reports Runtime creates a PDF file, using the module Implementation Name as the filename. You can view the generated report in an Adobe Acrobat reader, if you have one installed:

In addition, you can use the PL/SQL procedures in the Oracle Reports SRW built-in package to create PDF objects in the report output, such as hyperlinks, bookmarks, and command links. For more information about adding objects to PDF reports, refer to Adding objects to HTML and PDF report output.

After you generate and customize PDF report output, you can export the reports to a remote report server to deploy them on the World Wide Web. See the Oracle Reports online help system for more information.


 Setting Report Generator options

Related Topics 	Where am I?

Before you generate a report, you can set Report Generator options that specify:

•	where to find template reports during generation

•	the directory in which to save generated reports (and whether to upload generated files to the repository after generation)

•	the user account to use to run the generated report

Note:	If you specify a different user account, the specified account must have access to all the tables used by the report as Oracle Reports needs access to these tables in order to run the report.

To set Report Generator options:

1.	In the Design Editor, do one of the following:

•	Click the Options button on the Generate Report dialog.

•	Choose Options→Generator Options→Reports.

2.	Set the options as follows:

To:	Use:
Specify where  to locate template reports	The Source options to indicate whether the template reports are on the filesystem or in the repository. If template reports are on the filesystem, specify the complete directory path in the File System Directory field. If template reports are in the repository, specify the appropriate folders in the Repository Folders field. Note: Do not enter a filename. To specify the name of the template report, set the Template/Library Object property of the window that contains the report module component or specify the name in the Generate Report dialog box.
Specify the directory in which to save generated reports	The Destination of generated files field to specify the complete directory path. Note: Do not enter a filename. To specify the filename of the generated report, set the module Implementation Name repository property. If you do not specify an Implementation Name, Report Generator uses the module Short Name. You can also upload generated reports to the repository by checking the Upload generated files to repository checkbox.
Run the report using a username other than the one that you used to log on to Oracle Designer	The Runtime Database User - Username and Connect String fields. Note: If you specify a different user account, the specified account must have access to all the tables used by the report. Note: You can specify the password of this account in the Generate Report dialog box.
3.	Click OK to save the Generator Options.

Report Generator will use these settings as the default settings whenever you generate a report.

Batch generation of multiple modules

You can generate multiple modules of the same and different languages using the Design Editor's batch processing tools.

Next Step

Once you set the Report Generator options, start Report Generator to generate the report.

Starting Report Generator


 Starting Report Generator

Related Topics 	Where am I?

After you define the report module structure, start Report Generator to generate the report definition file (RDF).

To generate a report:

1.	Display the module diagram for the module or select the module in the Design Editor Navigator.

2.	Choose Generate→Generate Module.

3.	To specify the name of the template report to use during generation, set the Template - Name field.

Note:	If you have specified a template report in the window Template/Library Object property, the name in the Generate Report dialog box will be ignored.

4.	Use the Source options on the Report Generator Options dialog box to specify where to locate the template report (on the filesystem or in the repository) during generation.

5.	If this report is part of a module network, select the Include Module Network check box to generate the modules that call or are called by the current module.

6.	If you specified a different runtime user account in the Options dialog box, you must enter the password of that account in the Password For Runtime Database Users field.

7.	If you have specified a role name in the ROLENM preference, you can also specify the password for that role in the Role Password field.

8.	Use the Post Generation options to specify whether to save changes to the repository during generation:

•	Commit - update repository objects

•	Revert - do not update repository objects

•	Browse/Edit - show proposed repository changes, enabling you to choose how to process them

Note that there are some circumstances when Report Generator will not update properties of repository objects. For more information, refer to When are repository objects not updated during generation and design capture.

9.	Set any generate options as required in the Options dialog box.  How

10.	Click Start.

Next Step

Once you generate the report, run it to display the report output or convert the report to a different output type.

Running generated reports

Converting generated reports


 Running generated reports

Related Topics 	Where am I?

After you generate a report, run it to display the report output. You can run a report immediately after you generate it. Or, you can run a report by starting Reports Runtime from the Design Editor.

To run a report after generation:

(See the next section for running a report in HTML format.)

1.	In the Messages Window, click the [image] button.

2.	In the list of actions in the Build Action dialog box, select:

Run	To run the generated report in the Reports Runtime Previewer; you will not be able to edit the report.
View with the Live Previewer	To run the generated report in the Live Previewer; you will be able to edit the report.
View PDF report output	To run the generated report in an Adobe Acrobat reader.
Edit definition	To open the generated report in Report Builder.
3.	Click the Run button.

To run a report in HTML format

You must already have set up Report Generator to generate HTML reports.

1.	In the Messages Window, click the [image] button.

2.	In the list of actions in the Build Action dialog box, select Run.

3.	Click the Run button.

The report is created but not displayed.

4.	In the list of actions in the Build Action dialog box, select View Report in HTML.

5.	Click the Run button.

The report is displayed in a web browser.

To run a report by starting Reports Runtime from the Design Editor:

1.	Choose Run→Reports Runtime.

2.	In Reports Runtime, choose File→Run.

3.	Select the report and click Open.

Note:	You will need to connect to an appropriate database to run the report.

Next step

After you view the generated output, you can enhance the report output by adding objects, such as summaries and hyperlinks. You can also customize the query to refine the report data or you can customize the visual design of the report.

Creating report objects

Enhancing query generation

Customizing the layout


 Converting generated reports

Related Topics 	Where am I?

After you generate a report, you can convert it to a different output type. For example, you might want to convert an .RDF report into a .REP report to conserve space.

To convert a generated report:

1.	In the Messages Window, click the [image] button.

2.	In the Build Action dialog box, select Convert.

3.	Click the Run button to display the Convert dialog box.

4.	To specify the file type you want to convert your report to, set the Destination Type field to one of the following:

•	Report in database

•	Report Binary File (RDF)

•	Report Binary Run-only File (REP)

•	Report ASCII File (REX)

•	Report Template Binary File (TDF)

5.	Enter the name of the destination file in the Destination field.

6.	Click OK.


 Distributing generated Oracle Reports applications

Related Topics 	Where am I?

You probably generate Oracle Reports applications in a development environment that is different to the production environment in which the finished application will be deployed.

For the generated application to run successfully in a production environment, the same files and database objects must be available to the user of the application as are available in the development environment.

Carefully plan the directory structure into which to place the files comprising the generated application (.rdf, .bmp, .pll, and .ico files) before you follow the steps outlined in this topic. For example, you might decide to keep files with different extensions in different directories. In this case, the final directory structure might be similar to the one shown below:

In the above case, you would have to set the following Registry variables under the HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE key :

•	the paths to the \reports, \bitmaps, and \libs directories must each be included in the REPORTS60_PATH Registry variable

•	the path to the \icons directory must be included in the UI_ICON Registry variable

If you decide to keep all files comprising a generated application in one directory, you will only have to include one path in the REPORTS60_PATH Registry variable but you might find it less easy to maintain the application.

To ensure a generated application runs in a production environment:

1.	Install the correct Reports Runtime component to run the reports generated by Report Generator.

2.	Create the directory structure into which you will place files comprising the generated application.

3.	Include the path to each directory in the generated application's directory structure in the REPORTS60_PATH Registry variable.

4.	Set any other Registry variables required by the generated application.

For example, if you want to include iconic buttons, include the path to the directory containing the .ico files in the UI_ICON Registry variable.

5.	Copy the generated Oracle Reports executable files (.rep or .rdf files) to the appropriate directory in the production environment.

6.	Copy those shipped library files containing code referenced by generated modules from the <ORACLE_HOME>\cgenr61\crretc directory to the appropriate directory in the production environment.

The library files shipped with Report Generator are as follows:

Shipped library file	Containing code to support:	When is the library file required?
cgfmt.pll	formatting in bitmapped environments	If you generated a report using one of the three standard bitmap templates supplied with Report Generator
cgweb.pll	web reporting for reports upgraded from Oracle Designer Release 1.3.2	Whenever HTML, HTMLCSS or PDF files have been generated for reports upgraded from Release 1.3.2 (supplied for backwards compatibility only)

7.	Copy any other library files containing code referenced by generated modules to the appropriate directory in the production environment.

For example, libraries attached to template reports or attached to the module via a module network link.

8.	Copy any other files used by the application to the appropriate directory in the production environment.

For example, bitmaps and icons used in template reports must be available to the generated application, so move the .bmp and .ico files to the appropriate directory.

9.	Ensure users have access to database objects used by the application (including a CG_REF_CODES table).

10.	Ensure any server-side stored subprograms called by the generated application are installed on the server.

11.	Provide a mechanism for users to start the generated application (e.g. a program item or shortcut).


 Enhancing module design and customizing report layout

Once you have a basic module design, you can generate a first-cut application. From here, you will probably want to extend the functionality further and customize the layout of the application to suit your particular requirements.

For information on some of the more advanced aspects of design and generation, refer to the following topics:

Adding report objects

Enhancing query generation

Customizing report appearance and layout


 Adding report objects

Related Topics 	Where am I?

After you define the structure for the type of report that you want to generate, you can define the report objects that you want to include in your generated reports.

Adding parameters

About parameters

Creating arguments

Creating allowable values for arguments

Creating lists of values for generated parameters

Validating values entered in generated parameters

Combining parameter validation types

Using generated parameters to restrict report data

Using generated parameters to exchange data between modules

Creating parameters in template reports

About lexical parameters

Adding summaries

About computed summary items

Creating computed summary items

About SQL aggregate summary items

Creating SQL aggregate summary items

Adding formula items

About formula items

Creating formula items

Adding item groups

About item groups

Adding objects to HTML and PDF report output

Adding objects to HTML and PDF report output

Adding headers and footers

Creating header and trailer pages

Creating page headers and footers

Creating group headers

Adding graphical objects

Adding boilerplate text

Adding images

Adding buttons to display multimedia objects

Adding buttons to call PL/SQL functions and procedures

Adding buttons to call other reports

Adding journaling information

Displaying journaling information in generated reports


 About parameters

Related Topics 	Where am I?

A parameter is a variable whose value can be set at runtime. You can generate parameters to:

•	restrict the information displayed in a generated report

•	exchange data between generated modules in an application

Report Generator generates a parameter for each argument defined in the repository. For information about how to create arguments, refer to Creating arguments.

When you run a generated report containing parameters, Reports Runtime displays the generated parameters on the Runtime Parameter Form:

To run the report, the user enters a value in the parameter field.

You can provide a list of values for the user to choose from. Refer to Creating lists of values for generated parameters for more information. You can also validate parameters to check that the user entered a valid value. Refer to Validating values entered in generated parameters for more information.

You can also create parameters in the template report. Report Generator copies these parameters directly into the generated report during generation. Refer to Creating parameters in template reports for more information.

Note:	If you use report parameters as lexical parameters, you  must specify a default value on the module argument. Refer to About lexical parameters for more information.


 Creating arguments

Related Topics 	Where am I?

Report Generator generates a user parameter for each argument defined in the repository.  About

To create an argument:

1.	In the Design Editor Navigator, expand the node for the report module definition.

2.	Select the Arguments node and click [image].

3.	Specify values for the argument properties, refer to Repository argument properties used by Report Generator.

4.	Click [image].

5.	(Optional)  Create allowable values for the argument.  How

6.	(Optional)  Create a list of values for the generated parameter.  How

7.	(Optional)  Specify validation to perform on the generated parameter.  How

Next step

Use the generated parameter to:

•	restrict the data displayed in the report

•	exchange information between generated modules

Using generated parameters to restrict report data

Using generated parameters to exchange data between generated modules

Setting named passed values when calling reports


 About lexical parameters

Related Topics 	Where am I?

Lexical parameters are placeholders for text that you embed in a SELECT statement. Report Generator allows you to use lexical parameters to replace the WHERE clause of a select statement.

You cannot make use of lexical parameters in a PL/SQL statement. You can, however, use a bind reference in PL/SQL to set the value of a parameter that is then referenced lexically in SQL. You can create a lexical parameter by entering an ampersand (&) followed immediately by the parameter name. As a default definition is not provided for lexical parameters, you must do the following:

•	Create a report parameter for each lexical parameter in the query (parameter datatypes must be character). How

•	Enter a Default value, which Oracle Reports will use to validate a query with a lexical reference.

•	Specify the report parameters in the repository property "Restrictive WHERE clause" held on the detailed table usage.

This allows you to specify an additional condition for the WHERE clause when the report is run. The user enters the value of the lexical parameter using the Report Parameter Form. For examples, see below.

Example of a WHERE clause

SELECT ORDID, TOTAL FROM ORD WHERE &CUST

CUST can be used to restrict records retrieved from ORD.

Example of PL/SQL and SQL clauses

SELECT &BREAK_COL C1, MAX(SAL) FROM EMP GROUP BY &BREAK_COL

BREAK_COL is used to change both the SELECT list and the GROUP BY clause at runtime. The Initial Value of the parameter &BREAK_COL is JOB. At runtime, the user of the report can provide a value for a parameter called GROUP_BY_COLUMN (of Datatype Character). In the Validation Trigger for GROUP_BY_COLUMN, you call the following PL/SQL procedure and pass it the value of GROUP_BY_COLUMN:

procedure conv_param (in_var IN char) is

begin

 if upper(in_var) in

 ('DEPTNO','EMPNO','HIREDATE') then

   :break_col := 'to_char('||in_var||')' ;

 else

   :break_col := in_var;

 end if;

end;

This PL/SQL ensures that, if necessary, a TO_CHAR is placed around the break column the user chooses. Notice how in SQL, you make a lexical reference to BREAK_COL. In PL/SQL, you must make a bind reference to BREAK_COL because lexical parameters are not allowed in PL/SQL.


 About item groups

Related Topics

Item groups are made up of items and their prompts. The Report Generator treats each item group as a single layout object which defines display settings for its items. You can also nest multiple item groups within other item groups.

By creating item groups, you can build a layout which effectively displays relationships between the items. Item groups are necessary only when you are generating Group Above, Group Left, and Matrix reports. Since you do not need item groups for the other report styles, Report Generator will ignore any unnecessary grouping.

Break groups

You can create a break group by setting the Break Group property to Yes on the item group. A break group changes the display of data, breaking data and grouping it by the item you select in the module component. You can define additional break groups in a module component by creating one for each item group, to define a Group Above, Group Left, or Matrix report structure.

Layout item groups

A layout item group displays a group of related fields as a single unit on the report. You can create a layout item group by setting the item group Break Group property to No, and placing items in the layout item group. To specify the items that are a part of the break group or item group, use the Create Item Group dialog. Or, to create item groups using diagrams, see Creating item groups using diagrams.

For information about using item groups to create Group Above, Group Left, and Matrix reports, see:

About Group Above reports

About Group Left reports

About Matrix reports


 Creating allowable values for arguments

Related Topics 	Where am I?

You can create a static list of allowable values for a argument. You can then use these allowable values to populate a list of values or provide validation for a generated parameter.

To create allowable values for an argument:

1.	In the Design Editor Navigator, expand the node for the argument.

2.	Select the Allowable Values node and click [image].

3.	Set the Value property.

Note:	To create a range of allowable values, use the Value and High Value properties.

4.	Click [image].

5.	Repeat steps 2 to 4 for each allowable value that you want to create.

6.	(Optional) In the Navigator, arrange the allowable values in the order that you want them to appear in the generated list of values.

Next step

After creating allowable values for an argument, you can create a list of values for the generated parameter or use the allowable values to validate user input.

Creating lists of values for generated parameters

Validating values entered in generated parameters


 Creating lists of values for generated parameters

Related Topics 	Where am I?

You can provide lists of values for generated parameters. Lists of values can be populated with:

•	allowable values that are specified for the argument, column or domain. These lists of values can be static or dynamic:

−	static lists of values are based on allowable values that are specified against the repository objects

−	dynamic lists of values are based on values stored in the reference code table

•	column values retrieved for the base table

•	descriptor columns

To create a list of values for a generated parameter:

1.	In the Design Editor Navigator, select the container (i.e. folder or application system) or report module definition.

Note:	If you select the container, the following settings will be applied to all reports generated for the container. If you select a module, the settings will only be applied to the report generated from that module.

2.	Click the [image] toolbar button to display the Preference Palette.

Note:	If you selected the container, you may have to select Report Generator from the Product drop-down list to display the Report Generator preferences.

3.	Expand the Parameters node.

4.	Specify the source of the values in the generated list by setting the LOVTYP preference.

5.	(Optional)  If you want to hide the first column in the generated list of values set the LOVHFC preference.

6.	Click [image] to save your changes.

7.	If the list is to be populated with allowable values specified for an argument, column or domain:

•	set the Dynamic List? property of the argument, column, or domain to specify whether the generated list of values is static or dynamic.

•	set the Suggestion List? property of the argument, column, or domain to specify whether users are restricted to selecting a value from the list or whether they can enter a different value.

Next step

After creating a list of values for a generated parameter, generate the report.

Generating report output


 Validating values entered in generated parameters

Related Topics 	Where am I?

You can validate the values that users enter in generated parameters. Parameter input can be validated against:

•	allowable values specified for an argument, column or domain. The allowable values may be defined in the repository, or they may be stored in the reference code table

•	column values selected for the base table

You can also display error messages whenever users enter invalid values.

To validate parameter input:

1.	Select the container (i.e. folder or application system) or report module definition.

Note:	If you select the container, the following settings will be applied to all reports generated for the container. If you select a module, the settings will only be applied to the report generated from that module.

2.	Click the [image] toolbar button to display the Preference Palette.

Note:	If you selected the container, you may have to select Report Generator from the Product drop-down list to display the Report Generator preferences.

3.	Expand the Parameters node.

4.	Specify the type of parameter validation by setting the VALTYP and VALCMB preferences.

5.	(Optional)  To display an error message when users enter an invalid value, set the PAREMG, PARENM and PARFOE preferences.

6.	Click [image] to save your changes.

Next step

After specifying validation for a generated parameter, generate the report.

Generating report output


 Combining parameter validation types

Related Topics 	Where am I?

To combine validation types, set the VALTYP preference to a combination of the PV, CV and BT values. Separate each value with a period (.).

The following table illustrates the possible combinations:

To allow:	Set VALTYP to:	Set VALCMB to:
Parameter validation only (if it exists)	PV	Yes
Column validation only (if it exists)	CV	Yes
Base table validation only (if conditions are satisfied)	BT	Yes
Parameter validation (if it exists) and column validation (if no parameter validation exists).	PV.CV	Yes
Parameter validation (if it exists), column validation (if no parameter validation exists) and base table validation (if the parameter is associated with a single bound item).	PV.CV.BT	Yes
Column validation and base table validation.	CV.BT	Yes
Parameter validation and base table validation.	PV.BT	Yes
Parameter validation only (if it exists)	PV	No
Column validation only (if it exists)	CV	No
Base table validation only (if conditions are satisfied)	BT	No
Parameter validation (if it exists) and column validation (if no parameter validation exists).	PV.CV	No
Parameter validation (if it exists), column validation (if no parameter validation exists) and base table validation (if no parameter or column validation exists).	PV.CV.BT	No
Column validation (if it exists) and base table validation (if no column validation exists)	CV.BT	No
Parameter validation (if it exists) and base table validation (if no parameter validation exists)	PV.BT	No


Using generated parameters to restrict report data

Related Topics 	Where am I?

You can use parameters to restrict the information displayed in a generated report. For example, in a report that lists employees, you might want to restrict the report to display only those employees with a specified job title.

To do this you specify an association between the argument that represents the parameter and a repository item. For example, to generate the report described above, you would specify an association between the argument and the POSITION item. This association is known as an argument item usage.

Report Generator includes the argument item usage in the generated query during generation, depending on the type of query and the type of item to which the argument is bound. In general, Report Generator will add the argument item usage to the WHERE clause.

To restrict report data using a generated parameter:

1.	In the Design Editor Navigator, expand the node for the argument.

2.	Select the Argument Item Usages node and click [image].

3.	Select the item(s) that you want to associate the argument with.

4.	Click OK.

5.	In the Navigator, select the argument item usage that you just created.

6.	Make sure Options→Use Property Palette is selected and click the [image] toolbar button.

7.	Specify the Operator to apply to the parameter, for example = or !=.

8.	Click

Notes

•	If you associate an argument with a SQL aggregate unbound item, Report Generator adds a HAVING clause to the generated query, rather than a WHERE clause.

•	If you associate an argument with an item that is sourced from a treewalk query, Report Generator will include the usage in the CONNECT BY clause of the generated query. If the operator is START WITH, Report Generator will include the usage in the START WITH clause of the generated query

•	You can associate an argument with more than one item.

•	You can associate more than one argument with the same item. For example, if you are generating a report that displays video rental records, you could use parameters to display only those records for a specified period of time. To do this:

−	create two arguments, P_START_PERIOD and P_END_PERIOD

−	associate both of these arguments with the TRANSACTION_DATE item

−	set the Operator property of P_START_PERIOD to >= and the Operator property of P_END_PERIOD to <=

•	If you associate an argument with a bound item, Report Generator treats the table usage containing the item as a base table usage for the purposes of parameter validation and lists of values creation (i.e. regardless of whether the table usage is a base table usage or a lookup table usage).

Next step

After associating an argument with an item to restrict report data, generate the report.

Generating report output


 Using generated parameters to exchange data between modules

Related Topics 	Where am I?

Your application may be generated from more than one module (including modules of different languages), for example if you create a drilldown report. In such cases you may want to pass information between these modules.

To do this you specify the arguments that the called module expects to receive (arguments) and the values that the calling module will pass to those arguments (passed values).

Note:	The modules must be connected via a module network link.

Note:	You can link report modules to modules of different languages:

Language of calling module:	Language of called module:
Oracle Forms	Oracle Reports
Oracle Reports	Oracle Reports
To exchange data between modules using generated parameters:

1.	Make sure the called and calling modules are connected via a module network link. If they are not, create a module network link.  How

2.	In the Design Editor Navigator, select the called module.

3.	Create an argument.  How

4.	Create an argument item usage for the argument.  How

5.	Expand the node for the calling module.

6.	Expand the Called Modules node.

7.	Expand the node for the module being called.

8.	Select the Argument Passed Values node and click [image].

9.	Select the module argument and click OK.

10.	Set the Passed From properties as appropriate.

11.	Click [image].

Next step

After creating arguments and passed values to exchange data between reports and other modules, generate the report.

Generating report output


  Setting named passed values when calling reports

Related Topics 	Where am I?

Why set named passed values?

When Report Generator generates a report, it creates code to handle a number of standard arguments passed to the report when it is called. You can specify values for these standard arguments by setting named passed values in the calling report.

To set named passed values:

1.	In the calling repository module, create a new named passed value to pass to the called repository module. How

2.	Set the Name property of the named passed value to one of the following:

Named passed value:	Use to specify:	Valid values:
ARRAYSIZE	the size of the array in kilobytes for use with ORACLE array processing	A number from 1 through 9,999
AUTOCOMMIT	whether database changes (e.g., CREATE) should be automatically committed to the database	YES NO (default)
BACKGROUND	whether the report should be run in the background	YES NO (default)
BATCH	suppression of all terminal input and output, in order to convert reports/libraries without user intervention	YES NO (default)
BUFFERS	the size of the virtual memory cache in kilobytes	A number from 1 through 9,999
CMDFILE	arguments for the RWBLD60 command	Any valid command file
COPIES	the number of copies of the report output to print	Any valid integer from 1 through 9,999
CURRENCY	the currency character to be used in number formats	Any valid alphanumeric string not to exceed 1K in length
DECIMAL	the decimal character to be used in number formats	Any valid alphanumeric character
DESFORMAT	specifies the printer driver to be used when DESTYPE is FILE	PDF HTML HTMLCSS RTF
DESNAME	the name of the file, printer, InterOffice directory, or email ID (or distribution list) to which the report output will be sent	Any valid filename, printer name, or email ID not to exceed 1K in length
DESTYPE	the type of destination device that will receive the report output	SCREEN FILE PRINTER PREVIEW MAIL INTEROFFICE
ERRFILE	the name of a file in which you want Oracle Reports to store error messages	Any valid filename
JOBNAME	a job to appear in the Reports Queue Manager
LONGCHUNK	the size (in kilobytes) of the increments in which Oracle Reports retrieves a LONG column value	A number from 1 through 9,999
MODE	whether to run the report in character mode or bitmap	BITMAP DEFAULT (default) CHARACTER
NONBLOCKSQL	whether to allow other programs to execute while Reports Runtime is fetching data from the database	YES (default) NO
ONFAILURE	whether you want a COMMIT or ROLLBACK performed if an error occurs and a report fails to complete	COMMIT ROLLBACK NOACTION
ONSUCCESS	whether you want a COMMIT or ROLLBACK performed when a report is finished executing	COMMIT ROLLBACK NOACTION
ORIENTATION	the direction in which the pages of the report will print	DEFAULT (default) LANDSCAPE PORTRAIT
PAGESIZE	the dimensions of the physical page (i.e., the size of the page that the printer outputs)	Any valid page dimensions of the form
PARAMFORM	whether to display the Runtime Parameter Form when you execute a report	YES (default) NO
PRINTJOB	whether the Print Job dialog box should be displayed before running a report	YES (default) NO
READONLY	read consistency across multiple queries in a report	YES NO (default)
SCHEDULE	a scheduling command	Now (default)
SERVER	the TNS address of the Reports Server	Any valid TSNAME
THOUSANDS	the thousands character to be used in number formats	Any valid alphanumeric character
TOLERANCE	the time tolerance for duplicate job detection in minutes	Any valid number
USERID	your ORACLE username and password with an optional database name, SQL*Net communication protocol to access a remote database, or ODBC datasource name (if accessing other databases)

3.	Set the Value property of the named passed value to one of the valid values listed above.


 Creating parameters in template reports

Related Topics 	Where am I?

You can create parameters in the template report to provide enhanced functionality, such as custom default values, application-standard accessibility, access control, and custom parameter forms that use an Oracle Forms form as an interface.

Report Generator copies template parameters straight into the generated report.

To create a parameter in the template report:

1.	Start Report Builder.

2.	Open the template report.

3.	Expand the Data Model node.

4.	Create a new parameter.  How

You can:

•	specify a list of values for the parameter  How

•	validate parameter input  How

5.	Save the template report.

6.	In the Design Editor, specify that you want to use the template to generate the report.  How

Note:	You can use template parameters to restrict the information displayed in the generated report by editing the repository table usage WHERE Clause of Query property.

Next step

After creating a parameter in the template report, generate the report.

Generating report output


 About computed summary items

Related Topics 	Where am I?

A computed summary item is a calculation, such as a subtotal or grand total, that is performed on the values of a single item. A computed summary is calculated on the client.

Report Generator creates a Summary Column in the generated report for each computed summary item.

You define a computed summary item by creating a Computed unbound item. For information about how to do this, refer to Creating computed summary items.

When you create a Computed unbound item, you set the following properties of the summary:

Item used	The value or values of a computed summary item are calculated by summarizing data retrieved from another item.
Function	The summary function defines how to compute the value of the computed summary item. Oracle Designer provides default functions to calculate the following types of computed summaries:
	• average value	• count of values
	• first or last value	• maximum or minimum value
	• percentage of a total	• standard deviation
	• sum of values	• variance
Reset level	The reset level specifies where the summary is calculated. You can calculate a summary at the following levels:
	Current group	Calculates a group summary.
	Parent group	Calculates a summary for each record in the master group.
	Module	Creates a report-level summary
	Page	Creates a page-level summary that calculates a value using all of the records that appear on a logical page of a generated report. Note: If you are creating a page-level summary, your report must use a template that includes the CG$PS<n> generator object. Refer to Adding generator objects to template reports for more information.
	Named group	Calculates a summary using the specified break group. Use this option if you are defining a summary for a report that contains more than one break group, such as a Group Left report or a Matrix report. If you use this option you also need to specify the name of the break group.


 Creating computed summary items

Related Topics 	Where am I?

A computed summary item is a calculation, such as a subtotal or grand total, that is performed on the values of a single item. A computed summary is calculated on the client.  About

To create a computed summary item based on an item in the same module component, or any module component below it:

1.	Open the module diagram for the module that represents the report.

2.	Create an unbound item in the module component that contains the group in which you want the computed item to appear.  How

•	Set the type of the unbound item to Computed.

•	Set the function and the item to use as the source of the summary:

if you are using the property dialog, use the drop-down lists to select the function and item

if you are using the property palette, enter the function and item in the Derivation Text property

•	Set the level at which the summary will be calculated:

if you are using the property dialog, select one of the options

if you are using the property palette, use the Reset Level property

Note:	If you are generating a report that contains more than one break group, for example, a Group Left or a Matrix report, select the Named Group option then specify the break group in the Group name dialog field or the Reset Group property.

To create a computed summary item based on any item in the same module, at page level or report level:

1.	Open the module diagram for the module that represents the report.

2.	Create a module component.  How

•	Specify that the module component is a module level component:

if you are using the property dialog, check the Module level? check box

if you are using the property palette, set the Module Level? property to Yes

3.	Create an unbound item in the module level component that you just created.  How

Note:	You cannot create a summary item in a module component which references an item in a module component above it.

•	Set the type of the unbound item to Computed.

•	Set the function and the item to use as the source of the summary:

if you are using the property dialog, use the drop-down lists to select the function and item

if you are using the property palette, enter the function and item in the Derivation Text property

•	Set the level at which the summary will be calculated:

if you are using the property dialog, select Page or Module

if you are using the property palette, set the Reset Level property to Page or Module

Note:	If you are generating a report that contains more than one break group, for example, a Group Left or a Matrix report, select the Named Group option then specify the break group in the Group name dialog field or the Reset Group property.

Notes

Do not create a summary item referencing a bound item displayed in a group above the summary item. Instead:

•	create a second bound item based on the same column as the original bound item, but in the group containing the summary item

•	set the Display property of the second bound item to No

•	reference the non-displayed bound item in the summary item

Next step

Generate the report to create the computed summary item or add other objects to the report.

Generating report output

Adding report objects


 Example of a computed summary in a report with multiple breaks

Related Topics

Sample report:

Module structure (data view):

Module structure (display view):

COUNT_COPIES is an unbound item with the following properties:

Unbound Type	Computed
Reset Level	Named Group
Reset Group	GRPLFTITG1
Derivation Text	COUNT(INVENTORY_NUMBER)
TOTAL_COPIES is an unbound item with the following properties:

Unbound Type	Computed
Reset Level	Module
Derivation Text	COUNT(INVENTORY_NUMBER)


 About SQL aggregate summary items

Related Topics 	Where am I?

A SQL aggregate summary item is an item that computes a value by applying a SQL aggregation function to a column. A SQL aggregate summary is calculated on the server and the result returned to the client.

Report Generator includes the SQL aggregate summary item or items in the query generated for the module component. Report Generator includes an aggregate item in the generated query either by adding it as a single item in the SELECT list, or by including it in an embedded table.

A SQL aggregate item is added to the SELECT list when:

•	only one aggregate item is defined for the module component

•	the query generated for this module component will not be merged with a parent or a child module component during generation. For more information about query merging, refer to Merging master and detail queries

In all other cases, Report Generator adds the SQL aggregate item as an embedded table in the generated query.

The SQL aggregate calculation is an expression that can include references to any item in the current module component and any item in a previous module component linked to the current module component. The expression can also include literal values, for example:

count(title) + 10

SQL aggregates of base table or lookup table columns

You can create a SQL aggregate item to summarize columns in a base table or lookup table usage. When you define a SQL aggregate summary item in this way, the module component containing the SQL aggregate item is known as a multiple-row SQL aggregate (MRSA):

Note:	An MRSA module component cannot be the master in a master-detail relationship using a key based link. However, it can be linked to other module components by a shared data link and be the detail in a master-detail relationship.

SQL aggregates of non-base table columns

You can create a SQL aggregate item to summarize columns in tables other than the base table and its lookups. To do this you must define a Single Row SQL Aggregate (SRSA) table usage for the non-base table.

Note:	If you have a SQL aggregate summary item that refers to columns from more than one table, you should make sure that the expression will produce a meaningful result. For example the SQL aggregate expression:

SUM(EMP.SAL) + SUM(DEPT.OVERHEAD)

would not return a meaningful result because OVERHEAD is the overhead for the entire department, not a single employee. However:

SUM(EMP.SAL) + SUM(DEPT.EMP_BONUS)

would return a meaningful result because EMP_BONUS is the fixed bonus amount to be paid to each person in the department.

For information about how to create SQL aggregate summary items, see Creating SQL aggregate summary items.

Note:	If you associate a module argument on a SQL aggregate unbound item, Report Generator adds a HAVING clause to the query generated for the module components. For information about associating module arguments with unbound items, refer to Using generated parameters to restrict report data.


 Creating SQL aggregate summary items

Related Topics 	Where am I?

You can create a SQL aggregate item for:

•	a column from the base or lookup table.

•	a column from any table that shares a key based link with the base table.

About

To create a SQL aggregate item for a column in the base or lookup table:

1.	Create an unbound item in the module component that contains the group in which you want the SQL aggregate summary item to appear.  How

2.	Specify a unique name for the SQL aggregate item.

3.	Set the type of the unbound item to SQL Aggregate.

4.	Enter the SQL aggregate expression.

If you are using the property dialog, use the dropdown lists to select the functions and columns.

If you are using the Property Palette, enter the SQL aggregate expression in the Derivation Text property of the unbound item.

To create a SQL aggregate summary for a column in a different table:

1.	Create a Single Row SQL Aggregate (SRSA) table usage in the module component that contains the group in which you want the SQL aggregate summary item to appear.  How

2.	Create an unbound item.  How

3.	Specify a unique name for the SQL aggregate item.

4.	Set the type of the unbound item to SQL Aggregate.

5.	Enter the SQL aggregate expression.

If you are using the property dialog, you can use the dropdown lists to select the functions and columns.

If you are using the property palette, enter the SQL aggregate expression in the Derivation Text property of the unbound item.

Next step

Generate the report to create the SQL aggregate item or add other objects to the report.

Generating report output

Adding report objects


 About formula items

Related Topics 	Where am I?

Create a formula item to display values that are derived from calculations on other items, parameters, global variables, system variables or constants.  How

For example, you can calculate sales tax on rentals using the following formula:

DAILY_CHARGE * .075

Formula items can also call functions that are stored on the server or the client. For example, you can call the function CALC_CHARGES to calculate the total rental charges.

calc_charges (RENTAL_PERIOD, DAILY_CHARGE)


 Creating formula items

Related Topics 	Where am I?

You can generate a field that derives its value from a SQL expression, a function stored on the client, or a function stored on the server.  About

To create a formula item:

1.	Create an unbound item in the module component that contains the group in which you want the formula item to appear.  How

2.	Specify a unique name for the formula item.

3.	Select one of the following Unbound Types:

SQL Expression	To calculate the value using a SQL expression. The expression is added to the generated query and is executed on the server.
Client Side Function	To calculate the value using a call to a function that resides on the client. (For example, in the template or in a library attached to the template.)
Server Side Function	To calculate the value using a call to a function that resides on the server. The function call is added to the generated query and is executed on the server.
4.	Enter the expression or function call. For example:

DAILY_CHARGE * .075

or

calc_charges (RENTAL_PERIOD, DAILY_CHARGE)

If you are using the property dialog, you can use the dropdown lists to select the items and functions.

If you are using the property palette, enter the expression or function call in the Derivation Text property of the unbound item.

Next step

Generate the report to create the formula item or continue adding other objects to the report.

Generating report output

Adding report objects


 Adding objects to HTML and PDF report output

Related Topics 	Where am I?

Adding bookmarks

About bookmarks

Creating bookmarks for repository items

Creating bookmarks for template objects

Adding hyperlinks

About hyperlinks

Creating hyperlinks for repository items

Creating hyperlinks for template objects

Creating tags for repository items

Creating tags for template objects

Adding PDF command links

About command links

Creating PDF command links for repository items

Creating PDF command links for template objects

Creating HTML headers and footers


 About bookmarks in HTML and PDF report output

Related Topics 	Where am I?

Bookmarks provide direct access to fields and objects in HTML and PDF reports.

In a generated HTML report, bookmarks are displayed in the left frame:

In a PDF report, bookmarks are displayed in the bookmark window:

When a user clicks a bookmark, the record or object is displayed at the top of the browser or viewer.

You can generate bookmarks for:

•	bound and unbound repository items  How

•	objects in the header, trailer or margin regions of the template report  How

Note:	To add bookmarks for objects in the body of the template, edit the generated report definition file (.rdf)

Notes

You can generate only one set of bookmarks for each group in a report.

You cannot generate bookmarks for the following types of fields:

•	fields in a matrix group

•	summary fields

•	fields based on a item with an IMAGE, BUTTON, LONG, or OLE Display Datatype.

•	fields that include boilerplate text or graphics or other types of column text.


 Creating HTML and PDF bookmarks for repository items

Related Topics 	Where am I?

You can generate bookmarks for objects in HTML and PDF reports.  About

To generate a bookmark for a bound or unbound item:

1.	In the Design Editor Navigator, select the bound or unbound item that you want to generate as a bookmark.

2.	Make sure Options→Use Property Palette is selected and click the [image] toolbar button.

3.	Change the value of the Context? property to Yes.

Note that Report Generator also uses the Context? property to determine which columns are displayed on overflow pages. Therefore, if you specify that an item is to be displayed on an overflow page, that item will also be bookmarked.

Hint: A group bookmark may contain values from more than one column. For example, you can generate bookmarks that display both the department name and number for each record. To do this, display the properties of the other item and set the Context? property to Yes.

4.	Click [image] to save your changes.

Next step

To test the bookmark, generate the report for HTML or PDF output. Or, continue adding objects to the report.

Generating report output

Adding report objects


 Creating HTML and PDF bookmarks for template objects

Related Topics 	Where am I?

You can generate bookmarks for objects in the header, trailer, or margin regions of the template report.  About

You can generate bookmarks for template objects in two ways:

•	specify the bookmark name in the object's Bookmark property

•	add a PL/SQL program unit to the template object.

The first method provides a simpler way of generating a bookmark, but if you want to generate a dynamic bookmark, you must use PL/SQL.

To generate a non-dynamic bookmark:

1.	Open the template report in Report Builder.

2.	Display the properties of the template object that you want to bookmark.

3.	In the Web Link section of the Property Palette, set the Bookmark property to a name for the bookmarked object. This name will be displayed in the left frame of the generated HTML report or the bookmark window of the generated PDF report.

You can control the order and indentation of generated bookmarks by entering a number and the hash (#) symbol before the bookmark name. First level bookmarks are specified using the number 0. Therefore to generate a bookmark named 'Application System' as the fourth object in the bookmark list, set the Bookmark property to:

3#Application System

You can indent a bookmark by adding a decimal place to the number that precedes the hash symbol. For example to indent a first level bookmark, enter 0.1#

4.	Save the template report.

To generate a dynamic bookmark:

1.	Open the template report in Report Builder.

2.	Display the Format Trigger for the template object in the PL/SQL Editor.

3.	Modify the format trigger to call the SRW.SET_BOOKMARK built-in procedure.

For example:

function CG$MN_TITLE_PAGEFormatTrigger return boolean is
begin
   SRW.SET_BOOKMARK('3#Application System');
   return (TRUE);
end;

4.	To add bookmarks to other objects, modify the format trigger for each object.

5.	Compile the program unit and close the PL/SQL Editor.

6.	Save the template report.

Next step

To test the bookmark, generate the report for HTML or PDF output. Or, continue adding objects to the report.

Generating report output

Adding report objects


 About hyperlinks in HTML and PDF report output

Related Topics 	Where am I?

You can generate hyperlinks for the fields and objects in HTML and PDF reports.

You can generate hyperlinks for:

•	bound and unbound repository items  How

•	objects in the header, trailer or margin regions of the template report  How

Note:	To add hyperlinks for objects in the body of the template, edit the generated report definition file (.rdf)

The target of a generated hyperlink can be a URL, another record or object, or another report or document.

If the target of the hyperlink is a repository item or a template object, you can generate the tags that identify these objects as hyperlink destinations:

•	tags for bound and unbound repository items  How

•	tags for objects in the header, trailer or margin regions of the template report  How

Note:	To add tags for objects in the body of the template, edit the generated report definition file (.rdf)

If you are generating a report from a Group Above or drilldown module structure, you can create links that dynamically display the values in the detail report whenever a user clicks a matching value in the master report.

Note:	To follow a hyperlink from a PDF report to an HTML document or to a report saved on another machine, integrate your PDF viewer with a web browser such as Netscape Navigator.


 Creating HTML and PDF hyperlinks for repository items

Related Topics 	Where am I?

You can generate hyperlinks for fields and objects in HTML and PDF reports.  About

To generate a hyperlink for a bound or unbound item:

1.	If the target of the hyperlink is a bound or unbound item or an object in the template, generate a tag:

•	if the target is a bound or unbound item, assign a tag name to the item.  How

•	if the target is an object in the template, generate a tag for the object.  How

If the target is a document or a URL, you do not need to generate a tag. Simply use the filename or the URL when you create the link.

2.	In the Design Editor Navigator, select the bound or unbound item that you want to generate as a hyperlink. Choose an item that contains unique values, such as one created for a primary key column.

3.	Enter the following procedure call against the Format Trigger event of the item:

SRW.SET_HYPERLINK(target);

How

Next step

To test the links, generate the report for HTML or PDF output. Or, continue adding objects to the report.

Generating report output

Adding report objects


 Creating HTML and PDF hyperlinks for template objects

Related Topics 	Where am I?

You can generate hyperlinks for objects in header, trailer, or margin regions of the template report.  About

You can generate hyperlinks for template objects in two ways:

•	specify the hyperlink target using the Hyperlink Template property

•	add a PL/SQL program unit to the template object.

The first method provides a simpler way of generating a hyperlink, but if you want to generate a dynamic hyperlink, you must use PL/SQL. Example of dynamic Hyperlink

To generate a non-dynamic hyperlink:

1.	Open the template report in Report Builder.

2.	Display the properties of the template object.

3.	In the Web Link section of the Property Palette, enter the target of the hyperlink in the Hyperlink (HTML/PDF) property, for example:

http://www.oracle.com

4.	Save the template report.

To generate a dynamic hyperlink:

1.	Open the template report in Report Builder.

2.	If the target of the hyperlink is a bound or unbound item or an object in the template, generate a tag:

•	if the target is a bound or unbound item, assign a tag name to the item.  How

•	if the target is an object in the template, generate a tag for the object.  How

If the target is a document or a URL, you do not need to generate a tag. Simply use the filename or URL when you create the link.

3.	Display the Format Trigger for the template object in the PL/SQL Editor.

4.	Modify the format trigger to call the SRW.SET_HYPERLINK built-in procedure.

function CG$MN_TITLE_PAGEFormatTrigger return boolean is
begin
   SRW.SET_HYPERLINK(target);
   return (TRUE);
end;

5.	Compile the program unit and close the PL/SQL Editor.

6.	Save the template report.

Next step

To test the links, generate the report for HTML or PDF output. Or, continue adding objects to the report.

Generating report output

Adding report objects


 Syntax of hyperlink targets

Related Topics 	Where am I?

The following table includes sample syntax for specifying the location of the target of a hyperlink. Use this syntax with the SRW.SET_HYPERLINK built-in procedure.

Target	Sample Syntax
The top of another document	'file:/orawin/bin/document.pdf' 'file:///C|/orawin/bin/document.pdf' 'http://www.system.com/document.html'
A specific location in the same document	'#my_tag'
A specific location within a local document	'file:/orawin/bin/document.pdf#my_local_tag'
A specific location in a remote document	'http://www.system.com/document.html#my_remote_tag'
A link that dynamically links the values of a repository item to matching values in a target repository item.	:alias_of_the_target_repository_item


Dynamic hyperlink example

Related Topics 	Where am I?

In a report that displays employee records, you can create links from the values in the manager column to the values in the employee number column.

To do this, create tags for the EMPNO column:

SRW.SET_LINKTAG(:MGR)

and hyperlinks for the MGR column:

SRW.SET_HYPERLINK('#:EMPNO')

Note that the tags on the EMPNO column are mapped to the MGR column and that the hyperlinks on the MGR column are mapped to the EMPNO column. When a user clicks on a manager's record in the generated report, the manager's employee record is displayed.


 Creating HTML and PDF tags for repository items

Related Topics 	Where am I?

You can create dynamic links at runtime to map the values of one column to the values of another.

For example, in a report that lists employee records, you can create links from the values in the manager column to matching values in the employee column. In the generated report, users can click on a value in the manager column of an employee record to display the employee record for the manager.

Example

To generate a tag for a bound or unbound item:

1.	In the Design Editor Navigator, select the bound or unbound item that you want to tag. Choose an item that contains unique values, such as one created for a primary key column.

2.	Enter the following procedure call against the Format Trigger event of the item:

 SRW.SET_LINKTAG(:hyperlink_bound_item_alias);

where hyperlink_bound_item_alias is the alias of the bound item for the generated hyperlink.

How

Next Step

To test the tags, generate the report for HTML or PDF output. Or, continue adding objects to the report.

Generating report output

Adding report objects


 Creating HTML and PDF tags for template objects

Related Topics 	Where am I?

You can generate a tag for an object that appears in header, trailer, or margin regions of a report.  About

After you generate a tag for an object, you can use it as the target of a hyperlink.

To assign a tag to an object in the template report:

1.	Open the template report in Report Builder.

2.	Display the Format Trigger of the template object in the PL/SQL Editor.

3.	Modify the format trigger to call the SRW.SET_LINKTAG built-in procedure:

function CG$MN_TITLE_PAGEFormatTrigger return boolean is
begin
   SRW.SET_LINKTAG('tag');
   return (TRUE);
end;

where tag is a unique name. The name may contain numbers, the underscore character, or any of the 26 ASCII letters.

4.	Compile the program unit and close the Program Unit editor.

5.	Save the template report.

Next Step

To test the tags, generate the report for HTML or PDF output. Or, continue adding objects to the report.

Generating report output

Adding report objects


 About command links in PDF report output

Related Topics 	Where am I?

You can associate a command with an object in a PDF report. For example, you can generate an object that starts an application executable whenever a user clicks on the object in the generated report.

You can associate commands with the following types of objects:

•	bound and unbound repository items  How

•	objects in the header, trailer or margin sections of the template report  How

Note:	To add command links for objects in the body of the template, edit the generated report definition file (.rdf)


 Creating PDF command links for repository items

Related Topics 	Where am I?

You can associate a command with a bound or unbound repository item.  About

To generate a command link for a bound or unbound item:

1.	In the Design Editor Navigator, select the bound or unbound item that you want to generate as a command link. Do not select an item that represents a hyperlink. An item that is associated with a command link cannot also be the source of a hyperlink.

2.	Enter the following procedure call against the Format Trigger event of the item:

SRW.SET_ACTION('command');

where command is the command to be executed, plus any command line options, for example:

SRW.SET_ACTION('C:\orant\bin\r60run report=myreport.rdf');

How

Next step

To test the tags, generate the report for HTML or PDF output. Or, continue adding objects to the report.

Generating report output

Adding report objects


 Creating PDF command links for template objects

Related Topics 	Where am I?

You can associate a command with an object in the header, trailer, or margin regions of a PDF report.  About

You can generate PDF command links for template objects in two ways:

•	specify the name of the application executable using the PDF Action and Application Command Line (PDF) properties.

•	add a PL/SQL program unit to the template object.

The first method provides a simpler way of generating a command link, but if you want to generate a dynamic command link, you must use PL/SQL.

To generate a non-dynamic PDF command link:

1.	Open the template report in Report Builder.

2.	Display the properties of the template object.

3.	In the Web Link section of the Property Palette, set the PDF Action property to Launch Application.

4.	Set the Application Command Line (PDF) property to the location, name, and parameters of the application executable. For example:

C:\orant\bin\r60run report=myreport.rdf

5.	Save the template report.

To generate a dynamic PDF command link:

1.	Open the template report in Report Builder.

2.	Display the Format Trigger for the template object in the PL/SQL Editor.

3.	Modify the format trigger to call the SRW.SET_ACTION built-in procedure.

For example:

function CG$MN_TITLE_PAGEFormatTrigger return boolean is
begin
   SRW.SET_ACTION('C:\orant\bin\r60run report=myreport.rdf');
   return (TRUE);
end

4.	Compile the program unit and close the PL/SQL Editor.

5.	Save the template report.

Next step

To test the command link, generate the report for HTML or PDF output. Or, continue adding objects to the report.

Generating report output

Adding report objects


 Creating HTML headers and footers

Related Topics 	Where am I?

When you run a report that you generated for HTML output, Report Runtime uses the default Oracle Reports settings to create document and page headers and footers.

You can override these settings by generating custom headers and footers for documents, pages and parameter forms. The contents of the header or footer can be a file or text string.

To generate custom document, page, and parameter form headers:

1.	Open the template report in Report Builder.

2.	Display the Before Report Trigger for the template in the PL/SQL Editor.

3.	Modify the trigger to call one of the following built-ins:

•	for document headers, call the SRW.SET_BEFORE_REPORT_HTML built-in

•	for page headers, call the SRW.SET_BEFORE_PAGE_HTML built-in

•	for parameter form headers, call the SRW.SET_BEFORE_FORM_HTML built-in

4.	In the call to the built-in, include the file or text string to be displayed and specify the appropriate built-in (either SRW.FILE_ESCAPE or SRW.TEXT_ESCAPE).

For example:

function BeforeReport return boolean is
begin
   SRW.SET_BEFORE_REPORT_HTML(SRW.FILE_ESCAPE,'file_name.htm');
   return (TRUE);
end;

5.	Compile the program unit and close the Program Unit editor.

6.	Save the template report.

To generate custom document, page, and parameter form footers:

1.	Open the template report in Report Builder.

2.	Display the After Report Trigger for the template in the PL/SQL Editor.

3.	Modify the trigger to call one of the following built-ins:

•	for document footers, call the SRW.SET_AFTER_REPORT_HTML built-in

•	for page footers, call the SRW.SET_AFTER_PAGE_HTML built-in

•	for parameter form footers, call the SRW.SET_AFTER_FORM_HTML built-in

4.	In the call to the built-in, include the file or text string to be displayed and specify the appropriate built-in (either SRW.FILE_ESCAPE or SRW.TEXT_ESCAPE).

For example:

function AfterReport return boolean is
begin
   SRW.SET_AFTER_REPORT_HTML(SRW.TEXT_ESCAPE,'text string');
   return (TRUE);
end;

5.	Compile the program unit and close the Program Unit editor.

6.	Save the template report.

Next step

To test the links, generate the report for HTML output. Or, continue adding objects to the report.

Generating report output

Adding report objects


 Creating header and trailer pages

Related Topics 	Where am I?

Header and trailer pages enable you to display information at the beginning and end of a report.

You create header and trailer pages by creating objects in the header and trailer sections of template reports. Objects you can create include:

•	boilerplate text

•	graphical objects, for example rectangles or circles

•	date and time fields

•	page numbers

•	generator objects, for example to display the application system name or module name

To create a header or trailer page:

1.	Open the template report in Report Builder.

2.	Choose Tools→Template Editor.

3.	To create a header page:

•	Click the [image] toolbar button.

•	Add the objects that you want to display on the header page. For example you might want to add a company logo or some descriptive boilerplate text.

To create a trailer page:

•	Click the [image] toolbar button.

•	Add the objects that you want to display on the trailer page. For example you might want to add some closing boilerplate text.

4.	Save the template report.

Next step

After creating header and trailer pages, generate the report (making sure the template report in which you created the header and trailer pages is specified against the report). Or, continue adding objects to the report.

Generating report output

Specifying template reports

Adding report objects


 Creating page headers and footers

Related Topics 	Where am I?

Page headers and footers enable you to display objects, such as boilerplate or graphical objects at the top and bottom of every page of a report.

You create page headers and footers by creating objects in the margins of template reports. Objects you can create include:

•	boilerplate text

•	graphical objects, for example rectangles or circles

•	date and time fields

•	page numbers

•	generator objects, for example to display the application system name or module name

To create a page header or footer:

1.	Open the template report in Report Builder.

2.	Choose Tools→Template Editor.

3.	Click the [image] toolbar button.

4.	To create a page header:

Add the objects that you want to display in the page header in the top margin (i.e. above the first thick black line). For example you might want to add a date field or some boilerplate text.

To create a page footer:

Add the objects that you want to display in the page footer in the bottom margin (i.e. below the second thick black line). For example you might want to add page numbers or a generator object to display page level summaries.

5.	Save the template report.

For more information about template reports, refer to Using templates for report generation.

Next step

After creating page headers and footers, generate the report (making sure the template report in which you created the headers and footers is specified against the report). Or, continue adding objects to the report.

Generating report output

Specifying template reports

Adding report objects


 Creating group headers

Related Topics 	Where am I?

Group headers enable you to display boilerplate text above each group of records in a report.

To create a group header:

1.	In the Design Editor Navigator, select the item group that represents the group.

2.	Make sure that Options→Use Property Palette is selected and click the [image] toolbar button.

3.	Enter the text you want to display above the group in the Prompt property.

4.	Click [image] to save your changes.

5.	Set FTCRET to Yes.

Note that Report Generator will use the corresponding module component's Title property as the header for any item groups for which you have not entered a Prompt property.

Next step

After creating group headers, generate the report. Or, continue adding objects to the report.

Generating report output

Adding report objects


 Adding boilerplate text

Related Topics 	Where am I?

Boilerplate text is any text that appears in a report every time it is run, for example field labels or report titles. You can add boilerplate text to a report group.

To display boilerplate text in a group:

1.	Create an unbound item in the module component that contains the group in which you want the boilerplate text to appear.  How

2.	Specify a unique name for the item.

3.	Set the type of the unbound item to Target Specific.

4.	Enter the boilerplate text:

•	if you are using the Property Dialog, enter the text in the Target Specific Information field

•	if you are using the Property Palette, enter the text in the Derivation Text property of the unbound item

Next step

Generate the report to add the boilerplate text or continue adding other objects to the report.

Generating report output

Adding report objects


 Adding images

Related Topics 	Where am I?

You can display images in your generated reports. You can display images that are stored in the database or in a file.

To display an image stored in the database:

1.	Create a bound item for the column that contains the images.  How

2.	Display the properties for the bound item.

3.	Set the Display Type property to IMAGE.

To add an image stored in a file:

1.	Create an unbound item in the module component that contains the group in which you want the image to appear.  How

2.	Specify a unique name for the item.

3.	Set the type of the unbound item to Target Specific.

4.	Enter the complete directory path and filename of the image:

•	if you are using the Property Dialog, enter the directory path and filename in the Target Specific Information field.

•	if you are using the Property Palette, enter the directory path and filename in the Derivation Text property of the unbound item.

5.	In the Property Palette, set the Display Type to Image.

Next step

Generate the report to add the image or continue adding other objects to the report.

Generating report output

Adding report objects


 Adding buttons to display multimedia objects

Related Topics 	Where am I?

A button is an object in a generated report that initiates an action whenever a user clicks on it. You can create a button to display multimedia objects such as images, sound clips, and video clips.

To create a button for multimedia objects stored in the database:

1.	Create a bound item for the column that contains the objects.  How

2.	In the Design Editor Navigator, select the bound item.

3.	Make sure Options→Use Property Palette is selected.

4.	Click the [image] toolbar button to display the property palette.

5.	Set the Display Type property to BUTTON.

6.	Click [image] to save your changes.

To create a button for multimedia objects stored in a file:

1.	Create an unbound item in the module component that contains the group in which you want the button to appear.  How

2.	Set the type of the unbound item to Target Specific.

3.	Enter the complete directory path and filename of the multimedia object.

•	if you are using the Property Dialog, enter the directory path and filename in the Target Specific field

•	if you are using the Property Palette, enter the directory path and filename in the Derivation Text property of the unbound item

Next step

Generate the report to create the button or continue adding other objects to the report.

Generating report output

Adding report objects


 Adding buttons to call PL/SQL functions and procedures

Related Topics 	Where am I?

A button is an object in a generated report that initiates an action whenever a user clicks on it. You can create a button to execute a PL/SQL function or procedure.

To create a button to call a PL/SQL function or procedure:

1.	Create an unbound item in the module component that contains the group in which you want the button to appear.  How

2.	Set the type of the unbound item to Client Side Function or Server Side Function, depending on where the function you want to use is stored.

3.	Specify the function to use and any arguments to pass to the function.

4.	In the Design Editor Navigator, select the unbound item.

5.	Make sure Options→Use Property Palette is selected.

6.	Click the [image] toolbar button to display the property palette.

7.	Set the Display Type property to BUTTON.

8.	Click [image] to save your changes.

Next step

Generate the report to create the button or continue adding other objects to the report.

Generating report output

Adding report objects


 Adding buttons to call other reports

Related Topics 	Where am I?

A button is an object in a generated report that initiates an action whenever a user clicks on it. You can create a button to call another report. Refer to About Drilldown reports for more information.

To create a button to call another report:

1.	In the Design Editor Navigator Modules tab, select the report module definition.

2.	Expand the module component that represents the calling report.

3.	Select the Action Items node and click [image].

4.	If you are calling a report that is defined by another module component in the current report module, select the Navigation within the module radio button.

If you are calling a report that is defined by another module definition, select the Navigate to a different module radio button.

5.	Specify the module component or module that represents the report you want to call.


 Displaying journaling information in generated reports

Related Topics 	Where am I?

When you define a table in the repository, you can specify that a journal table should also be created to record details about transactions performed on that table, i.e. inserts, updates and deletes. For more information, refer to About journal tables in the Server Generator on-line help.

If you create a table usage for a table that has an associated journal table, you can display journaling information in the generated report.

You can specify:

•	which journal columns to use

•	the width of the fields used to display journaling information

•	where to display journaling information in the generated report

To display journaling information in a generated report:

1.	In the Design Editor Navigator, select the container (i.e. folder or application system) or module.

2.	Click the [image] toolbar button to display the Preference Palette.

Note:	You may need to select Report Generator from the Product drop-down list to display the Report Generator preferences.

3.	Expand the Journal Columns node.

4.	Set the JNCOLS preference to specify which journal columns to use and the width of the field generated for the journal column. For example, to display the JN_ORACLE_USER, JN_OPERATION and JN_NOTES columns and set the width of the field for the JN_ORACLE_USER column to 10, set JNCOLS to:

US.10.OP.NT

5.	Set the JNLOCN preference to specify where to display journaling information in the generated report. For example, you can display journaling information in a separate break group or within the same group as the rest of the report information.

Note:	If you choose to display journaling information in a separate break group, you can use the JNGNME preference to specify the prefix to add to the name of the break group in the generated report.

6.	Click [image] to save your changes.

Note:	If you selected the container, the preference settings will be applied to all reports generated for the container. If you selected the module, the preference settings will only be applied to the report generated from that module.

7.	(Optional)  You can use a SQL expression to display the values from the JN_OPERATION journal column, for example:

DECODE(JN_OPERATION,'INS','Insert')

To do this, create a SQL Expression unbound item and enter the expression in the Derivation Text property.  How

Next step

Generate the report to add the journaling information or continue adding other objects to the report.

Generating report output

Adding report objects


 Defining report structure

Related Topics 	Where am I?

About report types and report module structure

About report lookup table usages

Tabular reports

About Tabular reports

Creating Tabular reports

Form reports

About Form reports

Creating Form reports

Address reports

About Address reports

Creating Address reports

Group Left reports

About Group Left reports

Creating Group Left reports

Example of Group Left report with multiple breaks

Group Above reports

About Group Above reports

Creating Group Above reports

Drilldown reports

About Drilldown reports

Creating Drilldown reports

Example of Drilldown report using module components in the same module

Example of Drilldown report using different modules

Matrix reports

About Matrix reports

Creating Matrix reports


 About report types and report module structure

Related Topics 	Where am I?

The first step in generating a report is to define the report structure for the type of report that you want to generate.

For information about report type and report module structure, click a sample report. For step-by-step instructions, click How to...

About Tabular reports:		How to...
About Form reports:		How to...
About Address reports:		How to...
About Group Left reports		How to...
About Group Above reports		How to...
About Drilldown reports		How to...
About Matrix reports		How to...


About Tabular reports

Related Topics	Where am I?

The Tabular layout displays the information in a multi-field, multi-row format with labels above each field. Each field corresponds to a column in the COMPANIES database table.

•	Tabular layout

Report module structure

To generate a tabular report, create a report module, module component and item group (with the Break Group Direction property set to Yes) in the Design Editor. When you create the item group, select Tabular as the type of layout that you want to generate.

The following sample module diagram shows the structure of the report in the Design Editor data view:

The same report structure is shown below in display view:


Creating Tabular reports

Related Topics	Where am I?

A Tabular layout report displays information in a multi-field, multi-row format with labels above each field. About

To create the module structure for a tabular layout:

1.	Create a new module in the repository. How

2.	Create a new module component. How

Note:	If you are using the module component dialog box, follow the instructions to also create a table usage. For more information on creating table usages, see Creating module component table usages.

3.	Create an item group. How

•	Set the Break Group property to Yes.

•	Set the Layout Format property to Tabular.

Note:	If you don't create an item group, the Report Generator creates one by default that is not changeable or visible.

Next Step

Once you define the tabular layout report structure, you can generate the report. For more information on generating report modules, see Generating report output.


About Form reports

Related Topics 	Where am I?

The Form layout displays one COMPANIES row per page. The labels are displayed to the left of the field values, similar to the way items are displayed in a form.

•	Form layout

Report module structure

To generate a form report, create a report module, module component and item group (with the Break Group Direction property set to Yes) in the Design Editor. When you create a report item group, select Form as the type of layout that you want to generate.

The following sample module diagram shows the structure of the report in the Design Editor data view:

The same report structure is shown below in display view:


Creating Form reports

Related Topics	Where am I?

A Form layout report displays information in a multi-row format with labels displayed to the left of the field values, similar to the way items are displayed in a form. About

To create the module structure for a form layout:

1.	Create a new module in the repository.  How

2.	Create a new module component.  How

Note:	If you are using the module component dialog box, follow the instructions to also create a table usage. For more information on creating table usages, see Creating module component table usages.

3.	Create an item group.  How

•	Set the Break Group property to Yes.

•	Set Layout Format property to Form.

Note:	If you don't create an item group, the Report Generator creates one by default that is not changeable or visible.

Next Step

Once you define the form layout report structure, you can generate the report. For more information on generating report modules, see Generating report output

You can enhance the module definition later in the module design process by editing the module properties. For information about other module properties you can set, refer to Repository module properties used by Report Generator.


About Address reports

Related Topics	Where am I?

The Address layout displays the COMPANIES rows in a format that can be used to print address labels or form letters.

•	Address layout

Report module structure

To generate an address report, create a report module, module component and item group (with the Break Group Direction property set to Yes) in the Design Editor. When you create a report item group, select Address as the type of layout that you want to generate.

The following sample module diagram shows the structure of the report in the Design Editor data view:

The same report structure is shown below in display view:


Creating address reports

Related Topics	Where am I?

An Address layout report displays information in a format that can be used to print address labels or form letters. This layout may also be referred to as a Label layout. About

To create the module structure for an address layout:

1.	Create a new module in the repository.  How

2.	Create a new module component.  How

Note:	If you are using the module component dialog box, follow the instructions to also create a table usage. For more information on creating table usages, see Creating module component table usages.

3.	Create an item group.  How

•	Set the Break Group property to Yes.

•	Set the Layout Format property to Address.

Note:	If you don't create an item group, the Report Generator creates one by default that is not changeable or visible.

Next Step

Once you define the address layout report structure, you can generate the report. For more information on generating report modules, see Generating report output

You can enhance the module definition later in the module design process by editing the module properties. For information about other module properties you can set, refer to Repository module properties used by Report Generator.


About report lookup table usages

Lookup information

When you create single group report layouts, such as Tabular, Form, and Address, the information retrieved is from a single table. The following sample module diagram shows the structure of a single table report in the Design Editor data view:

You can also include descriptive or 'lookup' information from a related table. For example, to generate a report that displays information about each copy of a video, you would create a base table usage of the COPIES table. However, the COPIES table does not contain the type or title of the rental product. This information is stored in the TITLES table. To display the type and title of each copy of a video, create a lookup table usage of the TITLES table. See the following sample module diagram of a lookup table usage in the Design Editor data view.

For more information about how to create module component lookup table usages using diagrams see Creating module component lookup table usages.


 About Group Left reports

Related Topics 	Where am I?

A Group Left report breaks the rows of a group into sets. Each set is based on the values from a single column. Each value from this column is displayed to the left of the columns in the corresponding set.

Note:	A Group Left report is also known as a Control Break or Break report.

In the sample report, each set is based on a value from the Product Code column.

Report module structure

To generate a Group Left report, create a break group that contains the break item, in this example Product Code. You also need to create another break group that contains the remaining displayed items.

The sample module diagram shows the structure of a Group Left report module with one module component in the Design Editor data view:

The following module diagram shows the structure of a Group Left report in the Design Editor display view where you can see the two break groups:

This example contains only one break item, but you can create multiple breaks in a module component.  Example

For information about how to create a Group Left report, refer to Creating Group Left reports.


Creating Group Left reports

Related Topics 	Where am I?

A Group Left report module structure generates a report that breaks the rows of a group into sets.  About

To create the module structure for a Group Left report:

1.	Create a new module in the repository. How

2.	Create a new module component. How

Note:	If you are using the module component dialog box, follow the instructions to also create a table usage. For more information on creating table usages, see Creating module component table usages.

3.	Create two new item groups and set the Break Group? property for both item groups to Yes. How

4.	Include the break item in the first item group.

5.	Include all other items in the second item group.

Note:	The order of the items within an item group determines the order in which they are displayed in the generated report.

6.	Click Finish.

Next Step

Once you define the Group Left module structure, you can generate the report.

Generating report output


 Example of Group Left report with multiple breaks

Related Topics

Sample report:

Module structure (display view):


About Group Above reports

Related Topics 	Where am I?

A Group Above report is a report that contains two or more groups. The rows in one group are displayed above the rows in another group.

There may be a master-detail relationship between the groups, or the groups may be unrelated. A Group Above report that contains a master-detail relationship is also known as a Master-Detail report. A report that contains unrelated groups is also known as a Master-Master report. In a Master-Detail Group Above report, each row in the 'master' group is displayed with the corresponding rows in the 'detail' group.

In the sample report, the list of memberships (the detail rows) are displayed for each membership type (the master row). Note that the master group has a form layout and the detail group has a tabular layout. You can specify a different layout style for each of the groups by setting the module component Layout Style property.

Report module structure (two module components)

To generate a Group Above report using two separate base table usages, create two module components.

The sample module diagram shows the structure of a Master-Detail Group Above report module with two module components in the Design Editor data view:

In the sample diagram the master-detail link is between the base table usage in the master module component and the base table usage in the detail module component. You can also create a master-detail link between a lookup table usage in the master module component and the base table usage in the detail module component.

Note:	When creating two module components in a master detail relationship, the Report Generator can't generate a detail module component with an across/down or down/across layout. To achieve this design open Report Builder and modify the repeat direction for that particular repeating frame.

Report module structure (one module component)

To generate a Group Above report using one base table usage, create one module component.

The sample module diagram shows the structure of a Master-Detail Group Above report module with one module component in the Design Editor data view:

The same module diagram seen in the Design Editor display view, shows that the break groups are in the same module component.

For information about how to create a Group Above report, refer to Creating Group Above reports.


 Creating Group Above reports

Related Topics 	Where am I?

Create a Group Above report module structure to generate a report that displays the rows in one group above the rows from another group.  About

To create the module structure for a Group Above report using two module components:

1.	Create a new module in the repository. How

2.	Create two new module components. How

Note:	If you are using the module component dialog box, follow the instructions to also create a table usage. For more information on creating table usages, see Creating module component table usages.

3.	Choose View→Display View to display the module diagram in the Design Editor display view.

4.	If there is a master-detail relationship between the groups, choose View→Data View to display the module diagram in the Design Editor data view.

5.	Create the master-detail link:

•	Click the [image] module diagram button.

•	Click on the base or lookup table usage in the master module component.

•	Click on the base table usage in the detail module component.

To create the module structure for a Group Above report using one module component:

1.	Create a new module in the repository. How

2.	Create a new module component. How

3.	Create two new item groups and set the Break Group? property for both item groups to Yes. How

4.	Include the break item(s) in the first item group.

5.	Include all other items in the second item group.

6.	Set the module Layout Format to Master Detail.

Next Step

Once you define the Group Above module structure, you can generate the report. Or, you can use the Group Above module structure to create a drilldown relationship between the groups.

Generating report output

Creating Drilldown reports


 About Drilldown reports

Related Topics 	Where am I?

A drilldown report is in fact two or more reports working together. Typically the reports are related via a master-detail relationship, but you can also generate a drilldown report where the reports are unrelated.

In a generated drilldown report, a button is displayed in the first report (the parent report). When a user clicks this drilldown button, the second report (the child report) is displayed. If there is a master-detail relationship between the reports, this button uses the foreign key column to display the rows in the child report that correspond to the current row in the parent report.

In the example above, clicking the button in the parent report displays the child report. The child report contains a list of memberships for the membership type selected. Note that you can use different templates for each report to create a unique visual design for each of them.

Report module structure

To generate a drilldown report, you create:

•	two module components in the same module, but in separate windows; this is also known as a report within a report   Example

or

•	two different modules connected via a module network link; this is also known as a report calling a report  Example

For information about how to create drilldown reports, refer to Creating Drilldown reports.

Note:	If you perform design capture of an drilldown report, you must capture the 'Called' report before capturing the 'Calling' report. The 'Called' report must exist in the repository before the 'Calling' report to ensure the navigation action item is set.


 Creating Drilldown reports

Related Topics 	Where am I?

A drilldown report is in fact two or more reports that work together.  About

You create a drilldown report from:

•	module components in the same module, or

•	different modules

To create a drilldown report from module components in the same module:

1.	Create the module structure for a Group Above report.  How

2.	Create one window containing the first module component and another window containing the second module component.

Report Generator generates each window as a separate report and uses the window Title repository property to determine the title of each report.

3.	Create a navigation action item in the window containing the parent module component.  How

Report Generator will generate the drilldown button from the navigation action item.

Note:	Verify the path specified in the Destination of generated files field on the Report Generator Options dialog box is the same as that included in the system path or the environment variable REPORTS60_PATH. For more information on how to set pathnames used by Oracle Reports, refer to the Oracle Reports File searching method.

To create a drilldown report from different modules:

1.	Create a new module for the parent report in the repository. How

2.	Create a new module component for the child report. How

Note:	If you are using the module component dialog box, follow the instructions to also create a table usage. For more information on creating table usages, see Creating module component table usages.

3.	In the module diagram for the parent module, create a module network link to the child module.  How

4.	Create a navigation action item in the window containing the parent module component.  How

Report Generator will generate the drilldown button from the navigation action item.

5.	In the child module (the called module), create an argument and argument item usage for the value in the parent report on which to drilldown.  How

6.	In the parent module, create an argument passed value and specify:

•	the item in the parent module (the calling module) that will provide the value  How

•	the argument in the child module (the called module) that will be passed this value  How

Note:	Verify the path specified in the Destination of generated files field on the Report Generator Options dialog box is the same as that included in the system path or the environment variable REPORTS60_PATH. For more information on how to set pathnames used by Oracle Reports, refer to the Oracle Reports File searching method.

Next Step

Once you define the drilldown module structure, you can generate the report. Note that when you generate the report, Report Generator creates two separate reports (one for the parent module or module component, and one for the child). Run the report created for the parent first (this report will appear before the report created for the child in the Build Actions dialog).

Generating report output


 Example of Drilldown report using module components in the same module

Related Topics

Module structure (display view):


 Example of Drilldown report using different modules

Related Topics

Module structure (data view), showing module network link:

Module structure (display view), showing drilldown button:


 About Matrix reports

Related Topics 	Where am I?

A matrix report contains a row of labels (the across group), a column of labels (the down group), and cells that are related to both the row and column labels (the intersection group):

For information about how to create Matrix reports, refer to Creating Matrix reports.

Matrix report module structure

You can generate a matrix report from two types of module structures:

•	one module component

•	three module components

One module component

To generate a matrix report from data in a single base table usage, create one module component with three item groups to represent each of the three groups of the matrix report:

In this module structure:

•	The first break item group generates the across group, which displays the row of labels.

•	The second break item group generates the down group, which displays the column of labels.

•	The third item group generates the intersection group, which displays the matrix cells.

Three module components

To generate a matrix report from data in more than one base table usage, create one module component for each of the matrix groups:

This diagram contains:

•	Two master module components, which define the across and down groups of the matrix report: The TITLES module component generates the across group, which displays the row of labels. The COMPANIES module component generates the down group, which displays the column of labels.

•	One detail module component: The COPIES module component generates the intersection group, which displays the matrix cells.

Matrix reports and summary items

Example 1: Matrix report with no summaries

This matrix report displays salaries for individual employees in different departments in different countries

Example 2: Matrix report with summary items

This matrix report displays total salaries for each department in each country.

A table usage of EMP with its Usage Type property set to Single Row SQL Aggregate has been created in both of the master module components.

In addition, the SUM_OF_SAL unbound item has been created in the detail module component. The SUM_OF_SAL unbound item has its Unbound Type property set to SQL Aggregate and its Derivation Text property set to SUM(EMP.SAL)

Example 3: Matrix report with summary items and grand total

This matrix report displays total salaries for each department in each country and includes a grand total.

In addition to the Single Row SQL Aggregate table usages and the SUM_OF_SAL unbound item, the GRANDTOTAL unbound item has been created in the GRANDTOTALMC module level module component. The GRANDTOTAL unbound item has its Unbound Type property set to Computed, its Derivation Text property set to SUM(SUM_OF_SAL), and its Reset Level property set to Module.


 Creating Matrix reports

Related Topics 	Where am I?

Create a Matrix report module structure to generate a report that displays data in a spreadsheet style format.  About

You can define the structure of a Matrix report using a single module component or three module components.

To create a Matrix report using one module component:

1.	Create a new module in the repository. How

2.	Create a new module component. How

Note:	If you are using the module component dialog box, follow the instructions to also create a table usage. For more information on creating table usages, see Creating module component table usages.

3.	Create three new item groups and set the Break Group? properties for each of the item groups to Yes. How

4.	Set each of the item groups' Break Group Direction property to a different value (i.e. set one item group's Break Group Direction property to Across, set one to Down, and set one to Intersection).

5.	Specify the items you want to appear in the across, down, and intersection groups of the report by including them in the appropriate item group.

To create a Matrix report using three module components:

1.	Create a new module in the repository. How

2.	Create the module component for the down group. How

3.	Create the module component for the intersection group as follows:

a.	Click the [image] module diagram button.

b.	Position the mouse pointer below the module component for the down group.

c.	Click the mouse button to create the module component.

4.	Specify the table usage and items you want in the intersection group, and set the item properties as required.

5.	Specify the foreign key to use to link the intersection group and the down group as follows:

a.	Click the [image] module diagram button.

b.	Click on the table usage in the module component for the intersection group.

c.	Click on the table usage in the module component for the down group.

6.	Create the module component for the across group as follows:

a.	Click the [image] module diagram button.

b.	Position the mouse pointer above the module component for the down group.

c.	Click the mouse button to create the module component.

7.	Specify the table usage and items you want in the across group, and set the item properties as required.

8.	Specify the foreign key between the across group and the intersection group as follows:

a.	Click the [image] module diagram button.

b.	Click on the table usage in the module component for the across group.

c.	Click on the table usage in the module component for the intersection group.

Next step

Once you define the Matrix module structure, you can generate the report.

Generating report output


Customizing report layout and appearance

Related Topics 	Where am I?

Customizing report layout and appearance using template reports

Customizing report layout and appearance using Report Generator preferences

Notes on Report layout styles


Customizing report layout and appearance using template reports

Related Topics 	Where am I?

You can use template reports to customize the layout and appearance of generated reports.

For more information about template reports, refer to About template reports.

To customize report layout and appearance using a template report:

1.	Start Report Builder.

2.	Open the template report used to generate the report you want to customize.

Note:	Any changes you make to a template report will affect all reports generated using that template.

3.	Set template properties as required.

For a list of template properties and their meanings, refer to the Oracle Reports help system.

4.	Save the template report.

Note:	We strongly recommend that you do not modify any of the standard template reports. Instead, take a copy of the standard template and modify the copy.


Notes on Report layout styles

Related Topics 	Where am I?

Report Generator supports seven layout styles used by Oracle Reports: Address, Form, Tabular, Group Left, Group Above, Matrix, and Matrix with Group. You can use Report Generator to set report layout styles at the module, module component, and item group levels using the following properties

Level	Property
item group	Layout Format
module component	Layout Style
module	Layout Format

These properties are referred to as 'layout properties' in the rest of this topic.

The item group layout property takes precedence over the module and module component layout properties. If you do not select an item group layout property, it will default to the module component layout property.

There are many different layout styles that are derived by setting compatible and incompatible values at each level. Setting incompatible values, or no values, will cause Report Generator to default to the next level of precedence (e.g., module component - module).

Single group reports

Report Generator supports three single group, or basic reports: Address, Form, and Tabular. For single group reports you must create an item group and set the Break Group property to Yes. There are multiple combinations of layout properties which will produce the same report. See the table below for the layout properties necessary to achieve your desired report style.

	Module		Module component		Item Group		Report style
Set	-	and	-	and	Address	=	Address
Set	-	and	Address	and	-	=	Address
Set	Label	and	-	and	-	=	Address
Set	-	and	Address	and	Address	=	Address
Set	Label	and	Address	and	-	=	Address
Set	Label	and	Address	and	Address	=	Address
Set	Label	and	-	and	Address	=	Address
Set	-	and	-	and	Form	=	Form
Set	-	and	Form	and	-	=	Form
Set	-	and	Form	and	Form	=	Form
Set	-	and	-	and	Tabular	=	Tabular
Set	-	and	Tabular	and	-	=	Tabular
Set	-	and	Tabular	and	Tabular	=	Tabular
Set	-	and	-	and	-	=	Tabular
Address

To create an address report layout, create a module component with one break group (an item group with the Break Group property set to Yes). Set the module layout property to Label, or the module component or item group layout property to Address. For more information on address report layouts, see About address reports.

Form

To generate a form report layout, create a module component with one break group and set the item group layout property to Form. If you do not set the module component or item group layout property to Form, Report Generator will default the report to a Tabular layout. For more information on form report layouts, see About form reports.

Tabular

To generate a tabular report, create a module component with one break group, and set the item group layout property to Tabular. You can also create a tabular report which has multiple standalone module components. To do this, you must create an item group for each module component, and set the layout property to Tabular. For more information on tabular report layouts, see About tabular reports.

Multiple group reports

Report Generator supports four multiple group reports: Group Left, Group Above, Matrix, and Matrix with Group. You must create multiple item groups for each of these report styles.

Group Left

The Group Left report is also known as a Control Break report. Set the Break Group Direction properties for each item group in the report to the same direction (Across or Down). If the Break Group Direction properties are different, then Report Generator will default to the first item group's Break Group Direction.

If you create a module with one or more standalone module components (a module component which is not connected to another via a key-based link), the Report Generator will default to the layout property of the module and ignore any settings of the module component or item group layout properties

For more information on creating a group left report, see About Group Left reports.

Group Above

Also known as a Master Detail report, you can generate a Group Above report by creating two module components and connecting them via a key-based link. This can be a chain of master, detail, detail module components. We recommend you set the item group layout property for the first item group in the chain to Form. Most other settings will still default the item group to Form, but if the first item group layout property is set to Tabular, Report Generator will default the report to a Group Left layout. For more information on creating group above reports, see About Group Above reports.

Matrix

Report Generator generates the matrix report to display data in a spreadsheet style format. Create at least three break groups and set the Break Group Direction properties to Across, Down, or Intersection. Set the module's layout property to matrix. You can also create a three query matrix which includes two module components, both linked to a third module component. For more information on creating matrix reports, see About Matrix reports.

Matrix with Group

A matrix with group layout generates a report that displays data in a spreadsheet style format, grouped by columns you have selected. To design a matrix with group layout, create a master module component and a detail module component, and create a key-based link between them. You must create the detail module component like a matrix single query. For more information on creating matrix with group reports, see About Matrix reports.


 Customizing report layout and appearance using Report Generator preferences

Related Topics 	Where am I?

You can use Report Generator preferences to customize the layout and appearance of generated reports.

For more information about Report Generator preferences, refer to About Report Generator preferences.

To customize report layout and appearance using Report Generator preferences:

1.	In the Design Editor Navigator, select the module that represents the report you want to customize.

Note:	You can also set preferences at container (i.e. folder or application system) level. If you do this, the customizations will affect all reports in that container.

2.	Click the [image] toolbar button.

3.	Set preferences in the following preference categories as required:

•	 Field Label preferences

•	 Field Layout preferences

•	 Group Layout preferences

•	 Item Group Titles preferences

4.	Click [image] to save any new settings.


 Using Report Generator preferences

Related Topics 	Where am I?

About Report Generator preferences

Setting Report Generator preferences

Report Generator preferences - organized alphabetically

Report Generator preferences - organized by category


 About Report Generator preferences

Related Topics 	Where am I?

Preferences are instructions you give to Report Generator to control query generation and the appearance of generated reports.

Every preference has a default value or 'factory setting'. You can generate reports successfully using these factory settings. In other words, you do not have to have change any preference settings before generating reports. However, you can explicitly set preferences to generate reports that meet your particular requirements.

For general information about setting preferences, refer to The Generator Preference Palette in the Design Editor help.


 Setting Report Generator preferences

Related Topics 	Where am I?

You can customize report generation using Report Generator preferences. About

To set Report Generator preferences:

1.	In Design Editor, select the object from the Object Navigator.

2.	Choose Edit→Generator Preferences.

3.	Set the product to 'Report Generator'.

4.	From the Preference Palette, select the preference.

5.	Change the preference value as follows:

•	if the preference setting field has stepper arrows, either enter the new value, or click on the arrows to change the value

•	if the preference setting field has a dropdown arrow, click on it and select the value

•	if the preference setting field does not have stepper or dropdown arrows, enter the new value

When a preference value is changed, its associated icon is updated to show the level at which it was set.

6.	Click [image] to save the new setting.

7.	To apply the new preference settings, generate the module or modules again.

For more information about preferences, refer to The Generator Preference Palette.


 Report Generator preferences - organized by category

Related Topics 	Where am I?

Preference category	Use preferences to:
Data Model Objects preferences	control objects in the data model
Field Labels preferences	control the labels associated with fields in a report
Field Layout preferences	control the layout of fields in a report
Group Layout preferences	control the layout of groups in a report
HTML Deployment preferences	control the deployment of HTML
Item Group Titles preferences	control the titles of item groups in a report
Journal Columns preferences	control journal columns
Parameters preferences	control parameters
Queries and PL/SQL preferences	control queries and PL/SQL
Report-level Objects preferences	control report-level objects
Templates preferences	control templates


 Data Model Objects preferences

Related Topics 	Where am I?

Name	Description	Levels where preferences can be set
		Cont	Mod	MC
COLNME	Prefixes of generated column names	X
CPNAME	Prefixes of generated cross-product group names	X
CURNME	Prefixes of generated cursor names	X
FRMNME	Prefixes of generated formula column names	X
GRPNME	Prefixes of generated group names	X
JNGNME	Prefixes of generated break group for journal information	X
PARNME	Prefixes of generated parameter names	X
QRYNME	Prefixes of generated query names	X
SUMNME	Prefixes of generated summary column names	X


 Prefixes of generated Data Model object names (preferences)

Related Topics

Report Generator adds a default prefix to the names of objects in the generated data model.

You can change the prefix that Report Generator uses to identify a data model object by changing the default value of the following preferences.

Generated Data Model Object	Default Prefix	Preference
Columns	CG$C_	COLNME
Cross-product groups	CG$G_XP_	CPNAME
PL/SQL cursors	CG$CS_	CURNME
Formula columns *	CG$CF_	FRMNME
Groups	CG$G_	GRPNME
Journal column groups	CG$JGP_	JNGNME
Parameter columns	CG$P_	PARNME
Queries	CG$Q_	QRYNME
Summary columns	CG$S_	SUMNME
* this prefix does not apply to SQL Expression or Server Side Function.


 Field Labels preferences

Related Topics 	Where am I?

Name	Description	Levels where preferences can be set
		Cont	Mod	MC
MAYSPL	Marker for optional prompt splitting	X	X
MSTSPL	Marker for mandatory prompt splitting	X	X
PFPCHR	Pre-field and post-field marker	X	X
PRAFIE	Label placement in Form and Address layouts	X	X
PRJUAC	Label alignment for centered fields	X	X
PRJUAL	Label alignment for left-aligned fields	X	X
PRJUAR	Label alignment for right-aligned fields	X	X
PRSPTR	Label separator string	X	X
SUPSEP	Hide pre-field and post-field label separator	X	X


 Split field labels (MAYSPL and MSTSPL preferences)

Related Topics

By default, Report Generator splits a label if you entered the split-label marker in the Prompt repository property, or if splitting a label saves space in the report.

You can change the default behavior of label splitting by changing the values of the MAYSPL and MSTSPL preferences. MAYSPL controls automatic label splitting; MSTSPL allows you to split labels manually.

Marker for optional label splitting (MAYSPL)

Default:	(space character)
Values:	(space character)	Automatically split labels at the space character to enable all fields in a group to be displayed on one line.
	Any ASCII character	Automatically split labels at the specified character.
Levels:	Container, Module
Category:	Field Labels

If there is not enough space to display fields across the width of a report, Report Generator automatically splits labels at the space character between words in the label.

You can change the character that Report Generator uses to identify where to split labels.

Marker for mandatory label splitting (MSTSPL)

Default:	\ (the backward slash character)
Values:	Any ASCII character	Split labels at the specified character.
Levels:	Container, Module
Category:	Field Labels

You can specify where to split a label by entering the backward slash character (\) in the Prompt property of the repository item that the generated field is based on.

If you want to use the backward slash character in the field label, use this preference to change the backward slash character to another ASCII character.

Note that if the character you specify does not appear in the label, Report Generator splits the prompt at the middle of the label. If the character that you set appears more than once, Report Generator splits the label at the first occurrence.


 Pre-field and post-field labels (SUPSEP and PFPCHR preferences)

Related Topics

Use these preferences to customize pre-field and post-field labels.

Hide pre-field and post-field label separator (SUPSEP)

Default:	No
Values:	Yes	Hide the standard separator string.
	No	Do not hide the standard separator string.
Levels:	Container, Module
Category:	Field Labels

Report Generator adds a space and a colon after all labels that are displayed to the left of a field. You can hide this string for pre-field labels by changing the value of this preference to Yes.

Pre-field and post-field marker (PFPCHR)

Default:	| (vertical bar character)
Values:	Up to 3 ASCII characters.	Use these characters to identify the end of the pre-field label and the beginning of the post-field label. Labels are specified using the Prompt property of the item that represents the generated field.
Levels:	Container, Module
Category:	Field Labels

By default, Report Generator uses the vertical bar character to determine the part of the label to display before the generated field and the part to display after the generated field.

You can change the character that Report Generator uses to identify pre-field and post-field labels by changing the default value of this preference.

Note that if the character you specify does not appear in the label, Report Generator displays the entire value of the Prompt property before the field in the generated report.


 Label placement in Form and Address layouts (PRAFIE preference)

Related Topics

Default:	<Null>
Values:	Yes	Place labels above fields.
	No	Place labels beside fields.
	<Null>	Use template setting.
Levels:	Container, Module
Category:	Field Labels

By default, Report Generator uses the Place Labels Above Fields property in the template definition file (TDF) to control whether labels are displayed above or beside their corresponding fields in groups with Form or Address layouts. You can override the property setting by changing the default value of this preference.


 Label alignment (PRJUAC, PRJUAL, and PRJUAR preferences)

Related Topics

Use these preferences to change the alignment of labels that are displayed above fields.

To move labels above fields in a group with a Form or Address layout, set the PRAFIE preference.

To change the alignment of a field, change the Alignment property for the repository item that the field is based on.

Label alignment for centered fields (PRJUAC)

Default:	Center
Values:	Left, Right, Center
Levels:	Container, Module
Category:	Field Labels

Use this preference to specify the alignment of a label that is displayed above a centered field.

Label alignment for left-aligned fields (PRJUAL)

Default:	Left
Values:	Left, Right, Center
Levels:	Container, Module
Category:	Field Labels

Use this preference to specify the alignment of a label that is displayed above a left-aligned field.

Label alignment for right-aligned fields (PRJUAR)

Default:	Right
Values:	Left, Right, Center
Levels:	Container, Module
Category:	Field Labels

Use this preference to specify the alignment of a label that is displayed above a right-aligned field.


Label separator string (PRSPTR preference)

Related Topics

Default:	:(a space character and a colon character)
Values:	Up to 3 ASCII characters.	Use this character to separate a label from its field.
	(no value)	Do not display a character between generated labels and fields.
Levels:	Container, Module
Category:	Field Labels

Use this preference to change or remove the characters that separate a label from its field.

Note that this preference applies to groups with a Form layout style only.


 Field Layout preferences

Related Topics 	Where am I?

Name	Description	Levels where preferences can be set
		Cont	Mod	MC
ALGSUM	Summary field alignment	X	X
CONAME	Company name	X	X
CXDPTH	Levels of context information	X	X
DTEMSK	Format mask for Date columns	X	X
FALIGN	Field alignment in a Form layout	X	X
FNTWID	Font width	X	X
NUMEXT	Summary field display width	X	X
TRCPCT	Field truncation	X	X
TXTDCL	Default display length of fields: Character columns	X	X
TXTDDL	Default display length of fields: Date columns	X	X
TXTDNL	Default display length of fields: Numeric columns	X	X


 Summary field layout (NUMEXT and ALGSUM preferences)

Related Topics

Use these preferences to change the size and alignment of a summary field.

Note that the NUMEXT and ALGSUM preferences apply to record, group, and report level summaries, only.

Summary field display width (NUMEXT)

Default:	2
Values:	0 to 4	Set the size of the summary field to the column display width plus the specified value.
Levels:	Container, Module
Category:	Field Layout

This preference controls the size of generated summary fields whenever a display width is not specified for the item. Set NUMEXT to the number of characters to add to the display width of the column that the summary is based on.

Summary field alignment (ALGSUM)

Default:	<Null>
Values:	Yes	Align summary under other source field values.
	No	Do not align summary under other source field values.
	<Null>	Use the template report's Align Summaries with Fields property.
Levels:	Container, Module
Category:	Field Layout

This preference controls the alignment of generated summary fields with respect to the source fields. You may only use this preference if the layout style is set to Form.


 Company name (CONAME preference)

Related Topics

Default:	(no value)
Values:	Up to 60 ASCII characters	Display this company name.
	(no value)	Do not display a company name.
Levels:	Container, Module
Category:	Field Layout

You can add the company name to the header, footer, or margin of a report by adding the CG$CN template object to the template and specifying the company name as the value of this preference.


 Levels of context information (CXDPTH preferences)

Related Topics

Default:	1
Values:	0	Display all fields on overflow pages.
	1 to 99	Apply context items to the specified number of levels of master groups.
Levels:	Container, Module
Category:	Field Layout

If a field in a master group contains more values than can be displayed on one page, Report Generator creates overflow pages. Context items are displayed on the overflow pages to establish the context of the page.

Report Generator uses the following items as context items:

•	items with the Context? property set to Yes

•	displayed items that are based on primary key columns or descriptor columns

If no items meet the above criteria, Report Generator makes the first column in the table a descriptor column.

Use this preference to specify the number of levels of groups to apply the context items.

Note:	You can only apply CXDPTH to groups with Form or Address layouts.


Font width (FNTWID preference)
 Font width (FNTWID preferences)

Related Topics

Default:	8
Values:	0	Do not reduce the font size.
	1 to 99	Use the specified font size.
Levels:	Container, Module
Category:	Field Layout

If necessary, Report Generator will decrease the font size to display the fields in a report. Use this preference to specify the minimum font size.


 Format mask for Date columns (DTEMSK preference)

Related Topics

Default:	DD-MON-RR
Values:	Any valid Oracle date mask, up to 80 characters.	Apply this format mask to DATE field whenever a format mask is not specified for the item
	(no value)	Do not apply a format mask. If you do not specify a format mask for an item that is based on a DATE column, Report Generator uses the default DATE column format.
Levels:	Container, Module
Category:	Field Layout

Use this preference to specify the default format mask for a Date column. Report Generator applies the format mask specified by the DTEMSK preference whenever a display format mask has not been set for the item.


 Field alignment in a Form layout (FALIGN preference)

Related Topics

Default:	LEFT
Values:	LEFT	Align fields at the left side of the frame.
	RIGHT	Align fields at the right side of the frame.
	FLUSH	Align fields at both the left side and the right side of the frame (justified).
	CENTER	Center fields between the left and right sides of the frame.
	COLUMN	Align fields in columns.
Levels:	Container, Module
Category:	Field Layout

Use this preference to change the alignment of fields in a group with a Form layout.


 Field truncation (TRCPCT preference)

Related Topics

Default:	20
Values:	0	Truncate fields as much necessary to display all fields on one line.
	1 to 99	Truncate fields if necessary, but leave at least the specified percentage of the display width of the item.
	100	Do not truncate fields.
Levels:	Container, Module
Category:	Field Layout

Fields are truncated whenever there is not enough space to display all fields on one line. By default, Report Generator truncates only as much as is necessary. If truncation is necessary to display all fields on one line, by default, Report Generator leaves at least 20 percent of the initial display width of the item.

Use this preference to prevent field truncation or to increase or decrease the minimum acceptable size of a field.


 Default display width of fields (TXTDCL, TXTDDL, and TXTDNL preferences)

Related Topics

Use these preferences to specify a default display width to be used whenever a display length is not defined for the item.

Default display width of fields: Character columns (TXTDCL)

Default:	30
Values:	1 to 255
Levels:	Container, Module
Category:	Field Layout

Use this preference to specify the length of fields that are based on Character columns. The value of this preference is used whenever the Display Length property is not set for the item that the field is based on.

Default display width of fields: Date columns (TXTDDL)

Default:	11
Values:	1 to 250
Levels:	Container, Module
Category:	Field Layout

Use this preference to specify the length of fields that are based on Date columns. The value of this preference is used whenever the Display Length property is not set for the item that the field is based on.

Default display width of fields : Numeric columns (TXTDNL)

Default:	8
Values:	1 to 100
Levels:	Container, Module
Category:	Field Layout

Use this preference to specify the length of fields that are based on Numeric columns. The value of this preference is used whenever the Display Length property is not set for the item that the field is based on.


 Group Layout preferences

Related Topics 	Where am I?

Name	Description	Levels where preferences can be set
		Cont	Mod	MC
DETPOS	Placement of detail and sibling groups	X	X	X
FTJUST	Group title alignment	X	X
SUPFRM	Hide boilerplate objects	X	X


 Placement of detail and sibling groups (DETPOS preference)

Related Topics

Default:	<Null>
Values:	Right	Place detail groups to the right of the master.
	Below	Place detail groups below the master.
	<Null>	Use the template report's Position property to control the placement of detail groups.
Levels:	Container, Module, Module Component
Category:	Group Layout

Use this preference to change the position of detail group frames relative to the master group frame.

By default, Report Generator displays detail group frames below the master group frame.


Display group titles (FTCRET preference)
 Display group titles (FTCRET)

Related Topics

Default:	Yes
Values:	Yes	Create titles for all groups in the report, using the Prompt property of each item group. If an item group's Prompt property is not set, the module component's Title property is used instead.
	No	Do not display group titles.
Levels:	Container, Module, Module Component
Category:	Item Group Titles

Use this preference to hide or display all group titles in a generated report.


 Group title alignment (FTJUST preferences)

Related Topics

Default:	Left
Values:	Left	Align the group title at the left of the group frame.
	Center	Center the title in the group frame.
	Right	Align the group title at the left of the group frame.
Levels:	Container, Module
Category:	Group Layout

Use this preference to control the horizontal alignment of group titles that are displayed inside the group frame.


 Hide boilerplate objects (SUPFRM preference)

Related Topics

Default:	Yes
Values:	Yes	Hide all boilerplate objects.
	No	Display all boilerplate objects.
Levels:	Container, Module
Category:	Group Layout

Use this preference to specify whether to display or hide boilerplate objects.

If you set this preference to Yes, Report Generator hides objects in groups that do not contain any records.

If you set this preference to No, Report Generator displays all boilerplate objects, even when no records are retrieved for a group. Therefore, the generated report may contain titles, prompts, boilerplate text, images, and buttons that you do not want to display.


 Item Group Titles preferences

Related Topics 	Where am I?

Name	Description	Levels where preferences can be set
		Cont	Mod	MC
FTCRET	Display group titles	X	X	X
GRPTJS	Item group title alignment	X	X
GRPTLP	Item group title placement	X	X


 Item Group titles (GRPTLP and GRPTJS preferences)

Related Topics

Use these preferences to control the placement and the alignment of item group titles.

Item group title placement (GRPTLP)

Default:	INSIDE
Values:	INSIDE	Display the title inside the frame that surrounds the item group. The title has the same font attributes specified for the group frame title.
	OUTSIDE	Display the title outside the frame that surrounds the item group. Report Generator generates the item group title as a field label and the item group as a field.
	None	Do not display item group titles.
Levels:	Container, Module
Category:	Item Group Titles

By default, Report Generator displays item group titles inside the group frame that is generated for the item group. Use this preference to hide the item group title or display it outside the item group frame.

Item group title alignment (GRPTJS)

Default:	LEFT
Values:	LEFT	Align the item group title with the left side of the frame.
	RIGHT	Align the item group title with the right side of the frame.
	CENTER	Center the item group title between the left and right sides of the frame.
Levels:	Container, Module
Category:	Item Group Titles

Use this preference to control the alignment of item group titles.


 Journal Columns preferences

Related Topics 	Where am I?

Name	Description	Levels where preferences can be set
		Cont	Mod	MC
JNCOLS	Display journal columns and set display width	X	X
JNLOCN	Placement of journal columns	X	X


 Journal column layout (JNCOLS and JNLOCN preferences)

Related Topics

Use these preferences to:

•	hide or display a journal column on a generated report.

•	set the display width of the field generated for the journal column.

Display journal columns and set display width (JNCOLS)

Default:	OP.US.DT.NT.AP.SE
Values:	AP	JN_APPLN - name of the application in which the transaction was performed
	DT	JN_DATETIME - date and time of the transaction
	NT	JN_NOTES - notes about the transaction
	OP	JN_OPERATION - type of transaction
	US	JN_ORACLE_USER - username of the user who performed the transaction
	SE	JN_SESSION - number of the auditing session for the user
	(multiple values)	use the specified values to display and to set the width of journal columns. To display and set the width of multiple journal columns, separate each value with a period (.). For example, display the JN_ORACLE_USER column, set the width to 10 characters and display the JN_OPERATION and JN_NOTES columns, enter the following value: US.10.OP.NT
	<Null>	hides all journal columns
Levels:	Container, Module
Category:	Journal Columns

Use this preference to hide or display a journal column and to set the width of the field generated for the journal column.

By default, if a module component is based on a table that contains journal columns, Report Generator displays all the journal columns on the generated report. Report Generator uses the display width of the journal column as the display width of the generated field.

Placement of journal columns (JNLOCN)

Default:	(no value)
Values:	BREAK	Create a break group for the journal columns. This break group is displayed above the group created for the module component.
	FIRST	Display the journal columns within the group created for the module component, and display the journal columns before the other fields in the group.
	LAST	Display the journal columns within the group created for the module component, and display the journal columns after the other fields in the group.
	<Null>	Hide journal columns
Levels:	Container, Module
Category:	Journal Columns

Use this preference to specify where to display the journal column within the generated group.


 Parameters preferences

Related Topics 	Where am I?

Name	Description	Levels where preferences can be set
		Cont	Mod	MC
LOVHFC	Hide first column in list of values	X	X
LOVTYP	List of values type	X	X
PAREMG	Parameter error message text	X	X
PARENM	Parameter error message number	X	X
PARFOE	Parameter error action for invalid types	X	X
VALCMB	Combine validation types	X	X
VALTYP	Validation type	X	X


 List of values (LOVTYP and LOVHFC preferences)

Related Topics

Use these preferences to control how Report Generator creates lists of values for generated parameters.

List of values type (LOVTYP)

Default:	(none)
Values:	PV	Use the allowable values that are defined for the argument that represents the parameter. If no allowable values are defined for the argument, use the allowable values defined for the domain that the argument is based on. If you set the Dynamic List? property for the argument or domain to Yes, the values are selected from the reference codes table, CG_REF_CODES.
	FK	Use the values of descriptor columns. You can select this option only when: • the item that is associated with the argument is based on a foreign key column • the table at the other end of the foreign key contains descriptor columns that are not part of the foreign key When you generate the report, Report Generator modifies the generated query to retrieve the values from the descriptor columns. Note: The argument must be associated with a single bound item.
	CV	Use the allowable values that are defined for the underlying column that the argument is associated with. If no allowable values are defined for the column, use the allowable values defined for the domain that the column is based on. If you set the Dynamic List? property for the column or domain to Yes, the values are selected from the reference codes table, CG_REF_CODES. Note: The argument that represents the parameter must be associated with a single bound item.
	BT	Use the values in the column on which the bound item is based. Note: The argument that represents the parameter must be associated with a single bound item. Report Generator treats the table usage containing the item as a base table usage (i.e. regardless of whether the table usage is a base table usage or a lookup table usage).
	(multiple values)	Use the specified sources to create the list of values. To specify more than one value, separate each value with a period (.). For example, to create a list of values wherever possible, enter the following value: PV.FK.CV.BT Note that the order of precedence of the values is PV, FK, CV, BT.
	(no value)	Do not create a list of values.
Levels:	Container, Module
Category:	Parameters

Use this preference to specify the source of the generated parameter list of values.

Hide first column in list of values (LOVHFC)

Default:	No
Values:	Yes	Hide the first column. Report Generator selects the Hide First Column check box for all parameters that are generated using a SELECT statement.
	No	Do not hide the first column. The generated list of values will contain all the values retrieved from the SELECT statement.
Levels:	Container, Module
Category:	Parameters

Use this preference to hide the first column in the generated list of values.


Error messages for validation (PAREMG, PARENM, and PARFOE preferences)
 Error messages for validation (PARFOE, PAREMG and PARENM preferences)

Related Topics

Use these preferences to customize the error messages that are displayed when users enter an invalid value for a generated parameter.

Parameter error action for invalid values (PARFOE)

Default:	Yes
Values:	Yes	Display error number and message. Do not allow users to run the report until a valid value is entered.
	No	Display a warning and run the report with the invalid value.
Levels:	Container, Module
Category:	Parameters

Use this preference to control whether an error message or warning is displayed whenever users enter an invalid value for a generated parameter.

Parameter error message text (PAREMG)

Default:	"Error: Invalid value for parameter -"
Values:	Up to 80 chars
Levels:	Container, Module
Category:	Parameters

Use this preference to enter the text of the error message that is displayed whenever users enter an invalid value for a generated parameter.

Parameter error message number (PARENM)

Default:	1000
Values:	0 to 10000
Levels:	Container, Module
Category:	Parameters

Use this preference to set the error number of the error message.


Type of parameter validation (VALCMB and VALTYP preferences)
 Type of parameter validation (VALTYP and VALCMB preferences)

Related Topics

Use these preferences to validate the values that users enter in generated parameters.

You can specify whether to display error messages when users enter invalid values by setting the PARFOE, PAREMG and PARENM preferences.

Validation type (VALTYP)

Default:	(none)
Values:	PV	Use parameter validation. Report Generator validates user input against the allowable values specified for the argument that represents the parameter. If no allowable values are specified for the argument, Report Generator validates user input against the allowable values specified for the domain that the argument uses. Note: If you set VALTYP to PV, make sure that allowable values are specified for the argument that represents the parameter or that the argument is in a domain.
	CV	Use column validation. Report Generator validates user input against the allowable values specified for the column. If no allowable values are specified for the column, Report Generator validates user input against the allowable values specified for the domain that the column uses. Note: If you set VALTYP to CV, make sure that allowable values are specified for the column that the parameter is based on or that the column is in a domain. Note: The argument that represents the parameter must be associated with a single bound item.
	BT	Use base table validation. Report Generator validates user input against the column values of the column that the parameter is based on. Note: The argument that represents the parameter must be associated with a single bound item.
	(multiple values)	Use the specified types of parameter validation.  To specify more than one value, separate each value with a period (.). For example, to use all types of validation, enter the following value: PV.CV.BT For a list of the possible combinations you can use, refer to Combining parameter validation types.
	(no value)	Do not validate parameters.
Levels:	Container, Module
Category:	Parameters

Use this preference to specify the type of validation to use for generated parameters.

Combine validation types (VALCMB)

Default:	Yes
Values:	Yes	Always add base table validation to the generated PL/SQL parameter validation code when VALTYP includes the value BT.
	No	Add base table validation to the generated PL/SQL parameter validation code only when no other validation code is defined.
Levels:	Container, Module
Category:	Parameters

Use this preference to specify whether base table validation is used with column and parameter validation.


 Queries and PL/SQL preferences

Related Topics 	Where am I?

Name	Description	Levels where preferences can be set
		Cont	Mod	MC
DOJOIN	Merge queries	X	X
DETLNK	Detail component linkage	X	X
PLSPRS	Compile generated PL/SQL	X	X
TABOWN	Table owner in generated SQL	X


Query merging (DOJOIN and DETLNK preferences)
 Query merging and column joins (DOJOIN and DETLNK preferences)

Related Topics

By default, Report Generator creates a query for each module component in a report module. If the module components are connected via a master-detail link, you can merge the queries so that only one query is generated for two module components.

If you do not merge the queries, use the DETLNK preference to control how Report Generator creates the link between master and detail rows.

Merge queries (DOJOIN)

Default:	No
Values:	No	Create a separate query for each base detailed table usage and create a link in the data model.
	Yes	Merge the generated queries if query performance can be improved. Report Generator determines whether to merge queries by comparing the ratio of rows in the tables being joined and the ratio of the number of columns being selected. About
Levels:	Container, Module
Category:	Queries and PL/SQL

Use this preference to control whether the queries that are generated for the module components in a master detail report are merged. DOJOIN does not affect the format of the report.

Notes

•	A DOJOIN will not be performed if the SQL Query Clause property is set to 'Start With', 'Connect By', or 'Having'.

•	When Report Generator merges queries in a report, it creates break groups to lay out each of the module components in the query. If the report module contains a master module component with two detail module components, the detail module components will be positioned incorrectly because break groups cannot be nested as required to produce the correct layout.

Detail component linkage (DETLNK)

Default:	APP
Values:	APP
	DB
	OPTAPP
Levels:	Container, Module
Category:	Queries and PL/SQL

Use this preference to control how Report Generator creates the link between master and detail rows.

Use the following table to decide how to set this preference:

Setting	Where is the link created?	Advantages	Disadvantages
APP (Application specific join)	The link is created in the application. The application sorts the rows that are appropriate to each master from all the rows returned by the detail.	Only one network round trip is made to the database.	1. All detail rows are returned, including any that do not match any master record. 2. The detail must fetch the value of the link columns so that the application can do the sort - potentially a large amount of data.
DB (Database bind variables)	The link is formed by adding a condition to the WHERE clause that ensures that only records appropriate to the master(s) keys columns are returned to the application.	Only data that will be used is returned and the complexity of the SQL is not added to.	1. A network round trip to the database must be made for each set of detail records
OPTAPP (Optimized SQL for application join)	The link is formed in the application but only rows that will be used by a master are returned. Example: If the master component was based on the DEPT table and had a WHERE clause of WHERE dname LIKE '%NEW%' then the detail component based on say EMP would with its own WHERE clause of say JOB='MANAGER' would get a combined clause of: FROM EMP E  WHERE JOB='MANAGER' AND EXISTS ( SELECT NULL FROM DEPT D  WHERE d.dname LIKE '%NEW%'  AND d.deptno = e.deptno )	Single network round trip and only rows that will be used are fetched.	1. The complexity of the detail SQL statement is increased as a subquery is added to it to ensure only rows that match the master component(s)'s WHERE clause are fetched.   2. Also the detail must fetch the value of the link columns so that the application can do the sort, which may be a large amount of data.
If you set this preference to Database, you do not have to include items based on the link column in the detail module component.

If you set this preference to Application or Optimized, items based on the link columns must exist in the module component. If you have not included such items, Report Generator creates items based on the link columns during generation.


 Compile generated PL/SQL (PLSPRS preference)

Related Topics

Default:	Yes
Values:	Yes	Compile PL/SQL
	No	Do not compile PL/SQL. Although you can open a report containing uncompiled PL/SQL, you must compile the PL/SQL program units to run the report.
Levels:	Container, Module
Category:	Queries and PL/SQL

Use this preference to compiling PL/SQL program units during report generation.


 Table owner in generated SQL (TABOWN preference)

Related Topics

Default:	(no value)
Values:	(no value) or any Oracle username up to 30 characters in length.
Levels:	Container
Category:	Queries and PL/SQL

Use this preference to preface the table names in the generated SQL code with the username of the Oracle user who owns the table. Report Generator adds the table owner as a prefix:


 Report-level Objects preferences

Related Topics 	Where am I?

Name	Description	Levels where preferences can be set
		Cont	Mod	MC
CRELAY	Produce the layout model for the Report	X	X
DOCFMT	Generate comments	X	X	X
DSPFMT	Report output type	X	X
NUMPGE	Page size	X	X
ROLENM	Role name	X	X


 Produce the layout model for the Report (CRELAY preference)

Related Topics

Default:	Yes
Values:	Yes	Create a report body. Report Generator uses the generated data model to create the body of the report.
	No	Do not create a report body. If you set CRELAY to No, you must create the group frames and group repeating frames manually.
Levels:	Container, Module
Category:	Report-level objects

Use this preference to control whether the Body region of the layout model is included in the generated layout model.


 Generate comments (DOCFMT preference)

Related Topics

Default:	(no value)
Values:	NM	Report Name included in generated comment.
	FL	Filename included in generated comment.
	PP	Module Purpose included in generated comment.
	TT	Module Top Title included in generated comment.
	DS	Module Description included in generated comment.
	NT	Module Notes included in generated comment.
	PA	Module Parameters included in generated comment.
	MD	Modified Section included in generated comment.
	QR	Module component Description property included in the Comments property of the generated query (only valid if set at Module Component level).
	(multiple values)	Include the specified objects in the generated comments. To specify more than one object, separate each value with a period (.). For example, to add the report name, filename, and module purpose to the comment property, enter the following value: NM.FL.PP
	(no value)	Do not generate a comment.
Levels:	Container, Module, Module Component
Category:	Report-level objects

Report Generator can include information in a generated report about the repository module and module component from which the report was generated. By default, Report Generator adds the report name and details about the modified section to the Comment property.

Note that with the exception of QR, all valid values for this preference can be set at container (i.e. application system or folder) level and Module level. Only the QR value is valid at Module Component level, and QR is the only valid value at this level.


 Report output (DSPFMT preference)

Related Topics

Default:	RDF
Values:	RDF	Generate report for RDF output.
	HTML	Generate report for HTML output.
	HTMLCSS	Generate report for HTMLCSS (HTML with support for cascading style sheets) output.
	PDF	Generate report for PDF output.
Levels:	Container, Module
Category:	Report-level objects

Use this preference to specify the type of output that you want to create from the generated report definition file (.RDF).


 Page size (NUMPGE preference)

Related Topics

Default:	1
Values:	0	Do not increase the number of physical pages. If the page size specified in the template is not wide enough to lay out the report, Report Generator does not generate a layout model for the report.
	1 to 99	If the page size specified in the template is not wide enough to lay out the report, add the specified number of pages.
Levels:	Container, Module
Category:	Report-level objects

If the page width specified in the template report is not wide enough for the generated report, Report Generator uses this preference to increase the number of generated pages.

Note that if Report Generator cannot create a layout model for the report, by default, the report will not be generated. You can change this default to allow Report Generator to generate a report without generating a layout model. Use the CRELAY preference.


Role name and password (ROLENM preference)
 Role name (ROLENM preference)

Related Topics

Default:	(no value)
Values:	Any valid database role	Assign the specified database role to this report. When you generate the report, Report Generator uses the value that you specify to set the Role Name property in the template.  When users run the generated report, they will be prompted for the role name. If you entered the password in the Generate Report dialog box, the user will also be prompted for the password.
	(no value)	Do not assign a database role to this report.
Levels:	Container, Module
Category:	Report-level objects

By default, to run a generated report, a user must have the correct access privileges to the database tables that contain the report information.

Use this preference to assign a database role to a report so that users with privileges for that role can also run the generated report. For example, you may have a report that queries a table that contains sensitive information, such as salary data. If the report does not actually display any of this sensitive information, you may want users other than those with access to the table to run the report.

Note:	If you set this preference you can also enter the role password in the Generate Report dialog box.


 Templates preferences

Related Topics 	Where am I?

Name	Description	Levels where preferences can be set
		Cont	Mod	MC
LAYREP	Layout template	X	X
MODLIB	PL/SQL attached library	X	X


Templates (LAYREP preference)
 Layout template (LAYREP preference)

Related Topics

Default:	cgbmpt.tdf
Values:	(no value), up to 99 characters
Levels:	Container, Module
Category:	Templates

Use this preference to specify the name and extension (in the format myreport.tdf) of a standard or custom Report Generator template definition file. The value of this preference is used as the default in the Template Name field on the Generate Report dialog box.

The Report Generator Options dialog box enables you to specify whether the template report is stored in the filesystem or in the repository. The choice you make determines how Report Generator uses this preference.

For more information about using this preference, refer to Specifying template reports.

Template report stored as a file in the repository

If you specify that the template report is stored as a file in the repository, Report Generator searches for the template in the repository folders specified in the Repository Folders field on the Report Generator Options dialog box.

Template report is stored in the filesystem

If you specify that the template report is stored in the filesystem, Report Generator searches the filesystem for the template specified in the Template Name field on the Generate Report dialog box using the following in order:

•	any path specified in the Template Name field

•	any path specified in the File System Directory field on the Report Generator Options dialog box

•	any path specified by the REPORTS60_PATH environment variable


 PL/SQL attached library (MODLIB preference)

Related Topics

Default:	(no value)
Values:	The name and directory path of a PL/SQL library. The path may be up to 80 characters in length. The file extension must be .PLL.
Levels:	Container, Module
Category:	Templates

You can attach a library to a generated report definition file by setting this preference to the name of the library.


 HTML Deployment preferences

Related Topics 	Where am I?

Name	Description	Levels where preferences can be set
		Cont	Mod	MC
CGIPTH	Virtual path to Reports CGI	X	X
KEYAUT	Database connection method	X	X
KEYCON	Database connection embedded in the key file	X	X
KEYNME	Name of the key	X	X
OWSCGI	Web deployment type	X	X
REPSRV	Reports server name	X	X
WEBSRV	Web server name	X	X


  Virtual path to Reports CGI (CGIPTH preference)

Related Topics

Default:	(no value)
Values:	the pathname may be up to 80 characters in length.
Levels:	Container, Module
Category:	HTML Deployment

Use this preference to set the location of the Reports CGI executable which will handle the user's report request. If you don't enter a value, Report Generator will assume a setting of cgi-bin.


  Connection method (KEYAUT preference)

Related Topics

Default:	AUTH
Values:	AUTH	Authenticates that database connection is present. If no database connection is present in the URL, a popup window will display, allowing the user to enter their connection details, before the report is run.
	KEY	Generates a key file which can contain connection strings. Once generated, this key file will be installed on the Web Server (or the information it contains will be appended to an existing key file). The key value will then be specified on a URL and the information within the key picked up by the Web Server, passed onto the Reports Server. The key file will be generated in the same directory as the report RDF with the same base file name and an extension of .key. If a key file with the same name already exists, the new key will be appended to the file.
Levels:	Container, Module
Category:	HTML Deployment

Use this preference to pass the user's database connection string to the reports server.


  Database connection embedded in the key file (KEYCON preference)

Related Topics

Default:	(no value)
Values:	the pathname may be up to 80 characters in length.
Levels:	Container, Module
Category:	HTML Deployment

Use this preference to set the database connection which will appear in the .key file, as long as the KEYAUT preference is set to KEY. If you don't enter a value, Report Generator will assume a setting of user/password@db.


  Key name (KEYNME preference)

Related Topics

Default:	(no value)
Values:	the key name may be up to 80 characters in length.
Levels:	Container, Module
Category:	HTML Deployment

Use this preference to set the name of the key by which it can be referred to in URLs. If you don't enter a value, Report Generator will default to the name of the module being generated.


   Web Deployment type (OWSCGI preference)

Related Topics

Default:	OWS
Values:	OWS	Oracle WebServer Cartridge
	CGI	CGI executable
Levels:	Container, Module
Category:	HTML Deployment

Use this preference to select the Web Server type (either Reports Web CGI or Reports Web Cartridge), which allows reports to be run over the web. Depending on which is installed on the Web Server, the URLs are different. Use this preference to generate reports with the correct URL format.


  Reports server name (REPSRV preference)

Related Topics

Default:	(no value)
Values:	any name up to 80 characters in length.
Levels:	Container, Module
Category:	HTML Deployment

Use this preference to set the name of the reports server on which the RDF file will be run. If you don't enter a value, Report Generator will assume a setting of report_server.


  Web server name (WEBSRV preference)

Related Topics

Default:	(no value)
Values:	any string up to 240 characters in length.
Levels:	Container, Module
Category:	HTML Deployment

Use this preference to set the URL of the web listener to run against with the rwservlet installed, for example

myserver.oracle.com:888


Report Generator preferences - organized alphabetically

A, B

ALGSUM	Summary field alignment
C

CGIPTH	Virtual path to Reports CGI
COLNME	Prefixes of generated column names
CONAME	Company name
CPNAME	Prefixes of generated cross-product group names
CRELAY	Produce the layout model for the Report
CURNME	Prefixes of generated cursor names
CXDPTH	Levels of context information
D, E

DETLNK	Detail component linkage
DETPOS	Placement of detail and sibling groups
DOCFMT	Generate comments
DOJOIN	Merge queries
DSPFMT	Report output type
DTEMSK	Format mask for Date columns
F

FALIGN	Field alignment in a Form layout
FNTWID	Font width
FRMNME	Prefixes of generated formula column names
FTCRET	Display group titles
FTJUST	Group title alignment
G, H, I

GRPNME	Prefixes of generated group names
GRPTJS	Item group title alignment
GRPTLP	Item group title placement
J

JNCOLS	Display journal columns and set display width
JNGNME	Prefixes of generated break group for journal information
JNLOCN	Placement of journal columns
K

KEYAUT	Connection method
KEYCON	Database connection embedded in the key file
KEYNME	Name of the key
L

LAYREP	Layout template
LOVHFC	Hide first column in list of values
LOVTYP	List of values type
M

MAYSPL	Marker for optional prompt splitting
MSTSPL	Marker for mandatory prompt splitting
N

NUMEXT	Summary field display width
NUMPGE	Page size
O

OWSCGI	Web deployment type
P

PAREMG	Parameter error message text
PARENM	Parameter error message number
PARFOE	Parameter error action for invalid values
PARNME	Prefixes of generated parameter names
PFPCHR	Pre-field and post-field marker
PLSPRS	Compile generated PL/SQL
PRAFIE	Label placement in Form and Address layouts
PRJUAC	Label alignment for centered fields
PRJUAL	Label alignment for left-aligned fields
PRJUAR	Label alignment for right-aligned fields
PRSPTR	Label separator string
Q

QRYNME	Prefixes of generated query names
R

REPSRV	Reports server name
ROLENM	Role name
S

SUMNME	Prefixes of generated summary column names
SUPFRM	Hide boilerplate objects
SUPSEP	Hide pre-field and post-field label separator
T, U

TABOWN	Table owner in generated SQL
TRCPCT	Field truncation
TXTDCL	Default display length of fields: Character columns
TXTDDL	Default display length of fields: Date columns
TXTDNL	Default display length of fields: Numeric columns
V, W, X, Y, Z

VALCMB	Combine validation types
VALTYP	Validation type
WEBSRV	Web server name


About Report Generator

Report Generator is the Oracle Designer tool for generating Oracle Reports reports. Using Report Generator, you can generate a variety of reports, including group above reports, matrix reports, reports that call other reports, and reports that contain complex summaries.

Report Generator uses the following sources to generate a report:

•	Module and database design information from Oracle Repository, which defines report structure, data, and some aspects of the report layout.

•	Oracle Reports template definition file (TDF), which controls most aspects of the report layout. You can use the standard template definition files that are included with the Report Generator or Oracle Reports, or you can use your own custom template definition files.

•	Report Generator preference settings, which control some aspects of query generation and report layout.

•	Attached PL/SQL libraries (PLLs), which contain PL/SQL procedures, functions, and packages. You can use an attached library to programmatically create report objects, such as hyperlinks.

When you generate a report, Report Generator saves it as an Oracle Reports report definition file (RDF). You also can generate reports for HTML, HTMLCSS, or PDF output for deployment on the World Wide Web.

Releases of Oracle Reports to use with Oracle Designer Report Generator

Oracle Designer Report Generator generates applications for specific releases of Oracle Reports. The correct Oracle Reports release must be installed before you can use Oracle Designer Report Generator successfully. For more information about the release of Oracle Reports you require, refer to the Oracle Designer Release Notes.


Features added for Report Generator in 6i
Features added for Report Generator in Oracle Designer 6i

Major new features in Report Generator 6i

Support for generation from versioned repositories.

New repository features enable you to use the repository as well as the filesystem to store files required during generation, and also to store generated files after generation. Storing files in the repository gives you access to features such as the Dependency Analyzer and version control.

Other new and improved Report Generator features in 6i

New colors for those messages displayed in the Message Window that indicate whether Report Generator has successfully or unsuccessfully updated repository properties during generation and design capture.

As part of the support for generation from versioned Repositories, Report Generator no longer maintains a module's Status property.

Support for domain key constraints.

New and changed Report Generator terminology in 6i

Release 2.x	Release 6i
Report Builder	Used more precisely to describe the design-time component of Oracle Reports
generated Report Builder applications	generated Oracle Reports applications
Oracle Developer Reports	Oracle Reports
New Report Generator preferences in 6i

Name of new preference/category
CGIPTH	Virtual path to Reports CGI
KEYAUT	Database connection method
KEYCON	Database connection embedded in the key file
KEYNME	Name of the key
OWSCGI	Web Deployment type
REPSRV	Reports server name
Removed template files

Removed templates	Description	How to customize in 6i
cgbmdt.tdf	template report for A4 portrait reports (bitmap)	Headers and footers are no longer supported. Use templates packaged with Oracle Reports.
cgchdt.tdf	template report for A4 portrait reports (character mode)	Headers and footers are no longer supported. Use templates packaged with Oracle Reports.


Features added to Report Generator in previous releases

Features added to Report Generator in Oracle Designer Release 6.0

Features added to Report Generator in Oracle Designer Release 2.1.2

Features added to Report Generator in Designer/2000 Release 2.1.1

Features added to Report Generator in Designer/2000 Release 2.1


Features added to Report Generator in Oracle Designer Release 6.0

No new features were added to Report Generator in Oracle Designer Release 6.0.


Features added to Report Generator in Oracle Designer Release 2.1.2

Major new features in Oracle Designer Report Generator Release 2.1.2

Generation and design capture of multiple modules is now supported by the Design Editor's new batch processing tools


Features added to Report Generator in Designer/2000 Release 2.1.1

No new features were added to Report Generator in Designer/2000 Release 2.1.1.


Features added to Report Generator in Designer/2000 Release 2.1

Terminology

List of changes to Report Generator terminology

Report structure and objects

New and enhanced Repository objects and properties for defining report structure and objects

Enhanced Web reporting

Queries

Enhanced query generation

Parameter forms and parameters

Parameter forms now created at runtime

Domain validation now performed on the server

Application logic

Extended support for generating and capturing report triggers and events

Templates

New template definition files provide more visual design customization

Modified and obsolete template objectsNew Obsolete boilerplate object keywords

Preferences

New categorization of Report Generator preferences

New preferences

Modified preferences

Removed preferences

New terminology

Release 2 onwards contains updated terminology, which increases consistency across Repository module types and consistency between Oracle Designer Report Generator and Oracle Developer Report Builder:

Old terminology	Terminology new in Release 2
Oracle Designer Report Generator	Oracle Designer Report Generator
Oracle Developer Reports Designer	Oracle Developer Report Builder
Master-detail report	Group Above report
Control-Break report	Group Left report
Field prompt	Field label
Reverse Engineering	Design Capture
Summaries	There is now a distinction between two types of summaries: • Computed summaries, which are calculated on the client • SQL Aggregate summaries, which are calculated on the server
Derivation Expressions	There is now a distinction between three types of derived items: • SQL Expressions, which are evaluated on the server • Client Side Functions, which are evaluated on the client • Server Side Functions, which are evaluated on the server
Report structure and objects

Release 2 onwards of Oracle Designer introduces new and modified Repository elements and properties, which provide an improved method for creating the following report objects:

Queries	The module component, a new Repository object, provides a container for the tables, columns, and derived items that Report Generator uses to generate a query. A module component contains one base table usage. It also may contain one or more lookup table usages and two new types of table usages: • subquery table usages • single-row SQL aggregate table usages See Query Generation new features for more information.	Module Component Repository properties Table Usage Repository properties
Reports (General)	In Release 2 onwards, a window is created by default whenever you create a report module definition. As in previous releases, you can generate a drilldown report from a single module definition (report within a report) by defining a new window for the detail module component. How	Window Repository properties
Matrix Reports	You can now generate a matrix report from a single module component. In previous releases, you could only generate a matrix report from three base table usages (module components): one for each of the matrix groups. How	Item Group Repository properties
Groups (General)	In Release 2 onwards, groups are generated from the Item Groups that are defined in the module component. In addition, some of the properties that control group generation are now item group properties. For example, you can define a layout style for each break item group.	Item Group Repository properties
Break Groups	Release 2 onwards provides a simpler interface for defining break groups in Group Left (Break) reports. To define the "break" column or columns, create a new break item group and add the break columns to it. How	Item Group Repository properties
Fields (for column values)	To define the column values that you want to display in a generated report, you define a new type of Repository object, a bound item.  Note that you no longer need to define bound items (detailed column usages) for the foreign key columns, unless you want to generate a field for the foreign key column.	Item Repository properties
Summary and Derived Fields	Release 2 onwards includes two Repository objects for defining summaries and derived fields: • unbound items • Single-row SQL Aggregate (SRSA) table usages You also can generate a multiple-row SQL aggregate for the detail group of a Group Above (master-detail) report. In previous releases, multiple-row SQL aggregates could be defined in reports that contained a single group, only. About	Item Repository properties
Parameters	You can now bind a module argument to more than one item in a module. This means that you can define more than one restrictive condition against a single item.	Module Argument Repository properties
Navigation between Modules	Release 2 onwards includes a new type of Repository object for defining navigation between report modules or between a report module and another type of module: the Navigation Action Item.	Action Item properties
Web reporting

In the previous release of Report Generator, you generated a report for Web output by attaching the CGWEBP.RDF (PDF) or CGWEBH.RDF (HTML) template to the report module. Release 2 onwards of Report Generator includes a new preference, DSPFMT, for specifying the type of report output.

Additionally, in Release 2 onwards you can generate HTMLCSS output to support cascading style sheets.

Calling SRW built-in procedures instead of procedures in CGWEB.pll library

In previous releases of Report Generator, the CGWEB.pll library contained PL/SQL code for generating Web functionality such as hypertext links and tags. The library was attached to the default template report. In Release 2 onwards, Report Generator generates calls to Report Builder SRW built-in procedures instead of calls to procedures in the CGWEB.pll library, as shown below:

Procedure in CGWEB.pll	Equivalent SRW built-in	Description
create_hyperlink	set_hyperlink	Create a hyperlink for the object. Follows hypertext links to remote servers of HTML documents
create_bookmark	set_bookmark	Create a bookmark for the object.  This is a string that will appear in the bookmark area in a PDF viewer. Clicking on the bookmark displays the associated object at the top of the window
create_linktag	set_linktag	Create a tag for the object. Can be used as the destination for hypertext links.
create_action	set_pdf_action	Create an action for the object. This is a command line that will be executed on the local machine when the object is clicked on in the  PDF viewer.

The CGWEB.pll library is no longer necessary and is therefore no longer attached to the default template report.

However, CGWEB.pll is still supplied with Release 2 onwards of Report Generator to support generation of report modules that have been upgraded from the previous release. To attach CGWEB.pll to reports generated using Release 2 onwards of Report Generator either set MODLIB to CGWEB.pll or use Report Builder to attach CGWEB.pll to the template report.

Query generation

Release 2 onwards of Report Generator provides enhanced query generation. New features include:

Combining Table Usages into a Single Query	You can now combine all types of linked table usages into a single query. This enables you to: • generate SQL expression items that use data from several table usages • define two or more single-row SQL aggregate (SRSA) table usages in a particular module component. You can define different restrictive conditions (WHERE clauses) for each SRSA • generate treewalking queries across different table usages Note: In Release 2 onwards, Report Generator does not automatically generate a parameter that specifies the START WITH clause for treewalk links. To specify the START WITH clause and other treewalk link properties, use the Table Usage Repository properties.
Subqueries (General)	Release 2 onwards includes a new type of table usage: the subquery table usage. The Subquery table usage enables you to explicitly define a subquery.  In previous releases, subqueries were created by defining a table usage and hiding all the items (detailed column usages) in that table usage. In Release 2 onwards, you simply select the parent table usage and define a new table usage, specifying "Subquery" as the type. Use the WHERE clause property of the subquery table usage to define the restriction that you want the subquery to apply. Release 2 onwards also provides a more direct way of adding the NOT operator to reverse the logic of the query. Instead of setting a preference (ANNOTR), reverse the logic by setting the Not Exist? Repository table usage property.
Correlated subqueries	The new preference DETLNK controls how Report Generator creates the link between master and detail rows and enables you to use correlated subqueries to increase network efficiency.
UNION operator	You can now retrieve all rows from two or more tables by defining a SQL query set. When you define a SQL query set, Report Generator adds the UNION operator to the generated query to return all rows from all SELECT statements.
Columns in SELECT list	In Release 2 onwards, Report Generator adds all bound items to the generated SELECT list. In previous releases, if you specified that a detailed column usage should not be displayed on the generated report, Report Generator removed the column from the SELECT list. You do not need to define bound items for foreign key columns unless you want to generate a field for the foreign key column. Report Generator adds the foreign key column to the SELECT list when needed to join module components or table usages.
Parameter forms and parameters

If you create parameters in the report module definition, the parameter form is created whenever you run the generated report. Report Generator no longer supports parameter form generation, parameter form templates, or parameter form layout preferences.

Domain validation of parameters is now controlled on the server. For more information, refer to About reference code tables in the Server Generator on-line help.

Application logic generation and design capture

You can now add Oracle Developer Report Builder report triggers and named routines directly to Oracle Designer Repository objects. In Oracle Designer, adding product-specific code is known as defining application logic.  About

In addition, if you use Oracle Developer Report Builder to add code to a generated report, you can save the named routines and triggers to the Repository. To do this, use the new Report Generator Capture Application Logic utility.  About

Template definition files (TDF)

Release 2 onwards of Report Generator supports template definition files (TDFs), which were new in Oracle Developer Report Builder 3.0. If you upgrade report modules from previous releases of Oracle Designer, Report Generator automatically converts RDF templates to TDF format.

Standard template reports
Release 2 onwards includes standard template reports for generating report layout. You can also override the standard templates at generation time.

Note:	Template reports are no longer required for report generation, but it is strongly recommended that you use one to control the visual design of generated reports. Release 2 onwards does not support parameter form template reports or storing template reports in the database.

Customization
The close integration between Report Generator and Report Builder templates also means that some of the customization via preference settings and post-generation modifications is now consolidated. For example, spacing between labels, fields, and groups can now be set using Template properties.

Modified and obsolete template objects

Some of the template objects have been modified or removed. The template objects for displaying the module top title, CG$M1 and CG$M2, are combined into one object, CG$MT. Template objects that control the visual display of parameter fields have been removed.

Obsolete template object	How to customize
CG$M1	Displays the module top title or, if the module top title contains a separator string, displays the part of the title that precedes the separator character.	Use the new template object, CG$MT.
CG$M2	Displays the part of module top title that follows a separator character.	Use the new template object, CG$MT.
CG$PF<number>	Specifies the location and visual attributes of a parameter field on a parameter form.	Modify the parameter form in Oracle Developer Report Builder.
CG$PFN	Specifies the location and visual attributes of a parameter field on a parameter form when there is no CG$PF<number> specified for a parameter.	Modify the parameter form in Oracle Developer Report Builder.
CG$PP<number>	Specifies the location and visual attributes of a parameter field prompt on a parameter form.	Modify the parameter form in Oracle Developer Report Builder.
CG$PPN	Specifies the location and visual attributes of a parameter field prompt on a parameter form when there is no CG$PF<number> specified for a parameter.	Modify the parameter form in Oracle Developer Report Builder.
 Removed boilerplate keywords

In the previous release of Report Generator you were able to add default boilerplate object keywords to your layout model template and apply formatting styles to these objects. This was to allow generated objects in the report to inherit the format that you applied to the boilerplate object. In Release 2 onwards, the font and visual attributes can be specified in the template definition file.

Removed boilerplate object keywords	How to customize
CG$BUTTON	Use the Repository item properties width and height
CG$SIZING	Use the Report Builder with the Layout Model open
CG$DCU_GRP_FRM	Use the Template properties in the Oracle Designer Item Group Style/Title sections
CG$HEADER	Use the Template properties in the Frames section of the Layout Model Body
CG$PARAMETER	This functionality is not supported in Release 2 onwards
CG$PROMPT	Use the Template properties in the Field/Labels Headings section of the Layout Model Body
CG$FIELD	Use the Template properties in the Fields section of the Layout Model Body
CG$US	This functionality is no longer supported
 New preference categories

Report Generator preferences have been recategorized in Release 2 onwards.

For more information, see the list of preferences.


New preferences for Report Generator in Designer/2000 Release 2

New preferences

The following preferences are new in Release 2 of Report Generator.

Preference

ALGSUM	Align summary fields
DETLNK	Detail component linkage
DETPOS	Position detail and sibling groups
DSPFMT	Report output type
FALIGN	Field alignment
FNTWID	Minimum font size used to lay out field
JNGNME	Prefixes of generated break group for journal information
MAYSPL	Separator for optional label splitting
MODLIB	PL/SQL attached library
MSTSPL	Separator for mandatory label splitting


Modified preferences for Report Generator in Designer/2000 Release 2

Modified preferences

Preference	Notes
DOJOIN	Combine queries	The value of this preference can no longer be specified at generation time.
FTCRET	Display group titles	This preference can now be set at Module Component level.
LOVTYP	List of Values type	The default value is now Base Table (BT).
PARNME	Prefixes of generated parameter names	The default value is now CG$P_
SUPFRM	Hide boilerplate objects when no records are retrieved.	The values of this preference are now Yes and No. The default value is now Yes.
TRCPCT	Change the degree of field truncation	The default value is now 20 percent.


 Removed preferences for Report Generator in Designer/2000 Release 2

Removed preferences

Many of the customization tasks that were controlled by preferences in previous releases are now controlled by Repository properties or the Template. The removed preferences are listed below along with brief instructions on how to customize in Release 2 onwards.

You can set Report Builder Template properties for all reports or override the Default Section settings for different styles of report. For more information on Template properties, refer to the Oracle Developer Report Builder online help.

Removed Display preferences	How to customize
BTITLE	Specify a default bottom title	Use the Repository module property: Bottom Title
MNYMSK	Change the format mask of a money field	Use the Repository item property: Format Mask
NATLNG	Set the national language for the text of a generated report	This functionality is not supported in Release 2 onwards.
Removed Generator Question preferences	How to customize
ANDIST	Display duplicate rows	Use the Repository table usage property: Select Distinct?
ANNOTR	Use the NOT operator for subqueries	Use the Repository table usage property: Not Exists?
HIDPAR	Hide parameters with default values	Report Generator no longer generates parameter forms.
SWPANS	Use the START WITH parameter for a treewalk	By default, Report Generator no longer generates parameters to create a START WITH clause for a treewalk link.  To specify the root row or rows of the hierarchy use the Repository table usage property: Start With Clause
Removed Generator Runtime preferences	How to customize
DVMEAN	Use the meaning when generating columns within a domain	Use the Repository item property: Show Meaning
JNOPDC	Add a derivation expression to a JN_OPERATION	Use an unbound item of type SQL Expression.
TWPRLN	Change the default length for a generated START WITH parameter	Report Generator no longer automatically generates parameters to create a START WITH clause for a treewalk link.  To specify the root row or rows of the hierarchy use the Repository table usage property: Start With Clause
TWPROP	Use the default detailed column usage parameter operator	Report Generator no longer automatically generates parameters to create a START WITH clause for a treewalk link.  To specify the root row or rows of the hierarchy use the Repository table usage property: Start With Clause
TWPRSW	Add a treewalk parameter to the START WITH clause	Report Generator no longer automatically generates parameters to create a START WITH clause for a treewalk link.  To specify the root row or rows of the hierarchy use the Repository table usage property: Start With Clause
TWSWSS	Add a treewalk START WITH clause to the SELECT statement	Use the Repository table usage property: Start With Clause
TWTNFT	Specify the direction of the treewalk	No longer supported.
Removed Layout - Item Group preferences	How to customize
GRPFRG	Adjust the space between a frame and the objects in an item group	Use the Report Builder Template Spacing properties: Inter-Frame (Horizontal) Inter-Frame (Vertical)
GRPPCT	Adjust the space for an item group with a form layout style	This functionality is not supported in Release 2 onwards.
GRPTGP	Adjust the space between an item group title and an item group	Use the Report Builder Template Spacing properties: Between Frame and Fields (Horizontal) Between Frame and Fields (Vertical)
GRPTUL	Underline an item group title	Use the Report Builder Template Oracle Designer Item Group Title property: Font
Removed Layout - Field preferences	How to customize
ALWTRC	Control field truncation	Use the TRCPCT preference to control field truncation.
AVGWID	Use the average character width	The Report Builder Template Unit of Measurement property specifies whether space is measured in centimeters, inches, or points.
FIEPRG	Adjust the space between fields and prompts	Use the Report Builder Template Spacing properties: Inter-Field (Horizontal) Inter-Field (Vertical)
PRFIEG	Adjust the space between prompts and fields	Use the Report Builder Template Spacing property: Between Field and Labels (Horizontal)
VFIESP	Adjust the space between lines of wrapped fields	Use the Report Builder Template Spacing property: Inter-Field (Vertical)
Removed Layout - Field Style preferences	How to customize
CENTER	Change the alignment of fields in a group with a form layout style	This preference is renamed FALIGN. In addition, there are two new values for this preference for justifying fields between the left and right side of the frame and for aligning the fields in columns.
SPLPMT	Allow split prompts	Label splitting is now controlled with the new preferences MAYSPL and MSTSPL.
TABTAB	Change the position of tab stops	Set the Report Builder Template Layout Alignment property to Column.
USTABS	Use tab stops to align fields and prompts	Set the Report Builder Template Layout Alignment property to Column.
Removed Layout - Frame preferences	How to customize
BDRUSE	Create a border around group frames	For item groups, use the Report Builder Template Oracle Designer Item Group Style property: Edge Pattern Otherwise, use the Report Builder Template Style property: Edge Pattern
DGRFIG	Change the space between instances for bottom-level detail	Use the Report Builder Template Spacing properties: Between Frame and Fields (Horizontal) Between Frame and Fields (Vertical)
FRAMED	Set the unit of measurement for the space between frames	The Report Builder Template Unit of Measurement property specifies whether space is measured in centimeters, inches, or points.
FRAMEG	Change the space between frames and objects	Use the Report Builder Template Spacing properties: Between Frame and Fields (Horizontal) Between Frame and Fields (Vertical)
GRFIND	Change the space between master detail frames	Use the Report Builder Template Spacing properties: Between Master and Detail (Horizontal) Between Master and Detail (Vertical)
GRFSEP	Change the space between group frames	Use the Report Builder Template Spacing properties: Between Sibling Frames (Horizontal) Between Sibling Frames (Vertical)
MGRFIG	Change the space between instances of top-level master groups	Use the Report Builder Template Spacing properties: Between Sibling Frames (Horizontal) Between Sibling Frames (Vertical)
MINMWD	Change the minimum number of widow records that are displayed	Use the Repository module component property: Rows Displayed
PGEBRK	Insert page breaks	This functionality is not supported in Release 2 onwards.
Removed Layout - Frame Style preferences	How to customize
ALTSUM	Change the layout style of summary fields	Use the ALGSUM preference to change the alignment of summary fields.
FTBRKS	Specify the character used to separate the display title for each break group	Use the Repository item group property: Prompt  Because break groups are now created by defining an item group, you can specify the title of each break group.
FTCELL	Title of cross-product group in Matrix reports	This functionality is not supported in Release 2 onwards.
FTCHRS	Change the title separator for group frame titles	Because you can now use the Prompt item group Repository property to specify the title of each break group, the title separator is obsolete.
FTDFLT	Use a default title for detailed table usages	Use the Repository module component property: Title
FTUNDL	Underline group frame titles	Use the Report Builder Template Oracle Designer Item Group Title property: Font
LINCHR	Set the character used for non-graphical lines	Use the Report Builder Template Oracle Designer Item Group Title property: Font to specify underlining for group frame titles. Underlining prompts is not supported in Release 2 onwards.
LINLEV	Add boilerplate lines at different levels	This functionality is not supported in Release 2 onwards.
LINPCT	Set the width of boilerplate lines drawn for frames	This functionality is not supported in Release 2 onwards.
LINTYP	Set the type of boilerplate lines drawn between group frames	This functionality is not supported in Release 2 onwards.
LINUSE	Add boilerplate lines between group frames	This functionality is not supported in Release 2 onwards.
MINMSP	Change the minimum space available before wrapping group frames	This functionality is not supported in Release 2 onwards.
MNTREL	Maintain the relative positioning of objects in a group frame	This functionality is not supported in Release 2 onwards.
SAVESP	Position fields around a two dimensional object	Use the Report Builder Template Layout property: Use Vertical Spacing
TABRAT	Wrap detail and master groups	This functionality is not supported in Release 2 onwards.
Removed Layout - Parameter preferences	How to customize
PARFLN	Set the default length for parameter fields	Report Generator no longer generates parameter forms.
PARPFG	Change the spacing between parameter fields and prompts	Report Generator no longer generates parameter forms.
PARPLN	Change the default length for parameter prompts	Report Generator no longer generates parameter forms.
PARSPC	Change the vertical space between parameters	Report Generator no longer generates parameter forms.
PARTGP	Change the space between the top of the page and the first parameter	Report Generator no longer generates parameter forms.
Removed Layout - Report Style preferences	How to customize
CXDFLT	Display context fields	You can no longer specify which items to use as context items.
DRMLEV	Set the level at which the positioning of detail groups is applied	Use the new preference, DETPOS. to specify the position of each group.
GRFSTP	Set group frame stops	This functionality is not supported in Release 2 onwards.
MADLOT	Position detail and sibling groups	Use the new preference, DETPOS..
 Removed Name of Generated Layout and Parameter Form Objects preferences

The following preferences have been removed since Report Generator no longer generates parameter forms and now uses Report Builder to create the initial layout of the report.

BPLINE	boilerplate graphical lines
BPLPRE	boilerplate pre-field prompts
BPLPST	boilerplate post-field prompts
BPNAME	boilerplate names
FLDNME	fields
GFRDGE	item group frames
GFRFTR	footer frames
GFRHDR	header frames
GFRPMT	prompt frames
GFRRPS	maintain relative positioning frames
GRPFRM	other group frames
MTXFRM	matrix frames
PARFLD	parameter fields
PARPMT	parameter prompts
PLSNME	page-level summaries
RFRNME	repeating frames
Removed Parameter preferences	How to customize
DVLOAD	Load domain validation for module	Report Generator does not update the reference codes table during generation. Use the Generate Reference Code Tables utility to update the table.
DVTABL	Specify the domain validation table for parameter validation	Set the Scope Of Reference Code Table field in the General Generator Options dialog box.
LOVRES	Restrict the values of the parameter to the defined list	Use the Repository argument property: Suggestion List?
Removed SQL Generation preferences	How to customize
LNKCOL	Specify the columns in the link between queries	Functionality replaced by DETLNK
SQLPRS	Parse generated SQL	Oracle Developer Report Builder forces all SQL to be parsed.
Removed Template preferences	How to customize
DETDEV	Specify the storage device of the drilldown detail template report	All templates must be stored on the file system.
DETREP	Detail report template	Use the Repository window property: Template/Library Object
LAYDEV	Specify the storage device of the layout model template report	All templates must be stored on the file system.
PARDEV	Specify the storage device of the parameter form template report	Report Generator no longer generates parameter forms.
PARREP	Specify the filename of the parameter form template report	Report Generator no longer generates parameter forms.


 About generated reports and PL/SQL library modules

The reports you generate can include calls to functions and procedures in attached PL/SQL library modules. For more information about PL/SQL library modules, refer to About PL/SQL library modules in the Library Generator help system.

You can create PL/SQL library modules in two ways:

•	by using Report Builder (or Form Builder) to create the PL/SQL library modules

•	by defining library modules containing application logic in the repository and generating them using Library Generator

Note that you can also create a repository library module definition that simply contains a reference to a file-based PL/SQL library module created using Report Builder.

You can specify that a PL/SQL library module is to be attached to a generated report in one of two ways:

•	using Report Builder to attach PL/SQL library modules to the template

•	specifying a module network link to attach repository library module definitions to the modules that call them

In both cases, Report Generator creates library attachment objects in the generated report. Report Generator attempts to set the library attachment object's PL/SQL Library Location property simply to the name of the PL/SQL library. However if Report Generator cannot find the PL/SQL library in the locations specified by the Registry variables, it adds the path specified in the PLL Destination field on the Library Generator Options dialog box to the PL/SQL Library Location property. Note that hard-coding the path into the PL/SQL Library Location property makes the generated application significantly less portable, and is therefore not recommended.

When deploying the generated application, it is your responsibility to both distribute any attached PL/SQL libraries and to set the appropriate Registry variables to locate them. For more information, refer to Attaching PL/SQL library modules to generated Oracle Forms/Reports modules in the Library Generator help system.

When using Report Generator to generate a report module, you can specify that Library Generator is automatically invoked to generate any attached library modules defined in the repository. You can also use Library Generator to capture existing PL/SQL library modules into the repository. For more information about these and other areas of Library Generator functionality, refer to Generating PL/SQL library modules in the Library Generation help system.


 An overview of the report generation process

For a general description of the tasks involved in generating an application, refer to Designing and generating applications in the Design Editor on-line help.

The following list details the tasks involved in using Report Generator to generate an Oracle Reports application:

•	create database, table and column definitions

•	create a report module definition to represent the report

•	create module components to represent report queries

•	create module component table usages to specify the tables to use in the report query

•	create bound and unbound items to represent the items to use in the report query

•	set Report Generator options

•	generate the report

•	run the generated report

When you run the generated report, you may find that it does not fully meet your requirements. You can use Oracle Designer to add more functionality to the report, for example by adding parameters or enhancing the report query. You can also use Report Builder to customize the appearance and layout of the report. For more information, refer to Enhancing module design and customizing report layout. After making these modifications, generate the report again.

The Application Design Transformer enables you to automatically create modules based on the database design and analysis information. For more information refer to What is the Application Design Transformer?


Starting the Oracle Reports help system

For more information about Oracle Reports, refer to:

•	the Oracle Reports online manuals by clicking here

•	the Oracle Reports help file by clicking here

Note that the Oracle Reports help file (which is called rw60d.hlp) is normally located in the /orant/tools/doc60 directory (WindowsNT), or the /orawin95/tools/doc60 directory (Windows95). If the help file is not in one of these directories, you might have to find the file yourself.