VAX RALLY Definition System User's Guide

*HyperReader

  CONTENTS

  Title Page

  Copyright Page

  Preface

  1      Introduction to the Definition System

  1.1     Invoking the Definition System

  1.2     Main Menu
    1.2.1      Databases
    1.2.2      Builder Tools
      1.2.2.1      Using the Builder Tools to Create Data Source Definitions
      1.2.2.2      Using the Builder Tools to Create Form/Reports
      1.2.2.3      Using the Builder Tools to Create the Main Menu
      1.2.2.4      Using the Builder Tools to Create a Default Application
    1.2.3      Edit Application
      1.2.3.1      Primary Objects
      1.2.3.2      Procedural Objects
      1.2.3.3      Format Objects
    1.2.4      Utilities
    1.2.5      Miscellaneous
    1.2.6      Run Application

  1.3     Using Menus in the Definition System
    1.3.1      Making Choices
    1.3.2      Object/Operation Menus
    1.3.3      Exiting Menus
    1.3.4      Using Menu Paths
    1.3.5      Moving to the Main Menu
    1.3.6      Moving Up One Menu

  1.4     Using Forms in the Definition System
    1.4.1      Filling in Forms
    1.4.2      Exiting from Forms
    1.4.3      Using Lists of Values

  1.5     RALLY Commands
    1.5.1      Key Assignments
    1.5.2      Key Overloading

  1.6     Defining and Using Macros

  1.7     Using Help
    1.7.1      Structure of Definition System Help
    1.7.2      Reading a Help Message
      1.7.2.1      Enlarging the Help Window
      1.7.2.2      Paging Through the Message
      1.7.2.3      Finding Keywords
    1.7.3      Help on RALLY Commands

  1.8     Using Legends

  1.9     Error Messages

  1.10    Integrity Reports

  2      Concepts

  2.1     Data Sources
    2.1.1      Rdb/VMS Database Relation
    2.1.2      RMS Files
    2.1.3      DATATRIEVE Domains
    2.1.4      FIX Files

  2.2     RALLY Objects
    2.2.1      Introducing the SALESPERSON_FORM Form/Report
    2.2.2      Data Source Definitions
    2.2.3      Form/Report Objects
      2.2.3.1      Groups
      2.2.3.2      Form/Report Fields and Text Areas
      2.2.3.3      Form/Report Packets
    2.2.4      Menu Objects
    2.2.5      Tasks
    2.2.6      ADL Procedural Objects
    2.2.7      Naming Conventions
    2.2.8      How to Create, Edit, Delete, Rename, Copy Objects
      2.2.8.1      Object/Operation Menu
      2.2.8.2      Direct Object Manipulation
      2.2.8.3      Placeholders
      2.2.8.4      Effects of Renaming an Object

  2.3     Actions and Tasks
    2.3.1      Action Stacks
    2.3.2      Tasks
    2.3.3      Using Action Sites

  3      Defining a Data Source and Its Components

  3.1     Defining an Rdb/VMS Database
    3.1.1      Creating a Database
      3.1.1.1      Defining Rdb/VMS Global Fields
        3.1.1.1.1       Listing Required Fields
        3.1.1.1.2       Listing Field Characteristics
      3.1.1.2      Creating Global Field Definitions
      3.1.1.3      Defining Rdb/VMS Relations
        3.1.1.3.1       Defining a Relation from Global Fields
        3.1.1.3.2       Copying a Relation from TEAMDATA
      3.1.1.4      Defining Rdb/VMS Indexes
    3.1.2      Editing a Database
    3.1.3      Deleting a Database

  3.2     Accessing RMS Data Sources

  3.3     Accessing DATATRIEVE Data Sources

  3.4     Defining FIX Data Sources

  4      Creating and Editing Data Source Definitions

  4.1     What Is a Data Source Definition
    4.1.1      Relationship Between the Data Source and the Data Source Definition
    4.1.2      Where Is a DSD Used?

  4.2     Elements Common to All Data Source Definitions
    4.2.1      Fields
      4.2.1.1      Ordering and Reordering Fields
      4.2.1.2      Creating a DSD Field
      4.2.1.3      Deleting a DSD Field
      4.2.1.4      Renaming a Field
      4.2.1.5      Editing a Field
      4.2.1.6      Changing a DSD Field to Reflect Data Source Changes
      4.2.1.7      Specifying Formats for a Data Source Definition Field
      4.2.1.8      Specifying Initial and Null Values for a Field
      4.2.1.9      Specifying Validation for a Field
      4.2.1.10     Field Specific Options
      4.2.1.11     Responding to Changes in the Data Source
    4.2.2      Editing Record Operation Options

  4.3     Defining a Data Source Definition

  4.4     Deleting a Data Source Definition

  4.5     Rdb/VMS Data Source Definitions
    4.5.1      Creating an Rdb/VMS DSD Using the Builder Tools
    4.5.2      Creating an Rdb/VMS DSD Using the Edit Application Menu
    4.5.3      Editing an Rdb/VMS Data Source Definition
    4.5.4      Record Selection Expressions
      4.5.4.1      OR Capability of Rdb/VMS RSEs
      4.5.4.2      Run-Time Parameters for Record Selection Expression (RSE)
    4.5.5      Record Locking Options
    4.5.6      Lock Timing Options
    4.5.7      Creating a DSD Using Several Relations
    4.5.8      Accessing Data from RdbAccess
    4.5.9      Accessing Data from VAX VIDA for DB2

  4.6     RMS Data Source Definitions
    4.6.1      Creating an RMS Database in CDD/Plus
    4.6.2      Creating an RMS DSD Using the Edit Application Menu
    4.6.3      RMS DSD Fields

  4.7     DATATRIEVE Data Source Definitions
    4.7.1      General Guidelines for Creating a DATATRIEVE DSD
    4.7.2      Creating a DATATRIEVE DSD Using an RMS File
    4.7.3      Creating a DATATRIEVE DSD Based on a VAX DBMS Database
    4.7.4      DSDs Using DATATRIEVE OCCURS Clauses

  4.8     FIX Data Source Definitions
    4.8.1      Creating a FIX DSD
    4.8.2      Defining the FIX Data Source File
    4.8.3      Creating FIX DSD Fields

  4.9     ODI Data Source Definitions
    4.9.1      Creating an ODI DSD Using the Edit Application Menu

  5      Form/Report Groups

  5.1     Groups in General - the Main Group in Particular

  5.2     Main Group

  5.3     Data Groups

  5.4     List of Values Group

  5.5     Format Group

  5.6     Position of Groups

  5.7     Visualizing Form/Report Groups

  6      Form/Report Types

  6.1     Types of Form/Reports

  6.2     Form/Reports Based on DSD Joins or Form/Report Joins
    6.2.1      Single Stream Report
      6.2.1.1      Creating a Group
      6.2.1.2      Formatting a Group
      6.2.1.3      Using the Screen Editor to Look at Groups
      6.2.1.4      Using the Builder Tools to Create Simple Forms
      6.2.1.5      Using the Edit Application Menu to Create Simple Forms
    6.2.2      Simple Multi-Group Reports
    6.2.3      Complex Multi-Group Reports
      6.2.3.1      Parent Group
      6.2.3.2      Child Group
      6.2.3.3      Overall Structure
      6.2.3.4      Creating DSDs for Form/Report Joins
      6.2.3.5      Creating Form/Report Joins Using the Edit Application Menu
    6.2.4      Multi-Group Reports Using DATATRIEVE
    6.2.5      Defining Sibling Groups
      6.2.5.1      Creating the Data Source Definitions
      6.2.5.2      Creating the Parent Group
      6.2.5.3      Creating the Sibling Groups
      6.2.5.4      Aligning the Sibling Groups Side by Side
      6.2.5.5      Adding Aggregate Fields Based on Sibling Groups
      6.2.5.6      Making Sibling Groups Invisible
      6.2.5.7      Creating Sequential Sibling Reports

  6.3     Form/Report Based on a Control Break
    6.3.1      Creating the DSD for the Control Break Report
    6.3.2      Creating the Control Break Report

  6.4     Updateable Alternative to Control Breaks

  7      Form/Report Features

  7.1     Editing a Form/Report
    7.1.1      Fields, Text Areas, and Child Groups
    7.1.2      Formatting Attributes
    7.1.3      Visitation Order
    7.1.4      Substituting a Data Source Definition
    7.1.5      Parameters for Record Selection Expressions
    7.1.6      Record Operation Options
    7.1.7      Link to Parent Group
    7.1.8      Links to Child Groups
    7.1.9      Action Sites

  7.2     How to Work on Fields
    7.2.1      Manipulating a Field
      7.2.1.1      Deleting a Field
      7.2.1.2      Renaming a Field
    7.2.2      Creating and Editing a Field
      7.2.2.1      Type of Field
      7.2.2.2      Data Fields
      7.2.2.3      Specifying an Aggregate Field
      7.2.2.4      Defining RALLY Computed Fields
      7.2.2.5      Variable Fields
      7.2.2.6      Copy Fields
      7.2.2.7      Input and Output Formats
      7.2.2.8      Field Display and Visitation Attributes

  7.3     Screen Editor
    7.3.1      Text Areas
    7.3.2      Commands for Screen Editing
    7.3.3      Screen Editor Options
      7.3.3.1      Location Coordinates and Options
      7.3.3.2      Change How the Screen Editor Displays Groups
      7.3.3.3      Edit a Text Area
      7.3.3.4      Edit a LOV or Pop-Up Subform Group

  7.4     Visitation Order
    7.4.1      Changing Visitation Order for a Group
    7.4.2      Record Movement Preserves the Current Field
    7.4.3      Next and Previous Groups Determined on Basis of Visitation Order
    7.4.4      Conditional Next Field Definition
    7.4.5      Pop-Up Subforms

  7.5     Validation and Limitations
    7.5.1      Field Limitation and Validation
    7.5.2      Group Limitation and Validation
    7.5.3      Form/Report Packet Limitation and Validation
    7.5.4      Action Sites

  7.6     Defining a List of Values
    7.6.1      Creating a Relation and Data for the LOV
    7.6.2      Creating a Data Source Definition for the LOV
    7.6.3      Creating a Form/Report for the LOV
    7.6.4      Editing the Field That Brings Up the LOV
    7.6.5      Testing the LOV
    7.6.6      Using a LOV to Do Lookups
    7.6.7      Varying the Records That Appear in the List of Values

  7.7     Report Options
    7.7.1      Format Groups
    7.7.2      Incompressibility
    7.7.3      Indivisibility - Page Breaks in Reports
    7.7.4      Placement of Objects in a Form/Report
    7.7.5      Floating Totals
    7.7.6      Designing a Title Page
    7.7.7      Using Conditional Display to Highlight Fields Conditionally

  7.8     Form/Reports and Form/Report Packets
    7.8.1      Attributes
    7.8.2      Action Sites
    7.8.3      Auto Insertion Options
    7.8.4      Commit Options
    7.8.5      Local Function

  8      Creating and Editing Menus

  8.1     Overview of the Main Menu Builder Tool

  8.2     Creating the Main Menu Using the Builder Tools

  8.3     Defining a Menu Using the Edit Application Menu

  8.4     Creating a Menu for the Sample Application

  8.5     Editing a Menu
    8.5.1      Editing the Menu's Appearance
    8.5.2      Allowing Additional Choice Styles
    8.5.3      Editing Menu Choices
    8.5.4      Deleting a Choice

  8.6     Specifying Global Information for Menus

  8.7     Creating Additional Menus
    8.7.1      Using the Screen Editor to Create a Menu's Screen Image
    8.7.2      Selecting Menu-Choice Style Options
    8.7.3      Menu Choices
      8.7.3.1      Creating Menu Choices
      8.7.3.2      Specifying Cursor Movement Areas for Choices
    8.7.4      Defining Menu Area and Response Area
    8.7.5      Assigning Help Numbers, Legends, and Default Choices
    8.7.6      Action Sites for Menus
    8.7.7      Connecting the New Menu to the Application

  9      Messages

  9.1     Defining Help and Error Messages Interactively

  9.2     Creating Help Messages

  9.3     Creating Legends

  9.4     Editing Messages

  9.5     Using ' Local_Function ' from Message Sites

  9.6     Copying Messages

  9.7     Deleting Messages

  9.8     Reading and Writing a Text File

  9.9     Help and Error Message File Chains
    9.9.1      Adding a Message Application File to a Help Message Chain
    9.9.2      Adding a Message Application File to an Error Message Chain

  9.10    Modifying Global Information for Help and Error Messages
    9.10.1     Modifying Global Characteristics of Help Messages
      9.10.1.1     Marking the Location of the Help Window
      9.10.1.2     Specifying Coordinates of the Help Window
      9.10.1.3     Modifying Help Message Options
    9.10.2     Modifying Global Characteristics of Error Messages

  9.11    Load/Unload Message Utility

  9.12    Using Messages with External Program Links

  10     Using Tasks, Application Commands, and Macros

  10.1    Overview of RALLY Tasks
    10.1.1     Creating a Task
    10.1.2     Using an Entry Point
    10.1.3     Using Entry Points to Run RALLY in Batch
    10.1.4     Using Task Windows Effectively
    10.1.5     Changing the Task Defaults
    10.1.6     Using Tasks in the Definition System
    10.1.7     Starting a New Task Versus Calling an Action in the Same Task

  10.2    Using Application Commands to Run Tasks

  10.3    Defining and Using Macros
    10.3.1     Defining Macros
    10.3.2     Using Numbered Macros
    10.3.3     Saving Numbered Macros
    10.3.4     Reading a Numbered Macro File
    10.3.5     Creating Named Macros from Numbered Macros
    10.3.6     Using Named Macros
    10.3.7     Creating Numbered Macros from Named Macros

  11     Procedural Programming with RALLY

  11.1    ADL Procedures
    11.1.1     Creating an ADL Procedure
    11.1.2     Creating an ADL Validation Procedure

  11.2    External Program Links
    11.2.1     External Program Link Attributes
    11.2.2     Screen Controls
    11.2.3     Parameters
      11.2.3.1     RALLY Internal Information
      11.2.3.2     Passing Mechanism
      11.2.3.3     Read/Write Designation Field
      11.2.3.4     Data Description

  11.3    Defining an External Program Link
    11.3.1     Creating the External Routines
      11.3.1.1     External Routine VRD
      11.3.1.2     External Routine FUNCTION_VALUE
      11.3.1.3     External Routine CONDITION_CODE
      11.3.1.4     Compiling External Routines
      11.3.1.5     Placing Routines in a Shareable Image
      11.3.1.6     Defining Logicals to Point to Shareable Images
      11.3.1.7     Using V AX/VMS Facilities
    11.3.2     Creating External Program Links
    11.3.3     Assigning External Program Links to Action Sites

  11.4    Using Parameter Packets with External Links and ADL Procedures
    11.4.1     Creating Parameter Packets
    11.4.2     Defining ADL Procedures That Accept Parameters
    11.4.3     Defining External Program Links That Accept Parameters

  11.5    Callable Interface to VAX RALLY
    11.5.1     Simple Interface
    11.5.2     Full Interface
    11.5.3     Handling User-Requested Interrupts
    11.5.4     Reusability and Non-Reentrancy

  12     Using RALLY with VAX ACMS

  12.1    An Introduction to VAX ACMS

  12.2    Efficiency and Performance
    12.2.1     Availability and Security

  12.3    Techniques for Using RALLY and ACMS Together
    12.3.1     Restrictions
    12.3.2     Performance Considerations
    12.3.3     USERNAMES, UICs, and RIGHTS
    12.3.4     Running RALLY Applications from ACMS Servers
    12.3.5     Calling ACMS Tasks from RALLY Applications Using External Program Links
      12.3.5.1     Tasks That Use DECforms for Forms Management
      12.3.5.2     Tasks That Interact Only with the Data Source
    12.3.6     Calling ACMS Agents Through the Open Data Interface

  12.4    Using RALLY ODI DSDs and an ACMS Agent
    12.4.1     Prerequisites
    12.4.2     Implementation
    12.4.3     RALLY Features Used to Minimize Transaction Length
    12.4.4     Introduction to the Example Application
    12.4.5     ODI-ACMS Example Application Design Overview

  12.5    Detailed Description of the Example Application
    12.5.1     RALLY Application
      12.5.1.1     Form/Reports
      12.5.1.2     ODI DSDs
    12.5.2     ACMS Agent
      12.5.2.1     Read-Only Data Access Routines
      12.5.2.2     Read/Write Data Access Routines
    12.5.3     ACMS Application
      12.5.3.1     Tasks
        12.5.3.1.1      Read-Only Task CUST_TASK
        12.5.3.1.2      Read-Only Task RESV_READ_TASK
        12.5.3.1.3      Read/Write Task RESV_UPDATE_TASK
    12.5.4     Installing and Running the RALLY/ACMS Example Application

  13     Using Date and Number Formats

  13.1    Date Format Objects
    13.1.1     Changing Default Formats for Date Fields
    13.1.2     Creating and Editing Date Format Objects
    13.1.3     Associating Date Format Objects with Fields
    13.1.4     Editing Global Date Strings

  13.2    Number Format Objects
    13.2.1     Creating Number Format Objects
      13.2.1.1     Specifying Format Types
      13.2.1.2     Specifying the Maximum Number of Displayable Characters
      13.2.1.3     Specifying Scale Factors
      13.2.1.4     Specifying Number Character Sets
      13.2.1.5     Associating Number Format Objects with Fields
      13.2.1.6     Specifying Conditional Actions
    13.2.2     Specifying Number Pictures

  14     Using Security

  14.1    Reasons for Using Security

  14.2    Creating and Deleting Password Objects

  14.3    Protecting Applications from Modification
    14.3.1     Assigning Password Objects for Application File Editing
    14.3.2     Removing the Symbol Table File

  14.4    Protecting Specific Objects in the Application

  14.5    Protecting the Main Menu

  14.6    Controlling the Number of Attempts at a Password

  14.7    Protecting Application Files with VMS Protection

  14.8    Protecting Your Data with Rdb/VMS Security

  15     Using Utilities

  15.1    Report Utility

  15.2    Verify Utility
    15.2.1     Reading Integrity Reports
    15.2.2     Running the Verify Utility

  15.3    Compact Utility
    15.3.1     Removing the Symbol Table from the Application File
    15.3.2     Compacting an Application File

  15.4    Merge Utility
    15.4.1     Merge Utility Options
    15.4.2     Running the Merge Utility

  15.5    Update Utility

  15.6    Integrate Utility

  15.7    Load/Unload Message Utility
    15.7.1     Unloading Messages from Application Files into Text Files
    15.7.2     Flags in the Load/Unload Message Utility Text File
      15.7.2.1     Window Start and End Flags
      15.7.2.2     Help and Error Option Flags
      15.7.2.3     Error and Help Message File Flags
      15.7.2.4     Help and Error Message Flags
      15.7.2.5     Legend Flags
    15.7.3     Editing the Message Text File
      15.7.3.1     Modifying Message Text
      15.7.3.2     Adding Help Messages
      15.7.3.3     Adding Error Messages
      15.7.3.4     Adding Legends
      15.7.3.5     Deleting Messages
    15.7.4     Loading Message Files into Existing Application Files
    15.7.5     Creating Message Application Files
      15.7.5.1     Loading Messages into Message Files

  15.8    Load/Unload Data Utility
    15.8.1     Transferring Data Using the Load/Unload Data Utility
    15.8.2     Transferring Data Using ADL

  15.9    Define Keys Utility
    15.9.1     Creating Key Definition Files
    15.9.2     Processing Key Definition Files
    15.9.3     Using Terminal Description Files
    15.9.4     Terminal Options
    15.9.5     Disabling the "Working..." Message

  16     Debugging and Tracing Activity in an Application

  16.1    Techniques for Debugging VAX RALLY Applications
    16.1.1     Examining Application Values
    16.1.2     Using the V AX/VMS Debugger for External Program Links
    16.1.3     Screen Editing and the Report Writer
    16.1.4     Process of Elimination
    16.1.5     Using Error Messages as ADL Breakpoints
    16.1.6     Testing
    16.1.7     Acceptance Testing

  16.2    Tracing Activity in Applications
    16.2.1     Debugging Options for Actions and Tasks
    16.2.2     Debugging Options for Data Operations
    16.2.3     Running an Application with the /TRACE_LOG Qualifier
    16.2.4     Using the /TRACE_LOG Qualifier with Two Terminals

  A   Designing a Database

  A.1     What Is Rdb/VMS?

  A.2     Creating a Logical Database Model

  A.3     A Sample Problem in Data Organization
    A.3.1      Identifying Processes
    A.3.2      Identifying Entities
    A.3.3      Listing Data Items
    A.3.4      Normalizing the Data Model
      A.3.4.1      Finding Duplicate Data Items
      A.3.4.2      Eliminating Repeating Fields
      A.3.4.3      Choosing Key Fields
      A.3.4.4      Determining Functional Dependency

  A.4     Data Definitions for RALLY$COMMERCE.RDB

  B   Internationalization

  B.1     Customizing RALLY Help and Error Message Files

  B.2     RALLY Hebrew Option
    B.2.1     Field Objects
    B.2.2     Form/Report Objects
    B.2.3     Menu Objects
    B.2.4     DSD Objects
    B.2.5 ' Menu Left ' and ' Menu Right ' Commands
    B.2.6 ' Toggle Direction ' Command
    B.2.7      Setting the VMS Logical RALLY$HEBREW_TERMINAL

  C   Performance Considerations

  C.1     Improving Form/Report Performance
    C.1.1      Avoid Certain Features in On-Screen Form/Reports
      C.1.1.1      Scrolling Regions
      C.1.1.2      Total Page Fields on Each Page
      C.1.1.3      Aggregates on Each Page or the First Page
    C.1.2      Use READ ONLY DSDs for Rdb/VMS Data Sources
    C.1.3      Choose Between Database Joins and Form/Report Joins
    C.1.4      Use Rdb/VMS Statistical Operators Rather than RALLY Aggregates
    C.1.5      Avoid Storing Aggregate Values in a Database
    C.1.6      Reduce the Number of Database Attaches

  C.2     Improving ADL and External Program Performance
    C.2.1      Use ADL Only When Necessary
    C.2.2      Open ADL DSDs at the Beginning of a Session
    C.2.3      Avoid Multiple References to Form/Report Fields

  C.3     Improving VAX Rdb/VMS Performance
    C.3.1      Assess Memory Allocation
    C.3.2      Adjust System Parameters for Lock Usage
    C.3.3      Assign Sufficient Resources to Each RALLY User
    C.3.4      Distribute I/O Load on the Database

  EXAMPLES

  11-1       External Routine VRD

  11-2       External Routine FUNCTION_VALUE

  11-3       External Routine CONDITION_CODE

  11-4       RALLY$3GL_LINK_TV.MAR Sample Code

  15-1       A Text File Created by the Load/Unload Message Utility

  15-2       Help-on-help Message

  15-3       Sample Key Definitions

  16-1       Sample Log File

  A-1        A Sample Relational Table

  A-2        Initial Logical Data Model

  A-3        Eliminating Repeating Fields in SALESPERSON Relation

  A-4        Final Logical Data Model

  FIGURES

  1-1        Integrity Message

  1-2        An Integrity Report

  2-1        Salesperson Directory

  2-2        Application's Main Menu

  2-3        Edit Rdb Definition Screen

  2-4        Groups in the SALESPERSON_FORM

  2-5        Screen Image of SALESPERSON_FORM

  2-6        SALESPERSON_DSD Data Source Definition

  2-7        SALESPERSON_FORM_UPDATE_PKT Form/Report Packet Mode

  2-8        Screen Editor Display of Application's Main Menu

  2-9        Menu Choices of the SALESPERSON_FORM

  2-10       MAIN_TASK of RALLY$COMMERCE

  2-11       ADL Procedure ELAPSED_DAYS_PROC

  2-12       Naming Conventions

  2-13       Edit Application Menu

  2-14       Direct Object Manipulation of Form/Report Fields

  2-15       Two Active RALLY Tasks

  2-16       Task and Actions of RALLY$COMMERCE

  2-17       Connections Among Menus and Form/Reports

  2-18       Action Stack

  2-19       Second Object Added to Action Stack

  2-20       Menu Removed from the Stack

  2-21       Form/Report Removed from the Stack

  3-1        Relations, Local Fields, and Global Fields for ORDER_ITEM Relation

  3-2        Creating a Local Field

  3-3        Relations, Local Fields, and Global Fields for ORDER Relation

  3-4        Copying a TEAMDATA Table

  3-5        Primary Keys and Multi-Segment Keys

  3-6        Creating a Database Index

  4-1        DSDs and Their Relationship to Other RALLY Objects

  4-2        Edit Rdb Data Source Definition Characteristics Form

  4-3        Data Source Definition Field Menu

  4-4        Field Specific Options for the COST Field

  4-5        Record Operation Options for the PRODUCT_DSD Data Source Definition

  4-6        Example of Defining an OR Restriction

  4-7        Another Example of Defining an OR Restriction

  4-8        Defining a Run-Time Parameter

  4-9        Parameters for Record Selection Expression

  4-10       A Report Needing a DSD Using Several Relations

  4-11       Create an RMS Data Source Definition Form

  4-12       A Sample DBMS Set Relationship

  4-13       Define FIX Data Source Definition Form

  5-1        Data Groups in the ENHANCED_ORDER_AND_ITEM_REPORT Form/Report

  5-2        Location of Groups in a Form/Report

  5-3        Groups in the Screen Editor

  6-1        One-Group Form/Report

  6-2        A Simple Form/Report

  6-3        Specifying a Title and an Output Size

  6-4        Viewing SALESPERSON_REPORT in the Screen Editor

  6-5        A Simple Form - Salesperson Directory

  6-6        Hierarchical (Parent-Child) Form/Report

  6-7        Structure of the Salespeople and Customers Report

  6-8        Defining the First Group - SALESPERSON_GP

  6-9        Defining the Second Group - CUSTOMER_GP

  6-10       Invoice Statement - A Hierarchical Form/Report

  6-11       Fields and Labels from the Parent Group

  6-12       Fields and Labels from the Child Group

  6-13       The Structure of a Hierarchical Form/Report

  6-14       Structure of the Salesperson and Subscriptions Report

  6-15       Structure of a Form/Report with Sibling Groups

  6-16       Form/Report with Sibling Groups

  6-17       Coordinates for the Parent and Sibling Groups

  6-18       Form/Report with Side by Side Sibling Groups

  6-19       Sibling Group Report with Aggregate Fields

  6-20       Salespeople by District Report

  7-1        Screen Editor Display of Text Areas and Fields

  7-2        Text Areas in a Form/Report

  7-3        Location Coordinates and Options of the ORDER_AND_ITEM_REPORT Form

  7-4        Sample Salesperson Form with List of Values

  7-5        Choosing List of Values Attributes for a Field

  8-1        The Main Menu of the Sample Application

  8-2        Completed Menu Form

  8-3        MAIN_MENU in the Screen Editor

  8-4        MAIN_MENU After Editing the Screen Image

  8-5        Menu Created Through the Edit Application Menu

  9-1        Default Global Help Information

  9-2        Default Global Error Information

  10-1       RALLY Application with Multiple Entry Points

  11-1       External Program Link Parameters

  11-2       Argument List

  11-3       Composition of Condition Code

  12-1       RALLY/ACMS Example Application

  15-1       Report Utility

  15-2       Integrity Message

  15-3       An Integrity Report

  15-4       Compact Utility

  15-5       Merge Utility

  15-6       Load/Unload Data Utility

  16-1       Flow of the Debug Task

  A-1        Eliminating Repeating Fields in ORDER Relation

  TABLES

  1-1        Meanings for the ENTER Key

  2-1        Table and Relational Terminology

  2-2        Rdb/VMS PRODUCT Relation

  2-3        Steps in Defining an Application and the Related RALLY Objects

  3-1        RALLY Predefined Global Fields

  3-2        Additional Global Fields Needed for Sample Database

  4-1        PRODUCT_DSD Before and After the Reordering of Fields

  4-2        Record Selection Expression Operators

  4-3        Data Type Codes

  6-1        Comparing Joins Defined in DSD and Groups Related in Form/Reports

  8-1        Commands/Keys Used to Edit a Menu

  8-2        Menu-Choice Style Options

  9-1        RALLY Commands

  11-1       Severity Codes

  11-2       READ/WRITE by Passing Mechanism Restrictions

  11-3       Data Type by Passing Mechanism Restrictions

  11-4       Data Type Codes

  11-5       Full Callable Interface Routines

  11-6       Files Defining RALLY Symbols

  13-1       Picture Symbols for Date Formats

  13-2       Sample Date Formats

  13-3       Date Formatting Strings

  13-4       VMS Data Types

  13-5       Scale Factors

  13-6       Formatting Characters by Menu Choice

  13-7       Number Picture Symbols

  13-8       Sample Number Pictures

  15-1       Highlighting in the Load/Unload Message Utility

  A-1        Duplicate Fields in the Logical Data Model

  A-2        Relation and Primary Key Fields

  A-3        Relations and Their Foreign Keys

  A-4        Global Fields

  A-5        Relations and Local Fields

  A-6        Indexes