Oracle Forms Developer and Reports Developer Release 6
i
:
Guidelines for Building Applications
A73073-01
Index
Contents
Title and Copyright Information
Send Us Your Comments
Preface
1 Managing Your Applications
1.1 The Software Development Lifecycle: An Overview
1.1.1 Using Project Builder to implement a management strategy
1.1.2 About Project Builder
1.1.2.1 Understanding Project Builder terminology
1.1.2.2 How Project Builder affects existing development roles
1.1.3 Exploring Project Builder benefits
1.1.3.1 Associating modules with an application
1.1.3.2 Automating actions based on file types
1.1.3.3 Creating dependencies between modules
1.1.3.4 Assigning default connection strings to modules
1.1.3.5 Designating which modules are to be included in the final install set
1.1.3.6 Sharing and porting project and subproject registry files
1.1.3.7 Accessing other product components and third party tools
1.1.3.8 Using source control packages
1.2 Managing Project Documents During Design and Development
1.2.1 Installing Project Builder
1.2.1.1 Installing the project and user registries
1.2.2 Creating a project
1.2.2.1 Creating a project: Project Administrator
1.2.2.2 Creating a project: Team members
1.2.3 Working with projects and project documents
1.2.3.1 Working with projects: Project Administrator
1.2.3.2 Working with project documents: Team members
1.2.4 Managing projects and project documents across multiple platforms
1.2.4.1 Managing projects across multiple platforms: Project Administrator
1.2.4.2 Managing project documents across multiple platforms: Team members
1.3 Managing Project Documents During the Test Phase
1.3.1 On the development side
1.3.1.1 The test phase: Project Administrator
1.3.2 On the test side
1.3.2.1 The test phase: Testers
1.4 Managing Project Documents During the Release Phase
1.4.1 On the development side
1.4.1.1 The release phase: Project Administrator
1.5 Deploying Completed Applications
1.5.1 Before You Begin
1.5.1.1 Terminology
1.5.1.2 The Oracle Installer files
1.5.1.3 The contents of the TEMPLATES directory
1.5.2 Making your application an installable product
1.5.2.1 Deploying your application on Windows
2 Designing Visually Effective Applications
2.1 Understanding the Process
2.1.1 What are the stages?
2.1.2 Defining user requirements
2.1.3 Planning the user interface
2.1.3.1 Creating your standards
2.1.3.2 Considering portability
2.1.3.3 Creating a prototype
2.1.4 Building the user interface elements
2.1.5 Gathering user feedback
2.2 Creating an Effective Form
2.2.1 Understanding forms
2.2.1.1 What is a module?
2.2.1.2 What are forms, blocks, items, regions, and frames?
2.2.1.3 What are windows and canvases?
2.2.2 Guidelines for building forms
2.2.2.1 Using object libraries
2.2.2.2 Understanding basic design principles
2.2.2.3 Adding color
2.2.2.4 Creating canvases
2.2.2.5 Creating windows
2.2.2.6 Creating regions
2.2.2.7 Adding items to blocks
2.2.2.8 Designing messages
2.2.2.9 Implementing online help
2.2.2.10 Building effective menus
2.3 Creating an Effective Report
2.3.1 Understanding Reports
2.3.2 Using Templates in Report Builder
2.3.3 Understanding Layout Objects
2.3.4 Controlling Layout Objects in Report Builder
2.3.4.1 Using anchors
2.3.4.2 Using the Print Object On and Base Printing On properties
2.3.4.3 Understanding Horizontal and Vertical Elasticity
2.3.4.4 Using the Page Break Before and After property
2.3.4.5 Using the Page Protect property
2.3.4.6 Using the Keep with Anchoring Object property
2.4 Creating an Effective Display
2.4.0.7 Choosing the Right Graph
3 Performance Suggestions
3.1 Summary
3.2 Introduction: What Is Performance?
3.2.1 Performance When?
3.2.2 Performance of What?
3.2.3 Interrelationships
3.2.4 Trade-offs
3.3 Measuring Performance
3.3.1 Forms Developer- and Reports Developer-Specific Measurements
3.3.1.1 Forms Measurements
3.3.1.2 Reports Measurements
3.3.2 Server- and Network-Specific Measurements
3.4 General Guidelines for Performance Improvement
3.4.1 Upgrades of Hardware and Software
3.4.1.1 Software Upgrades
3.4.1.2 Hardware Upgrades
3.4.2 Suggestions for Data Usage
3.4.2.1 Use Array Processing
3.4.2.2 Eliminate Redundant Queries
3.4.2.3 Improve Your Data Model
3.4.2.4 Use SQL and PL/SQL Efficiently
3.4.2.5 Use Group Filters
3.4.2.6 Share Work Between Components
3.4.2.7 Move Wait Time Forward
3.4.3 Forms-Specific Suggestions
3.4.3.1 Tune Your Array Processing
3.4.3.2 Base Data Blocks on Stored Procedures
3.4.3.3 Optimize SQL Processing in Transactions
3.4.3.4 Optimize SQL Processing in Triggers
3.4.3.5 Control Inter-Form Navigation
3.4.3.6 Raise the Record Group Fetch Size
3.4.3.7 Use LOBs instead of LONGs
3.4.3.8 Erase Global Variables
3.4.3.9 Reduce Widget Creation on Microsoft Windows
3.4.3.10 Examine the Necessity of Locking
3.4.4 Reports-Specific Suggestions
3.4.4.1 Areas to Focus On
3.4.4.2 Reduce Layout Overhead
3.4.4.3 Use Format Triggers Carefully
3.4.4.4 Consider Linking Tables
3.4.4.5 Control Your Runtime Parameter Settings
3.4.4.6 Turn Off Debug Mode
3.4.4.7 Use Transparent Objects
3.4.4.8 Use Fixed Sizes for Non-Graphical Objects
3.4.4.9 Use Variable Sizes for Graphical Objects
3.4.4.10 Use Image Resolution Reduction
3.4.4.11 Avoid Word Wrapping
3.4.4.12 Simplify Formatting Attributes
3.4.4.13 Limit Your Use of Break Groups
3.4.4.14 Avoid Duplicate Work with Graphics Builder
3.4.4.15 Choose Between PL/SQL and User Exits
3.4.4.16 Use PL/SQL instead of SRW.DO_SQL for DML
3.4.4.17 Evaluate the Use of Local PL/SQL
3.4.4.18 Use Multiple Attributes When Calling SRW.SET_ATTR
3.4.4.19 Adjust the ARRAYSIZE Parameter
3.4.4.20 Adjust the LONGCHUNK Parameter
3.4.4.21 Adjust the COPIES Parameter
3.4.4.22 Avoid Fetch-Aheads in Previewing
3.4.4.23 Choose Appropriate Document Storage
3.4.4.24 Specify Path Variables for File Searching
3.4.4.25 Use the Multi-Tiered Server
3.4.5 Graphics-Specific Suggestions
3.4.5.1 Pre-Load Your Graphics Files
3.4.5.2 Update Displays Only If Necessary
3.4.5.3 Move Display Updates Out of Loops
3.4.5.4 Use Common Elements Wherever Possible
3.4.5.5 Limit the DO_SQL Procedure to DDL Statements
3.4.5.6 Use Handles to Reference Objects
3.4.5.7 Consider Not Using Shortcut Built-ins
3.5 In a Client/Server Structure
3.5.0.8 Choose the Best Installation Configuration
3.5.0.9 Choose a Suitable Application Residence
3.6 In a Three-Tier Structure
3.6.1 Maximizing Tier 1 - Tier 2 Scalability
3.6.1.1 Increase Network Bandwidth
3.6.1.2 Minimize Changes to the Runtime User Interface
3.6.1.3 Adjust Stacked Canvases
3.6.1.4 Perform Validation at a Higher Level
3.6.1.5 Avoid Enabling and Disabling Menu items
3.6.1.6 Keep Display Size Small
3.6.1.7 Identify Paths for Graphic URLs
3.6.1.8 Limit the Use of Multimedia
3.6.1.9 Avoid Use of Animations Driven from the Application Server
3.6.1.10 Take Advantage of Hyperlinks
3.6.1.11 Put Code into Libraries
3.6.1.12 Reduce Start-up Overhead with JAR Files
3.6.1.13 Reduce Start-up Overhead with Pre-Loading
3.6.1.14 Use Just-in-Time Compiling
3.6.2 Maximizing Tier 2 - Tier 3 Scalability
3.6.3 Increase Tier 2 Power -- Hardware
3.6.4 Increase Tier 2 Power -- Software
4 Designing Multilingual Applications
4.1 National Language Support (NLS)
4.1.1 The language environment variables
4.1.1.1 NLS_LANG
4.1.1.2 DEVELOPER_NLS_LANG and USER_NLS_LANG
4.1.2 Character sets
4.1.2.1 Character set design considerations
4.1.2.2 Font aliasing on Windows platforms
4.1.3 Language and territory
4.1.4 Bidirectional support
4.1.4.1 Bidirectional support in Form Builder
4.1.4.2 Bidirectional support in Report Builder
4.1.5 Unicode
4.1.5.1 Unicode support
4.1.5.2 Font support
4.1.5.3 Enabling Unicode support
4.2 Using National Language Support During Development
4.2.1 Format masks
4.2.1.1 Format mask design considerations
4.2.1.2 Default format masks
4.2.1.3 Format mask characters
4.2.2 Sorting character data
4.2.2.1 Comparing strings in a WHERE clause
4.2.2.2 Controlling an ORDER BY clause
4.2.3 NLS parameters
4.2.3.1 Using ALTER SESSION
4.2.3.2 Using NLS parameters in SQL functions
4.2.3.3 Form Builder NLS parameters
4.2.3.4 Report Builder report definition files
4.3 Translating Your Applications
4.3.1 Translating your applications using Translation Builder
4.3.1.1 Advantages
4.3.1.2 Disadvantages
4.3.2 Translating your applications using runtime language switching
4.3.2.1 Advantages
4.3.2.2 Disadvantages
4.3.3 Using PL/SQL libraries for strings in code
4.3.4 Screen design considerations
5 Designing Portable Applications
5.1 Before You Begin
5.2 Designing Portable Forms
5.2.1 Considering the GUI
5.2.1.1 Choosing a coordinate system
5.2.1.2 Considering monitors
5.2.1.3 Using color
5.2.1.4 Resolving font issues
5.2.1.5 Using icons
5.2.1.6 Using buttons
5.2.1.7 Creating menus
5.2.1.8 Creating the console
5.2.1.9 Miscellaneous
5.2.2 Considering the operating system
5.2.2.1 Including user exits
5.2.3 Strategies for developing cross-platform forms
5.2.3.1 Creating a single source
5.2.3.2 Subclassing visual attributes
5.2.3.3 Using the get_application_property built-in
5.2.3.4 Hiding objects
5.2.4 Designing forms for character-mode
5.3 Designing Portable Reports
5.3.1 Designing a report for character-mode environments
5.3.1.1 Design considerations
5.4 Designing Portable Displays
6 Taking Advantage of Open Architecture
6.1 Working with OLE Objects and ActiveX Controls
6.1.1 What is OLE?
6.1.1.1 When should I use OLE?
6.1.1.2 About OLE servers and containers
6.1.1.3 About embedded and linked objects
6.1.1.4 About the registration database
6.1.1.5 About OLE activation styles
6.1.1.6 About OLE automation
6.1.1.7 OLE support
6.1.1.8 OLE guidelines
6.1.1.9 Adding an OLE object to your application
6.1.1.10 Manipulating OLE objects
6.1.1.11 OLE examples
6.1.2 What are ActiveX controls?
6.1.2.1 When should I use ActiveX controls?
6.1.2.2 Manipulating ActiveX controls
6.1.2.3 Responding to ActiveX events
6.1.2.4 Deploying your ActiveX control
6.1.2.5 ActiveX support
6.1.2.6 ActiveX guidelines
6.1.2.7 Adding an ActiveX control to your application
6.1.2.8 ActiveX examples
6.2 Using Foreign Functions to Customize Your Applications
6.2.1 What are foreign functions?
6.2.1.1 When should I use a foreign function?
6.2.1.2 Foreign function types
6.2.2 The foreign function interface
6.2.2.1 The Oracle Foreign Function Interface (ORA_FFI)
6.2.2.2 User exit interface to foreign functions
6.2.2.3 Comparing ORA_FFI and user exits
6.2.3 Foreign function guidelines
6.2.4 Creating a foreign function
6.2.4.1 Creating an ORA_FFI interface to a foreign function
6.2.4.2 Creating a user exit interface to a foreign function
6.2.5 Foreign function examples
6.2.5.1 Using ORA_FFI to call Windows help
6.2.5.2 Using ORA_FFI to open the File Open dialog on Windows
6.2.5.3 Using ORA_FFI to call Unix(SUN) executables with a STDIN/STDOUT type interface
6.3 Using the Open API to Build and Modify Form Builder Applications
6.3.1 What is the Open API?
6.3.1.1 When should I use the Open API?
6.3.1.2 Open API header files
6.3.1.3 Open API properties
6.3.1.4 Open API functions and macros
6.3.2 Guidelines for using the Open API
6.3.3 Using the Open API
6.3.3.1 Creating and modifying modules using the Open API
6.3.4 Open API examples
6.3.4.1 Modifying modules using the Open API
6.3.4.2 Creating modules using the Open API
6.4 Designing Applications to Run against ODBC Datasources
6.4.1 What is the Oracle Open Client Adapter (OCA)?
6.4.1.1 When should I use OCA?
6.4.1.2 OCA architecture
6.4.1.3 Establishing an ODBC connection
6.4.1.4 ODBC drivers
6.4.1.5 OPENDB.PLL
6.4.2 Open datasource guidelines
6.4.3 Configuring your application to run against an ODBC datasource
Glossary
Glossary-1
Index
Index-1
Copyright © 2000 Oracle Corporation.
All Rights Reserved.
Index