Workbench User Guide
1. Introduction
Introducing OpenROAD Workbench
In This Guide
Installing OpenROAD
Intended Audience
Path Notation in This Guide
Documentation
Your Support Options
2. Structuring an Application
Overview
Basic Application Components
The Basics of Frames and Forms
Scripts, Events, and Event Blocks
Objects
Frames
Ghost Frames
4GL Statements for Running Frames Concurrently
How an Application Moves Between Frames
Procedures
4GL Procedures
3GL Procedures
Database Procedures
How You Can Share Information Between Frames
Global Variables
Global Constants
User and Database Events
Scope of Frames, Procedures, Variables, and Constants
External Code: Database, 3GL Procedures, and External Class Objects
4GL Procedures
How You Can Change Global Constants at Runtime
Controlling the Flow of Frames
Control Frames
Sequential Frames
How Multiple Use Frames Work
Choosing a Concurrency Style
Active Frames
Inactive Frames
How the Application's Starting Frame Is Opened
Calling Frame and the Called Frame
Selecting a Control Frame Style
Detail Frame Application
Read-only Application with Concurrent Frames
Read/Write Application with Concurrent Frames
Data-driven Application
How You Can Manage Database Interactions
Selecting an Operation Style
How You Can Provide Multiple Invocation Styles
MenuBar
MenuStack
MenuItem
How You Can Share Frames Among Applications
Included Applications Feature
How You Can Customize Included Frames
How You Can Enforce Consistency Throughout Your Environment
Frame Templates
Style Sheets
Field Templates
How You Can Create Non-interactive Applications
3. Getting Started with OpenROAD Workbench
Overview
OpenROAD Workbench Overview
Connect Tab
Develop Tab
Debug Tab
Monitor Tab
Query Tab
Build Tab
Deploy Tab
Manage Tab
Editors
How to Start OpenROAD Workbench
Start OpenROAD Workbench from the Desktop
How You Can Start Ingres
Start OpenROAD Workbench from the Windows Command Prompt
Start OpenROAD Workbench with the RunImage Utility
RunImage Utility Parameters
Start OpenROAD Workbench Using RunImage
Define a Database Connection Profile
OpenROAD Startup Assistant and Connection Details Properties
Connect to a Database Through a Connection Profile
Set a Default Database Connection Profile
Modify a Database Connection Profile
Delete a Database Connection Profile
How You Can Customize OpenROAD Workbench
Customize the Workbench Window Display
Applications Portlet
Refresh the Application List
Display Application Versions
Hide or Display the Status Bar
Change the Workbench Display of Applications
Components Portlet
Display Application Components
Refresh the Components List
Display Component Versions
Change the Display of Components
Specify Component Types
Display Component Relationships
4. Creating Applications
Overview
Create an Application
Application Properties
Specify or Modify Application Properties
How You Can Customize a Session for an Application
Specify Initial Values for Global Variables and Global Constants
Specify Runtime Parameters for a Session
Included Applications
How Applications Are Included
Default Included Application
Additional OpenROAD Applications
Specify Included Applications
Application Component Development
Create a Component
Component Types
User Frames
Ghost Frames
User Classes
External Class Libraries
4GL Procedures
3GL Procedures
Database Procedures
Global Variables
Global Constants
Include Scripts
Frame Templates
Field Templates
How You Can Work with Applications and Components
How You Can Edit an Application or Component
Working Copies
Component Status
Options for Saving Components
Find an Application or Component
Rename Applications and Components
Delete Applications and Components
Run Applications
Run a Single Application
Run Multiple Applications
How You Can Use an Image File
Sample Application: The Query Tool
5. Creating Basic Frames
Overview
How You Can Create Basic Frames
Create an Empty Frame
Create a Dialog
Create a Menu Frame
Frame Editor
Open an Existing Frame
Field Palette
Hide or Display the Field Palette
Set Frame Properties
Use a Bitmap for the Background
Create Multiple Styles for a Field Type
Delete Field Styles
Display the Form Grid
Snap to Grid
Resize the Grid
Property Inspector
How You Can Use Property Filters
How Multiple Field Selection Works
Miscellaneous Features
Property Setting Prefixes
Field Tree
Use the Field Tree
Alternative Methods for Creating Frames
Create Your Own Frame Templates
How You Can Set Frame Template Properties
Create a Frame Based on Your Own Frame Template
Edit Frame Templates
How You Can View and Modify Frames
How You Can Test Frames
Compile a Frame
How You Can View Compilation Errors
Simulate a Runtime Form
Run a Frame
Delete a Frame
6. Creating and Using Basic Fields
Overview
Types of Fields
Shape Fields, Illustrated
Scalar Fields, Illustrated
Composite Fields, Illustrated
How You Can Add Fields to a Frame
Position Fields
Create Multiple Fields
How You Can Select Fields
Select an Individual Field
Select a Composite Field
Select a Group of Fields
Visual Selection Cues
How You Can Work with Overlapping Fields
How You Can Work with the Shape Layer
Move and Resize Fields
Copy and Paste a Field
Align Fields
Delete a Field
How Rearranging Composite Fields Works
Field Colors
Change Field Colors Using the Property Inspector
Change Field Colors Using the Color Palette
How You Can Use the Style Sheet to Change Field Colors
Convert a Field to a Different Type
Shape Fields
Create a Rectangle Shape
Rectangle Shape Properties
Create an Ellipse Shape
Ellipse Shape Properties
Create a Line Segment
Scalar Fields
Field Naming
Trim Fields
Create a Box Trim
Box Trim Properties
Create a Free Trim
Free Trim Properties
Image Trim
Supported Image Formats
Create an Image Trim
Image Trim Properties
Bar Fields
Create a Bar Field
Bar Field Properties
Create a Button Field
Button Field Properties
Image Fields
Create an Image Field
Image Field Properties
Control Buttons
Create a Control Button
Control Button Properties
Edit the Option Menu for a Control Button
Create a Pop-up Button
Pop-up Button Properties
List Fields
Create a List Field
List Field Properties
Add and Delete List Field Items
Single-line Entry Fields
Create a Single-line Entry Field
Single-line Entry Field Properties
Multiline Entry Fields
Create a Multiline Entry Field
Multiline Entry Field Properties
Option Fields
Create an Option Field
Option Field Properties
Create a Palette Field
Palette Field Properties
Create a Radio Field
Radio Field Properties
Create Scroll Bars
Scroll Bar Properties
Create Sliders
Slider Field Properties
Toggles (Check Boxes)
Create a Toggle (Check Box)
Toggle Properties
List Views
Create a List View
List View Properties
Tree Views
Create a Tree View
Tree View Properties
Composite Fields
Create a Composite Field
Create a Flexible Form
Flexible Form Properties
Matrix Fields
Create a Matrix Field
Matrix Field Properties
Stack Fields
Create a Stack Field
Stack Field Properties
Create a Subform
Subform Properties
Table Fields
Create a Table Field
Table Field Properties
Column Field Properties
Modify a Table Field
Viewports
Create a Viewport
Viewport Properties
Create a Tab Folder
Tab Folder Properties
Common Field Properties
Property Descriptions
Field Variables
Fields and System Classes
Events and Scripts
Gravity
Set Gravity
Field Biases
Interactive Biases
Passive Biases
Select Biases
Draw Biases
How You Can Set the Focus Behavior
How You Can Define an Alt Speed Key
Considerations for Alt Speed Keys
Set Multiple Selections for List Fields and Table Fields
User Interactions
Programming Interface
Tab Sequencing
Default Tab Sequencing
Custom Tab Sequencing
Modify the Tab Sequence
Use a Custom Cursor
How You Can Create or Edit a Field Script
7. Alternative Methods for Creating Fields
Overview
Create a Field from a Field Template
Field Templates
Create a Field Template
Create Fields from a Database Table
Create Fields from a User Class
Create Fields from an External Class
8. Generating Frames from Predefined Templates
Overview
Include Predefined Template Packages in Your Application
Frame Templates
The about_box Template
Create an About Box Frame
How You Can Call an About Box Frame
Test an About Box
The Calculator Template
Create a Calculator Frame
Call a Calculator Frame
How a Calculator Works
The find_dialog Template
Create a Find Dialog Frame
How You Can Call a Find Dialog Frame
How a Find Dialog Frame Is Used
The font_dialog Template
Create a Font Dialog Frame
How You Can Call a Font Dialog Frame
How a Font Dialog Frame Is Used
The splash_screen Template
Create a Splash Screen Frame
How You Can Call a Splash Screen Frame
The text_editor Template
Create a Text Editor Frame
How You Can Customize a Text Editor Frame
How a Text Editor Is Used
Text Editor Functions
Toolbar
The financial_calculator Template
Create a Financial Calculator Frame
How a Financial Calculator Is Used
The mastdetl Templates
How You Can Create a Frame from a mastdetl Template
Table Selection Dialog
Table Definition in the Frame Assistant
How You Can Set Query Expressions
How You Can Set Query Properties
How You Can Set Display Properties
How You Can Define Join Column Properties
Add a Join
Delete a Join
Delete Rule Options
The simple_field Template
Create a Simple Field Frame
How You Can Use a Simple Field Frame
How You Can Sort Data in a Frame
How You Can Perform a Query
The table_field Template
Create a Table Field Frame
Use a Table Field Frame
View Data
Edit Data in a Table
Copy a Table
The master_detail Template
Create a Master-Detail Frame
How You Can Use a Master-Detail Frame
The detail Template
Create a Detail Frame
Use a Detail Frame
The explosion Template
Create an Explosion Frame
Use an Explosion Frame
Add Additional Tables to a Generated Frame
Create Lookup Tables
Lookup Table Properties
Create an Associate Table
Create Detail Tables
The toolbar_window Template
Create a Toolbar Frame
The mclient_frame Template
9. Generating Fields from Predefined Templates
Overview
Predefined Field Templates
How You Can Add a Generated Field to a Frame
The analog_clock Field Template
Create an Analog Clock Field
How an Analog Clock Field Works
The bar_graph Field Template
Create a Bar Graph Field
How You Can Edit a Bar Graph Field
How a Bar Graph Field Is Displayed
The calculator_control Field Template
Create a Calculator Control Field
How a Calculator Control Field Works
The calendar Field Template
Create a Calendar Field
How You Can Use a Calendar Field
The countdown_timer Field Template
Create a Countdown Timer Field
How a Countdown Timer Field Works
The date_field Field Template
Create a Date Field
How You Can Use a Date Field
The digital_clock Field Template
Create a Digital Clock Field
How You Can Use a Digital Clock Field
The elapsed_timer Field Template
Create an Elapsed Timer Field
How an Elapsed Timer Field Works
The float_field Field Template
Create a Float Field
How You Can Use a Float Field
The gauge Field Template
Create a Gauge Field
How You Can Customize a Gauge Field
How a Gauge Field Works
The integer_field Field Template
Create an Integer Field
How You Can Use an Integer Field
The line_graph Field Template
Create a Line Graph
How a Line Graph Field Is Displayed
The meter Field Template
Create a Meter Field
How You Can Customize a Meter Field
How a Meter Field Works
The money_field Field Template
Create a Money Field
How a Money Field Works
The smallint_field Field Template
Creating a Smallint Field
How a SmallInt Field Works
The spin_control Field Template
Create a Spin Control Field
How You Can Specify Spin Control Values
How a Spin Control Field Works
The stopwatch_control Field Template
Create a Stop Watch Field
How a Stop Watch Field Works
The timezone_control Field Template
Create a Time Zone Field
How a Time Zone Field Works
The edit_control Field Template
Create an Edit Control Field
How an Edit Control Field Works
The query_bar Field Template
Create a Query Bar
How You Can Develop a Query Bar
How a Query Bar Works
How a Query Is Executed
The tabbed_dialog Field Template
Create a Tabbed Dialog
How a Tabbed Dialog Works
10. Creating and Modifying Menus
Overview
Start the Menu Editor
Menu Editor Workspace
Types of Menu Items
Menu Editor Tool Palette
How Select Mode Works
Create a Menu
How You Can Edit and Convert Menu Items
Create Scripts for Menu Items
How Menu Items and Variables Work
How You Can Create Menu Items
Pull-down and Slide-off Menus
Create a Pull-down Menu
Create a Slide-off Menu
Pull-down and Slide-off Menu Properties
Create Menu Buttons
Menu Button Properties
Create a Menu Toggle
Menu Toggle Properties
Create a Menu List
Menu List Properties
Create a Menu Separator
Menu Separator Properties
Common Menu Properties
Properties
How You Can Set Menu Item Biases
How You Can Assign Speed Keys
How You Can Set Focus Behavior
11. Creating Toolbars
Overview
Start the Toolbar Editor
Toolbar Editor Workspace
Types of Toolbar Items
Insert Menu
Using Select Mode
Create a Toolbar
Scripts for Toolbar Items
How You Can Edit Toolbar Items
Toolbar Items and Variables
How You Can Create Toolbar Items
Create a Toolbar
Create Additional Toolbar Buttons
Use the Icon Gallery
Create an Option Field
Create a Toolbar Palette Field
Create a Toggle Field
12. Working With Classes
Overview
System Classes
The Inheritance Hierarchy
User Classes
External Classes
How You Can Create User Classes
Create a User Class
Create Attributes for a User Class
Create Attributes from a Table
Properties for User Class Attributes
Delete an Attribute
Create Methods for a User Class
Properties for User Class Methods
Write 4GL Code for Your Methods
Edit an Individual Method
Delete a Method
Edit or View a User Class
Delete a User Class
How You Can Use Attributes and Methods
Create and Register External Class Libraries
Register an External Class Library Component
Edit or View an External Class Library
Delete an External Class
Class Browser
Open the Class Browser
Default Viewing Mode
System Classes Viewing Mode
13. Writing Scripts and Procedures
Overview
How You Can Use Scripts
Script Types
Scripts for User Class Methods
How You Can Write Frame Scripts
How Field and Menu Scripts Work
How You Can Write User Class Scripts
How You Can Write Include Scripts
Script Editor
Call the Script Editor
How You Can Edit Text with the Script Editor
Cut and Copy Text
Find and Replace Text
How You Can Save or Cancel Your Script Changes
How You Can Navigate the Script Editor
How You Can Use Your System Editor
How You Can Use Templates for II_WINDOWEDIT and II_WINDOWVIEW
For Windows
For UNIX
How Editing Multiple Scripts Works
14. Adding Other Components to Your Application
Overview
Variable Types
Ways to Create Variables
Create a Global Variable
Global Variable Properties
Edit or View a Global Variable
Delete a Global Variable
Macro Variables
Create a Macro Variable
Macro Variable Properties
Delete Macro Variables
Global Constants
Create a Global Constant
Edit or View a Global Constant
Delete a Global Constant
Procedures
Create a 4GL Procedure
4GL Procedure Properties
How You Can Compile 4GL Procedures
View or Edit 4GL Procedures
Delete a 4GL Procedure
How You Can Use Local 4GL Procedures
Create and Register 3GL Procedures and Database Procedures
Register a 3GL Procedure or Database Procedure
Create a 3GL Procedure or Database Procedure
3GL Procedure and Database Procedure Properties
View and Edit 3GL Procedures and Database Procedures
Delete a 3GL Procedure or Database Procedure
Ghost Frames
Create a Ghost Frame
Ghost Frame Properties
Delete a Ghost Frame
3GL Sample Application
How the 3GL Sample Application Works on Windows
Import the Sample Application into Your Database
dbname
Build the Sample Application
How You Can Set Up the Run Environment
How the 3GL Sample Application Works on UNIX or Linux
Import the Sample Application into Your Database
dbname
Build the Sample Application
How You Can Set Up the Run Environment
Run the Sample Application
15. Creating Reports in OpenROAD
Overview
Runtime Support
Reporter Runs in a Runtime Environment
Reports Are Converted to Static 4GL Procedures
Error Reporting
Start OpenROAD Reporter
OpenROAD Reporter Window
OpenROAD Reporter Main Menus
OpenROAD Reporter Toolbars
Report Design Techniques
Design Considerations
How You Can Format a Report Document
Open a Report
Import a Report
Create a New Report
Set Report Document Properties
Document Properties
Create a Form Report
Create a Page Layout Template
Create Tabular Reports
How You Can Define a Query
Define a Query
Query Editor Fields
Qualify Table Names
How You Can Use Global Temporary Tables and Variable Table Names
How You Can Change the Query Table Owner
Change Query Table Owners
Add Restrictions to the Where Clause
Create Table Join Definitions
Specify Sort Columns
Setup/Cleanup
Use Setup/Cleanup
Save the Report Query and Document
How You Can Design Report Documents
Report Sections
Report Section Types
How You Can Work with Sections
Icons that Let You Navigate a Report
How You Can Select and Position Fields
Edit Menu Commands for Manipulating Fields
How You Can Create Data Fields
Create Single Fields
Types of Functions
Create Fields from Tables
Modify Field Properties
Create a Variable Field
Variable Properties
Modify Variable Field Properties
Delete a Data Field
How You Can Group Fields
Group Table Fields
Table Field Properties
Group Stack Fields
Set Stack Field Properties
Stack Field Properties
Group Matrix Fields
Set Matrix Field Properties
Matrix Field Properties
Static Text Fields
Create a Free Trim or Box Trim Field
Fuse Text from Separate Static Fields
Edit Open API Code
How You Can Use Shapes & Images Fields
Create, Move, or Resize Shape Fields
Modify Shape Field Properties
Create Image Fields
Modify an Image Field
Special Fields
Create a Date & Time Field
Insert a Page Number Field
Create Fields from a Page Layout Template
Lock or Unlock Fields
Repeat Creation
Set Page Breaks
How You Can Enhance Report Design
Character Formatting
Align Fields
Align Text
Adjust Height and Width
How You Can Format Text Displays
How You Can Add Field Borders
Add a Border to a Report Field
Change Font and Font Size
Set the Default Font
Change Report Field Colors
Set Gravity
Propagate to Children
Synchronize Properties
Change Grid Spacing
Duplicate Spacing
How You Can Add Graphics
Compile a Report
Preview and Print Report Documents
Export a Report
Delete a Report
Using the Report Procedure Tool
Reports Using Image Trim
Database-resident Images
Disk-resident Images
Report Procedure Tool
Dynamic Procedure List
Database/Application Information
Report List
Report Procedure Tool Menu Bar
Report Procedure Tool Tutorial
Call Interface to Dialog Frames and Reporter Procedures
Optional Parameters
Required Parameters
Optional Parameters
RWConv Utility (Report Converter)
Convert a Report Using the RWConv Utility
16. Managing and Deploying Applications
Overview
How You Can Access the OpenROAD Utilities
How You Can Create Application Versions Using the VersionApp Utility
Create Numbered Application Versions Using the VersionApp Utility
Command Line Method of Creating Numbered Application Versions
database
Parameters for the VersionApp Utility
How You Can Delete Application Versions
Delete an Application Using the DestroyApp Utility
Parameters for the DestroyApp Utility
database
application
How You Can Delete All Versions of a Component
Delete all Numbered Versions of a Component Using the PurgeApp Utility
Command Line Method of Deleting Numbered Component Versions
database
Parameters for the PurgeApp Utility
How You Can Import and Export Applications and Components
Importing UTF-8 Applications and Components
XML Import and Export
File Size and XML Element Indentation
Export Encoding
XML Schema Definition
More Information
Import an Individual Component
Command Line Method of Importing Components from a File
database
Parameters for the ImportComp Utility
Examples: ImportComp Utility
Import an Application
Command Line Method of Importing an Application from a File
database
application
Parameters for the ImportApp Utility
Examples: ImportApp Utility
Export an Individual Component
Command Line Method of Exporting Components to a File
Parameters for the ExportComp Utility
Examples: ExportComp Utility
Export Applications and Components
Command Line Method of Exporting an Application to a File
database
application
Parameters for the ExportApp Utility
Examples: ExportApp Utility
How You Can Generate Reports for Applications and Components
Document an Individual Component
Document Applications and Components Using the DocumentApp Utility
Parameters for the DocumentApp Utility
Command Line Method of Documenting an Application
database
application
Document Imaged Applications Using the QueryImage Utility
Parameters for the QueryImage Utility
Command Line Method for Documenting an Application Image
How You Can Apply Template Changes to Frames and Fields
Apply Alternate Templates to Frames or Fields Using the ApplyTemplate Utility
Parameters for the ApplyTemplate Utility
Command Line Method for Upgrading Templates
How You Can Compile Applications and Components
Compile a Component
Compile an Application
Parameters for the CompileApp Utility
Command Line Method for Compiling Applications
database
application
How You Can Create an Application Image
Use the MakeImage Utility
Parameters for the MakeImage Utility
Command Line Method for Creating an Application Image
Parameters for the MakeImage Command Line Utility
database
How You Can Image Included Applications
Root Application
appname
version_number
image_filename
How Referencing Images Works
How You Can Override Included Application References
How You Can Use an Override File
Running an Application
Run an Application from the Database Using the RunDBApp Utility
Parameters for the RunDBApp Utility
database
application
Run an Application from an Image Using the RunImage Utility
Parameters for the RunImage Utility
Command Line Method to Run an Application from an Image
How You Can Set Metaflags for the RunDBApp and RunImage Utilities
Set Defaults
How You Can Deploy Applications with 3GL Procedures
How You Can Use 3GL DLLs or Shared Libraries
How You Can Use Commands from a File
How You Can Deploy a Web-based OpenROAD Application with the OpenROAD eClient Packaging Tool
How the eClient Runtime Is Installed on Client Workstations
oraxp.cab—eClient Cabinet File
How eClient Applications and Library Cabinet Files Are Deployed
How You Can Set Up Your Web Server
Guidelines for Preparing OpenROAD Applications
How You Can Use a Digital Signature
Change Internet Explorer Security Settings for an Unsigned Application
OpenROAD Web Publisher
How You Can Use the OpenROAD Web Publisher
makecab.ini—Example and Default Settings
[General]
[Oraxp Versions]
[Complib Versions]
makecab.ini—Parameter Descriptions
XML Project Files
OpenROAD Web Publisher Interface
Common Web Publisher Buttons
Project Tab
Control Tab
Contents Tab
Environment Tab
Install File Tab
Libraries Tab
Web Page Tab
Use the Web Deployment Assistant to Create a Web Deployment Package
mClient Deployment
How You Can Install mClient
Launch mClient
Differences Between Desktop and Pocket PC
Frame Title and the Navigation Bar
OK and Smart Minimize Button
Menu Bar
Bottom Tabfolder
How You Can Create and Distribute Help Files
Create Help Files
Specify Help Files in Your Application
Call Help Topics
A. Environment Variables
Overview
How You Can Set Environment Variables
How You Can Use the symbol.tbl File
Environment Variables for All Platforms
Windows:
UNIX:
Windows:
UNIX:
Environment Variables for Windows
Environment Variables for Ingres Installations
How You Can Set Page Locks
How You Can Use International Characters
How You Can Specify Color Tables
B. Speed Key Mapping
Overview
Keyboard Map Files
How You Can Specify a Keyboard Map File
II_KEYBOARD
II_KEYBOARD_FILE
How You Can Format Keyboard Map Files
Keyboard Mapping
Keyboard File Map Example
C. Data Format Templates
Overview
Format Templates
Format Templates for Field Types
How You Can Set the Format Template at Runtime
Input Masking and Data Validation
Numeric Templates
Define a Numeric Template
Numeric Template Syntax
Special Template Characters
Examples of Numeric Templates
Input Masking and Numeric Templates
Date Format Templates
Define a Date Template
Absolute Date and Time Format Templates
Guidelines for Using Absolute Date Templates
Time Interval Format Templates
Guidelines for Using Time Interval Templates
Input Masking and Date Templates
Varchar Templates
Define a Varchar Template
How You Can Create a Custom Varchar Template
Using Special Characters
How You Can Force Mandatory Entry
Examples of User-defined Character Sets
Examples of Varchar Templates
Glossary
OpenROAD 6.0
Glossary