Preface IIntroduction Course Objectives I-2 Course Content I-3 1Introduction to Oracle Reports Developer Objectives 1-2 Business Intelligence 1-3 Enterprise Reporting 1-5 Web Publishing 1-9 Paper Publishing 1-10 Oracle Reports Developer 1-11 Benefits 1-12 Oracle 10g Products 1-13 Oracle Database 10g 1-14 Oracle Developer Suite 10g 1-15 Oracle Application Server 10g 1-18 Oracle Reports Developer 1-20 OracleAS Reports Services 1-22 OracleAS Reports Services Architecture for the Web 1-23 Summary Designing and Running Reports Objectives 2-2 Understanding User Requirements 2-3 Designing Reports 2-5 Tabular 2-7 Master-Detail 2-8 Master with Two Details 2-9 Matrix 2-10 Retrieving and Sharing Data 2-11 Running a Report 2-13 Previewing Reports 2-15 Print Preview 2-16 Supported File Types 2-19 Summary 2-21 Practice 2 Overview Working in Oracle Reports Developer Objectives 3-2 Reports Developer Executables 3-3 Invoking Reports Builder 3-5 Reports Builder Modules 3-6 Report Data and Layout 3-7 Reports Builder Components 3-8 Main Menu Structure 3-10 Wizards 3-12 Report Editor 3-13 PL/SQL Development Environment: Syntax Palette 3-15 Contents iii
Object Navigator 3-16 Report-Level Objects 3-17 Data Model Objects 3-18 Paper Layout Objects 3-19 Paper Parameter Form Objects 3-20 Object Interrelationship 3-21 Customizing Your Oracle Reports Developer Session 3-22 Saving Preferences 3-23 Oracle Reports Environment Variables 3-24 Using the Online Help System 3-26 Summary 3-28 Practice 3 Overview Creating a Paper Report Objectives 4-2 Report Module Components 4-3 Building a Paper Report 4-4 Invoking the Report Wizard 4-5 Choosing the Layout Type 4-6 Creating a Tabular Report 4-7 Selecting the Data Source Type 4-9 Using Query Builder 4-10 Building a Query 4-11 Query Builder Functions 4-12 Selecting Displayed Fields 4-14 Totals and Labels 4-15 Selecting a Report Template 4-16 Viewing the Paper Report Output 4-17 Saving the Report Definition 4-18 Reentering the Wizard 4-19 Creating a New Report 4-21 Creating Break Reports 4-22 Break Report Labels 4-23 Creating Mailing Labels and Letters 4-24 Creating a Matrix Report 4-26 Previewing a Paper Report in a Browser 4-28 Summary 4-30 Practice 4 Overview Enhancing a Basic Paper Report Objectives 5-2 What Is the Paper Design? 5-3 The Paper Design Window 5-4 Modifying a Report 5-5 Aligning Columns 5-6 Setting a Format Mask 5-7 Manipulating Objects 5-9 iv
Modifying Visual Attributes 5-10 Applying Conditional Formatting 5-12 Inserting Page Numbers, Dates, and Times 5-14 Customizing Dates 5-16 Summary 5-17 Practice 5 Overview Managing Report Templates Objectives 6-2 Using Report Templates 6-3 Modifying a Template 6-4 Customizing the Template Margin 6-6 Customizing the Template Body 6-7 Adding Web Links to a Template for Report HTML Output 6-8 Predefining Your Own Templates 6-10 Adding a Template Preview Image 6-12 Summary 6-13 Practice 6 Overview Creating a Web Report Objectives 7-2 What Is JSP Technology? 7-3 JSP Advantages 7-4 Simple JSP Example 7-6 Building a Web Report 7-7 Using the Report Wizard 7-8 Report Editor: Web Source View 7-9 JSP Tags 7-11 Web Source Example 7-13 Generating Output 7-15 Image Format Support 7-17 Summary 7-19 Practice 7 Overview Enhancing Reports Using the Data Model: Queries and Groups Objectives 8-2 The Data Model Objects 8-3 Modifying Properties of a Query 8-5 More Properties 8-8 Applying Changes 8-10 Changing the Group Structure 8-12 Group Hierarchy 8-14 Ordering Data in a Group 8-16 Query Modifications 8-18 Filtering Data in a Group 8-20 v
Using a Packaged Filter 8-21 Summary 8-22 Practice 8: Overview Enhancing Reports Using the Data Model: Data Sources Objectives 9-2 Data Source Types 9-3 Pluggable Data Sources 9-5 Out-of-the-Box Options 9-6 Using XML as a Data Source 9-7 Example: XML Data Stream 9-9 Document Type Definition File 9-10 XML Report 9-11 OLAP Data Source 9-12 Defining an OLAP Query 9-13 Example: OLAP Report 9-14 Using Text as a Data Source 9-15 Setting Up the textpds.conf File 9-16 Defining a Text Query 9-18 Sample Text PDS Report 9-19 Using JDBC as a Data Source 9-20 Configuring the jdbcpds.conf File 9-21 Defining a JDBC Query 9-23 Adding New Data 9-25 Using REF Cursor Queries 9-28 Viewing Output from Multiple Query Reports 9-30 Using Data Links 9-32 Creating a Column-to-Column Link 9-34 Other Data Link Methods 9-36 Efficiency Issues: Multiple- or Single-Query Hierarchy 9-38 Summary 9-40 Practice 9 Overview Enhancing Reports Using the Data Model: Creating Columns Objectives 10-2 Data Model Columns 10-3 Maintaining Data Source Columns 10-5 Producing File Content Output 10-7 Creating a Column 10-9 Creating Summary Columns Displaying Subtotals Displaying Percentages vi
Resetting Summary Values Creating a Formula Column Creating a Placeholder Column Populating a Placeholder Column Summary Practice 10 Overview Enhancing Reports Using the Paper Layout Objectives 11-2 Viewing the Paper Layout 11-3 Viewing the Section Areas 11-5 Designing Multipanel Reports 11-6 Printing Multipanel Reports 11-8 Different Objects in the Paper Layout 11-9 The Paper Layout Layers Avoiding Layout Errors Report Processing Creating Layout Objects Paper Layout Tools Report Bursting Bursting on a Repeating Group Creating an Additional Layout Distributing a Report Tracing the Report Distribution Creating Variable Length Lines Summary Practice 11 Overview Controlling the Paper Layout: Common Properties Objectives 12-2 Modifying Paper Layout Object Properties 12-3 Comparing Properties 12-5 Common Layout Properties 12-6 Sizing Objects 12-7 Anchors 12-9 Layout Object Relationships Pagination Icons in the Paper Layout Using Page Break Before Using Page Break After Using Page Protect Controlling Print Frequency Using Format Triggers Layout Object Properties for Web Support Summary Practice 12 Overview vii
13Controlling the Paper Layout: Specific Properties Objectives 13-2 Properties of a Repeating Frame 13-3 Specifying Print Direction 13-4 Controlling the Number of Records per Page 13-6 Controlling Spacing Between Records 13-7 Minimum Widow Records 13-8 Column Mode 13-9 Properties of a Field System Variables Page Numbering Valid Source Columns Displaying File Contents When Are the Contents Updated? Linking and Importing Files Comparing a File Link and a File Column Specifying the Format Order PDF Document Taxonomy Properties Summary Practice 13 Overview Web Reporting Objectives 14-2 High Quality Web Publishing 14-3 Comparing Static and Dynamic Reporting 14-5 Adding Dynamic Content 14-7 Creating a Report Block 14-9 Invoking the Report Block Wizard Examining the Web Source Code rw:foreach Tag rw:field Tag Customizing Reports JSPs Customizing Reports JSPs Using Style Sheets Customizing Reports JSPs Using HTML Tags and Attributes Customizing Reports JSPs Using Reports Custom Tags Summary Practice 14 Overview Extending Functionality Using XML Objectives 15-2 Why Use XML Report Definitions? 15-3 Creating XML Report Definitions 15-5 Partial Report Definitions: Format Modification Example 15-7 Partial Report Definitions: Format Exception Example 15-9 viii
Full Report Definition: Data Model Modification Example Running XML Report Definitions Debugging XML Report Definitions Summary Practice 15 Overview Creating and Using Report Parameters Objectives 16-2 Creating User Parameters 16-3 Referencing Parameters in a Report Query 16-6 Using Bind References 16-8 Using Lexical References Hints and Tips When Referencing Parameters Creating a List of Values Referencing System Parameters Building a Paper Parameter Form Customizing a Paper Parameter Form Using Parameter Form HTML Extensions Parameter Form Header and Footer Summary Practice 16 Overview Embedding a Graph in a Report Objectives 17-2 Adding a Graph to a Paper Report 17-3 Adding a Graph to a Web Report 17-5 Selecting the Graph Type 17-6 Selecting the Graph Data 17-7 Adding Options to the Graph 17-8 Customizing Web Graphs The rw:graph Tag Customizing Graphs Using the Graph.XML File Using Graph Hyperlinks Summary Practice 17 Overview Enhancing Matrix Reports Objectives 18-2 The Matrix Data Model 18-3 The Matrix Paper Layout 18-5 Creating Matrix Summaries 18-7 Creating the Matrix Manually 18-9 The Matrix with Group Data Model The Matrix with Group Layout Building a Nested Matrix Nested Matrix Paper Layout ix
Creating Nested Matrix Summaries Displaying Zeros Summary Practice 18 Overview Coding PL/SQL Triggers Objectives 19-2 Types of Triggers in Reports 19-3 Trigger Code 19-5 Using Report Triggers 19-6 Using Data Model Triggers: PL/SQL Group Filter Using Data Model Triggers: Parameter Validation Using Layout Triggers Using a Format Trigger on a Frame Using a Format Trigger on a Repeating Frame Using a Format Trigger on a Field Using a Format Trigger in a Web Layout Using a Format Trigger on a Boilerplate Object Writing Common Code Event-Based Reporting Event-Driven Publishing API Invoking a Report from a Database Event Summary Practice 19 Overview Extending Functionality Using the SRW Package Objectives 20-2 Contents of the SRW Package 20-3 Outputting Messages 20-5 Executing a Nested Report 20-7 Restricting Data Initializing Fields Creating a Table of Contents Performing DDL Statements Setting Format Attributes Using Format Attributes in a Web Layout Summary Practice 20 Overview Maximizing Performance Using OracleAS Reports Services Objectives 21-2 Running Reports Using OracleAS Reports Services 21-3 Report Request Methods 21-5 Oracle Application Server Components 21-7 Enabling Single Sign-On Access 21-9 x
Running the Web Layout: JSP Run-time Architecture Running the Paper Layout: Servlet Run-time Architecture Running a Paper Report on the Web Running a Report from the Command Line The OUTPUTIMAGEFORMAT Parameter The Schedule Parameter Reports Caching Using Oracle Enterprise Manager Managing and Monitoring OracleAS Reports Services What Is the Queue Manager? Queue Manager Using the Queue Manager Summary Practice 21 Overview Building Reports: Efficiency Guidelines Objectives 22-2 Tuning Reports 22-3 Performance Measurement 22-5 Non SQL Data Sources 22-6 Investigating the Data Model 22-8 Investigating the Paper Layout Running the Report Different Development and Run-Time Environments Developing Reports to Run in Different GUIs Setting NLS Language Environment Variables Translating an Oracle Reports Application Summary Practice 22 Overview Appendix A - Practice Solutions Appendix B - Table Descriptions Appendix C - Creating Web Layout Templates Glossary xi