DECforms Guide to Developing Forms

*HyperReader

  CONTENTS

  Title Page

  Copyright Page

  Preface

  1      Overview of DECforms Software

  1.1     DECforms Definitions

  1.2     DECforms Structure:  An Analogy

  1.3     Components of DECforms Software

  1.4     DECforms Command Summary

  1.5     Proposed Standard for Form Interface Management

  2      Sample Applications and Demonstration Forms

  2.1     Preparing to Run the Sample Applications

  2.2     Running the Introductory Sample Application

  2.3     Running the Advanced Sample Application
    2.3.1      Writing a Check
    2.3.2      Depositing Cash
    2.3.3      Withdrawing Cash
    2.3.4      Transferring Funds Between Accounts
    2.3.5      Reviewing the Check Register and Account Data
    2.3.6      Finishing Your Tasks with the Sample Application

  2.4     Displaying the Demonstration Forms

  3      Structure of a Form

  3.1     Form Data

  3.2     Form Records

  3.3     Layouts

  3.4     Viewports

  3.5     Panels
    3.5.1      Literals
    3.5.2      Panel Fields
    3.5.3      Panel Groups
    3.5.4      Icons

  3.6     Responses
    3.6.1      Accept Responses
    3.6.2      Control Text Responses
    3.6.3      Request Responses
    3.6.4      Internal Responses
    3.6.5      Response Steps

  3.7     Methods for Creating Forms

  3.8     How a Form Is Described in the IFDL

  4      Getting Started with DECforms Software

  4.1     Creating a Form
    4.1.1      Invoking the Form Development Environment
    4.1.2      Modifying the Default Layout
    4.1.3      Creating and Choosing Panels
    4.1.4      Creating the Appearance of the First Panel
    4.1.5      Creating the Panel for Writing Checks
    4.1.6      Creating the Panel for Making Deposits
    4.1.7      Looking at Form Data
    4.1.8      Testing the Form
    4.1.9      Extracting the Panels for Printing
    4.1.10     Exiting from the FDE

  4.2     Planning Forms Applications
    4.2.1      Defining Program Data and Records
    4.2.2      Defining Form Data and Form Records
    4.2.3      Determining Panel Use
    4.2.4      Compiling, Linking, and Running the Application

  5      Using the Form Development Environment

  5.1     Invoking the FDE
    5.1.1      Specifying an Editor for IFDL Text Editing
    5.1.2      Using the FDE Main Menu
    5.1.3      Using FDE Function Keys
    5.1.4      Creating a New Form
    5.1.5      Editing an Existing Form

  5.2     Using FDE Main Menu Choices at the Form Level
    5.2.1      Specifying the Output Type
    5.2.2      Changing the Form Name
    5.2.3      Editing IFDL Source Code

  5.3     Using FDE Main Menu Choices at the Layout Level
    5.3.1      Selecting a Layout
    5.3.2      Creating a Layout
    5.3.3      Changing Layout Attributes
    5.3.4      Testing Your Form
    5.3.5      Editing IFDL Source Code

  5.4     Using FDE Main Menu Choices at the Panel Level
    5.4.1      Selecting a Panel
    5.4.2      Creating a Panel
    5.4.3      Changing Panel Attributes
    5.4.4      Editing Panel Appearance
    5.4.5      Editing IFDL Source Code

  5.5     Exiting from the FDE

  5.6     Recovering an FDE Session

  6      Using the Panel Editor

  6.1     Invoking and Exiting from the Panel Editor

  6.2     Screen Display
    6.2.1      Current Panel
    6.2.2      Status Line
    6.2.3      Message Panel
    6.2.4      Command Line
    6.2.5      Menus
    6.2.6      Information Window
    6.2.7      Help Windows

  6.3     Using Panel Editor Commands
    6.3.1      Entering Commands
    6.3.2      Using Command Macros for Text Substitution
    6.3.3      Using Expressions
    6.3.4      Defining Symbols
    6.3.5      Defining Panel Editor Function Keys
    6.3.6      Executing a Series of Commands in a Command Script

  6.4     Creating and Editing the Appearance of Panels
    6.4.1      Moving the Cursor
    6.4.2      Using the Repeat Key Function
    6.4.3      Creating, Deleting, and Restoring Viewports
    6.4.4      Creating, Deleting, and Restoring Panels
    6.4.5      Choosing Panels
    6.4.6      Setting Video Attributes
    6.4.7      Modifying Video Attributes
    6.4.8      Modifying the Color of Display Attributes
    6.4.9      Setting the Font Size
    6.4.10     Modifying the Font Size
    6.4.11     Setting Line Width
    6.4.12     Modifying Line Width
    6.4.13     Setting the Character Set
    6.4.14     Modifying the Character Set
    6.4.15     Setting the Text Path
    6.4.16     Modifying the Text Path
    6.4.17     Creating Panel Fields
    6.4.18     Modifying Panel Field Descriptions and Pictures
    6.4.19     Creating Text Objects
    6.4.20     Creating Graphic Objects
    6.4.21     Selecting and Deselecting Objects
    6.4.22     Moving Objects Within a Panel
    6.4.23     Using the Clipboard
    6.4.24     Deleting and Restoring Panel Objects
    6.4.25     Creating Icons
    6.4.26     Creating an Icon-Based Menu
    6.4.27     Creating Panel Groups
    6.4.28     Changing the Order of Objects in a Panel
    6.4.29     Selecting and Deselecting Compound Objects

  6.5     Specifying Display Attributes Based on Terminal Type

  6.6     Recovering an Editing Session

  7      Translating IFDL Source Files and Form Files

  7.1     Translating IFDL Source Files into Form Files
    7.1.1      IFDL Translator Output:  Form Files
    7.1.2      IFDL Translator Output:  Listing Files
    7.1.3      IFDL Translator Output:  LSE Diagnostics Files

  7.2     Translating Form Files Back into IFDL Source Files

  7.3     Correcting Errors on VMS Systems

  8      Declaring, Displaying, and Tracking Data

  8.1     Assigning Default Values to Fields

  8.2     Altering the Video Attributes of Panel Fields

  8.3     Declaring and Displaying Groups and Arrays
    8.3.1      Storing Array Data in a Form
    8.3.2      Displaying Data Stored in Form Data Groups
    8.3.3      Using Corresponding Subscripts in Field Description Entries
    8.3.4      Activating Panel Groups for Input
    8.3.5      Specifying Navigation in a Panel Group
    8.3.6      Passing Group Data Between the Program and Form

  8.4     Transferring Data Explicitly

  8.5     Determining What Changed During Operator Input
    8.5.1      Using Tracked Form Data Items
    8.5.2      Using Receive Shadow Records
    8.5.3      Using Send Shadow Records

  9      Controlling Form Processing

  9.1     Using IF Response Steps

  9.2     Using Control Text Responses

  9.3     Controlling the Activation List
    9.3.1      Using the ACTIVATE Response Step
    9.3.2      Controlling the Activation List During the Accept Phase
    9.3.3      Using Conditional Protection in Navigation
    9.3.4      Using the DEACTIVATE Response Step

  9.4     Writing Responses That Call Escape Routines

  9.5     Moving Between Panels

  9.6     Waiting for Operator Input

  9.7     Printing Panels

  9.8     Returning Control to the Application

  10     Designing the Operator Interface

  10.1    Using Viewports

  10.2    Creating Scrolled Regions
    10.2.1     Displaying Scrolled Data
    10.2.2     Setting Up the Operator's Control of a Scrolled Region

  10.3    Defining Form Function Keys
    10.3.1     Binding Functions to Keys
    10.3.2     Using System Function Keys
    10.3.3     Writing Function Responses
    10.3.4     Disabling Built-In Function Key Bindings

  10.4    Using an UNDEFINED, USER, or BUILTIN FUNCTION Declaration

  10.5    Modifying the Keypad Mode

  10.6    Signaling the Operator

  10.7    Sending Messages to the Operator
    10.7.1     Sending Messages from the Form
    10.7.2     Sending Messages from a Program or Escape Routine

  10.8    Providing Online Help
    10.8.1     Using Help Messages
    10.8.2     Providing Hints
    10.8.3     Using Help Panels
    10.8.4     Creating Levels of Help Panels
    10.8.5     Creating a Hierarchical Help Menu

  11     Getting the Best Performance from Your Form

  11.1    Optimizing the Display of Information
    11.1.1     Displaying Panel Objects
    11.1.2     Using Terminal Hardware Scrolling
    11.1.3     Using Double-High and Double-Wide Attributes
    11.1.4     Optimizing Screen Clearing
    11.1.5     Improving Panel Display on VMS Systems

  11.2    Optimizing Form Processing
    11.2.1     Placing Function Responses
    11.2.2     Preventing Unnecessary Validation
    11.2.3     Activating Panel Fields
    11.2.4     Specifying the VT100 Device Type
    11.2.5     Using Multiple Sessions

  11.3    Optimizing Field Input and Processing
    11.3.1     Formatting Input Pictures
    11.3.2     Specifying Panel Field Processing

  11.4    Optimizing Communication Between the Form and the Application
    11.4.1     Organizing Form Records
    11.4.2     Performing Data Conversion

  11.5    Improving Performance When Enabling a Form
    11.5.1     Creating Form Object Modules
    11.5.2     Using VMS Shareable Images

  12     Examining the Sample Applications

  12.1    Data Declarations in the Introductory Sample Form and Application

  12.2    VMS API Request Calls in the Introductory Sample Application
    12.2.1     ENABLE Request
    12.2.2     ACCOUNT Record SEND Request
    12.2.3     UPDATE Record TRANSCEIVE Request
    12.2.4     GET_CHECK Record RECEIVE Request
    12.2.5     GET_DEPOSIT Record RECEIVE Request
    12.2.6     DISABLE Request

  12.3    Portable API Request Calls in the Advanced Sample Application
    12.3.1     ENABLE Request
    12.3.2     SEND Requests
    12.3.3     RECEIVE Requests
    12.3.4     TRANSCEIVE Request
    12.3.5     DISABLE Request
    12.3.6     RECEIVE and SEND Requests in an Operator Transaction

  A   Default Key Bindings for Built-In Functions

  B   Panel Editor Function Keys and Keypad

  C   Names of Keys Definable in the Panel Editor

  D   Panel Editor Commands

  CENTER SELECTED OBJECTS

  CHOOSE

  COPY FROM CLIPBOARD

  COPY SELECTED OBJECTS TO CLIPBOARD

  CREATE FIELD

  CREATE GROUP

  CREATE ICON

  CREATE MARKED OBJECT

  CREATE PANEL

  CREATE POINT

  CREATE POLYLINE

  CREATE RECTANGLE

  CREATE TEXT

  CREATE VIEWPORT

  DEFINE COLOR

  DEFINE KEY

  DEFINE SYMBOL

  DELETE CHARACTER

  DELETE NAMED

  DELETE PANEL

  DELETE SELECTED OBJECTS

  DELETE VIEWPORT

  DESELECT ALL OBJECTS

  DESELECT AREA

  DESELECT AT

  DESELECT LAST

  DESELECT MARKED AREA

  DESELECT NAMED

  DISABLE BELL

  DISABLE ECHO

  DISABLE HINTS

  ENABLE BELL

  ENABLE ECHO

  ENABLE HINTS

  EXIT

  GROUP SELECTED OBJECTS

  HELP

  INSERT FROM CLIPBOARD

  LIST PANELS

  LIST VIEWPORTS

  MARK

  MODIFY FIELD

  MODIFY GROUP

  MODIFY PANEL display-attribute COLOR

  MODIFY PANEL TERMINAL WIDTH

  MODIFY PANEL VIEWPORT

  MODIFY SELECTED display-attribute COLOR

  MODIFY SELECTED OBJECTS CHARACTER SET

  MODIFY SELECTED OBJECTS FONT SIZE

  MODIFY SELECTED OBJECTS LINE WIDTH

  MODIFY SELECTED OBJECTS TEXT PATH

  MODIFY SELECTED OBJECTS VIDEO

  MODIFY VIEWPORT display-attribute COLOR

  MODIFY VIEWPORT TERMINAL WIDTH

  MOVE CURRENT VIEWPORT

  MOVE SELECTED OBJECTS

  MOVE VIEWPORT

  ORDER SELECTED OBJECTS

  POSITION HORIZONTAL

  POSITION NEXT

  POSITION PREVIOUS

  POSITION TO

  POSITION VERTICAL

  QUIT

  RECALL MESSAGE

  REFRESH

  REMOVE SELECTED OBJECTS TO CLIPBOARD

  RESIZE CURRENT VIEWPORT

  RESIZE VIEWPORT

  ROTATE CLIPBOARD

  SELECT ALL OBJECTS

  SELECT AREA

  SELECT AT

  SELECT MARKED AREA

  SELECT NAMED

  SET CHARACTER SET

  SET display-attribute COLOR

  SET ENTRY MODE

  SET FONT SIZE

  SET LINE WIDTH

  SET ORIGIN MODE

  SET TEXT PATH

  SET VIDEO

  SHOW KEY

  SHOW KEYPAD

  SHOW PANEL VIEWPORT

  SHOW POSITION

  SHOW REFERENCES

  SHOW SYMBOL

  SHOW VERSION

  TEST

  TOGGLE ENTRY MODE

  UNDEFINE KEY

  UNDELETE ALL

  UNDELETE LAST

  UNDELETE PANEL

  UNDELETE VIEWPORT

  UNGROUP SELECTED OBJECTS

  UNMARK

  VIEW CLIPBOARD

  Glossary

  EXAMPLES

  3-1        IFDL Syntax for a Form

  6-1        Panel Editor Command Script

  6-2        IFDL Source for Attributes Based on Terminal Type

  7-1        IFDL Source Code Before Translation

  7-2        IFDL Source Code Produced by Back Translator

  8-1        Using the RESET Response Step

  8-2        Altering Video Attributes with HIGHLIGHT WHEN

  8-3        Declaration of Form Data Groups

  8-4        Declaration of Panel Fields to Display a Form Data Group

  8-5        IFDL Source Code for Returning to the Group Last Visited

  8-6        Declaration of Logically Equivalent Data:  Form Data and Records

  8-7        Declaration of Logically Equivalent Data:  Program Data and Records

  8-8        Group Data Transfer on a Receive Request

  8-9        Tracked Form Data Items

  8-10       Shadow Record Declaration

  9-1        Using the IF Response Step

  9-2        Control Text Responses

  9-3        Conditionally Protecting an Icon

  9-4        CALL Response Step

  9-5        Menu Panel with Choice Processing

  10-1       Displaying the Same Panel at Different Locations

  10-2       Declaring Elements That Control Array Transfer and Vertical Scrolling

  10-3       Function Declaration for a Built-In Function

  10-4       User-Defined Function Declaration

  10-5       New Definition for a Built-In Function Response

  10-6       Function Response for a User-Defined Function

  10-7       Disabling a Built-In Function Key for a Layout

  10-8       Disabling a Built-In Function Key for a Panel

  10-9       Use of UNDEFINED FUNCTION, USER FUNCTION, and BUILTIN FUNCTION

  10-10      Keypad Mode Elementary Attributes

  10-11      Signaling an Input Error to the Operator

  10-12      Sending a Message to the Form from a Program or Escape Routine

  10-13      Declarations of Help Messages

  10-14      Using an Entry Response to Display Hints

  10-15      Displaying Hints Conditionally with an Internal Response

  10-16      Declaring and Using Help Panels

  10-17      Function Responses That Create Levels of Help Panels

  10-18      Help Panel with Menu Choices

  12-1       IFDL Source for the Operator Choice Panel

  12-2       IFDL Source for the Introductory Check Panel

  12-3       IFDL Source for the Introductory Deposit Panel

  12-4       IFDL Source for the Advanced Choice Panel

  12-5       IFDL Source for the Advanced Sample Cash Panel

  FIGURES

  1-1        Separation of Form and Function

  1-2        Relationship Among Form, Layout, Viewport, and Panel

  1-3        Analogy for DECforms Structure

  3-1        Information Contained in a Form

  3-2        General Structure of a Form

  3-3        Hierarchical Structure of a Form

  3-4        Structure of a Form in IFDL Declarations

  4-1        Appearance of CHOICE_PANEL in the Panel Editor

  4-2        Appearance of CHECK_PANEL in the Panel Editor

  4-3        Appearance of DEPOSIT_PANEL in the Panel Editor

  4-4        Field Pictures in Output of the Deposit Panel

  4-5        Initial Data in Output of the Deposit Panel

  5-1        FDE Main Menu

  5-2        Editing Form Records in the FDE on ULTRIX Systems

  5-3        Editing Form Data in the FDE on VMS Systems

  5-4        VAXTPU Help in the FDE

  5-5        Correcting IFDL Syntax Errors in the FDE

  5-6        Creating a Layout in the FDE

  5-7        Specifying Screen Colors in the FDE

  5-8        Testing a Form in the FDE

  5-9        Testing a Form with Control Text in the FDE

  5-10       Creating a Panel in the FDE

  6-1        Panel Editor Screen Display

  6-2        Panel Editor Information Window

  6-3        Panel Editor Video Attributes Submenu

  6-4        Panel Editor Font Size Submenu

  6-5        Panel Editor Line Width Submenu

  6-6        Panel Editor Character Set Submenu

  6-7        Panel Editor Text Path Submenu

  6-8        Panel Editor Create Field Menu

  6-9        Panel Editor Choose Data Type Menu for VMS Systems

  6-10       Panel Editor Choose Data Type Menu for ULTRIX Systems

  6-11       Panel Editor Modify Field Description Menu

  7-1        Translating IFDL Source to a Form File and Back

  8-1        Appearance of Panel Groups in the Panel Editor

  8-2        Appearance of Panel Groups on the Display

  10-1       Operation of a Vertical Scrolled Region

  12-1       Logically Equivalent Declarations of the ACCOUNT Record

  12-2       Introductory Sample Operator Choice Panel

  12-3       Introductory Sample Check Panel

  12-4       Introductory Sample Deposit Panel

  12-5       Advanced Sample Operator Choice Panel

  12-6       Advanced Sample Cash Panel

  B-1        Panel Editor Keypad

  TABLES

  1-1        DECforms Command Summary

  3-1        DECforms Accept Responses

  3-2        DECforms Default Request Responses

  3-3        DECforms Response Steps

  5-1        FDE Function Keys

  6-1        Command Line Editing Keys

  6-2        Panel Editor Predefined Symbols

  6-3        Panel Editor Keys for Cursor Positioning

  6-4        Clipboard Operations

  8-1        Meaning of Shadow Record Characters

  10-1       Key Bindings for Scrolling OCCURRENCE Functions

  10-2       System Function Keys Requiring Special Consideration

  12-1       Form Data Item and Form Record Field Correspondence

  B-1        Panel Editor Function Keys