DECforms Guide to Developing Forms

*HyperReader

  CONTENTS

  Title Page

  Copyright Page

  Preface

  1      Overview of DECforms

  1.1     DECforms Definitions

  1.2     DECforms Structure:  An Analogy

  1.3     Components of DECforms

  1.4     DECforms Command Summary

  1.5     A Proposed Standard for Form Interface Management

  2      The Sample Applications and Demonstration Forms

  2.1     Running the Introductory Sample Application

  2.2     Running the Advanced Sample Application
    2.2.1      Writing a Check
    2.2.2      Making a Deposit
    2.2.3      Making a Cash Withdrawal
    2.2.4      Transferring Funds Between Accounts
    2.2.5      Reviewing the Check Register and Account Data
    2.2.6      Exploring Special Features of the Sample Application
    2.2.7      Exiting from the Sample Application

  2.3     Displaying the Demonstration Forms

  3      The 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 and Response Steps
    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     How a Form Looks in the IFDL

  3.8     Methods for Creating Forms

  4      Creating a Form

  4.1     Step by Step:  Creating a Form

  4.2     Considerations for Planning a Forms Application
    4.2.1      Defining Program Data and Records
    4.2.2      Defining Form Data and Form Records
    4.2.3      Creating Panels and Panel Fields
    4.2.4      Compiling, Linking, and Running the Application

  5      Using the Form Development Environment

  5.1     Invoking the FDE
    5.1.1      Using LSE for Text Editing in the FDE
    5.1.2      Using Keys in FDE Menus
    5.1.3      Editing an Existing Form
    5.1.4      Creating a New Form

  5.2     Using FDE Main Menu Options at Form Level
    5.2.1      Producing Output
    5.2.2      Changing the Form Name
    5.2.3      Editing IFDL Source Code

  5.3     Using FDE Main Menu Options at 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 Options at 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 Aborted Session

  6      Creating and Editing Panels with the Panel Editor

  6.1     Invoking and Exiting from the Panel Editor

  6.2     The Screen Display
    6.2.1      Current Panel
    6.2.2      Command Line
    6.2.3      Message Window
    6.2.4      Status Line
    6.2.5      Information Window
    6.2.6      Menus
    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 and Using Symbols
    6.3.5      Defining Function Keys
    6.3.6      Executing a Series of Commands in a Command File

  6.4     Editing Panels
    6.4.1      Moving the Cursor
    6.4.2      Creating, Deleting, and Modifying Viewports
    6.4.3      Creating and Deleting Panels
    6.4.4      Modifying the Color of Panel and Viewport Display Attributes
    6.4.5      Creating and Deleting Panel Fields
    6.4.6      Modifying Panel Field Descriptions and Pictures
    6.4.7      Creating and Deleting Panel Groups
    6.4.8      Creating and Deleting Icons
    6.4.9      Creating a Menu Using Icons
    6.4.10     Drawing Graphic Objects
    6.4.11     Creating Text Objects
    6.4.12     Selecting and Deselecting Objects
    6.4.13     Changing the Order of Objects in the Panel
    6.4.14     Using the Clipboard
    6.4.15     Moving Objects Within a Panel
    6.4.16     Moving Objects Between Different Panels
    6.4.17     Copying Objects Within a Panel or Between Panels
    6.4.18     Setting or Modifying Video Attributes
    6.4.19     Setting or Modifying Font Size
    6.4.20     Setting or Modifying Line Width
    6.4.21     Setting or Modifying the Character Set of Text Literals

  6.5     Specifying Display Attributes Based on Terminal Type

  6.6     Recovering an Aborted 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

  8      Testing and Printing Forms

  8.1     Testing a Form's Appearance

  8.2     Creating Printable Forms

  9      Declaring, Displaying, and Tracking Data

  9.1     Assigning Default Values to Fields

  9.2     Altering Video Attributes of Panel Fields

  9.3     Declaring and Displaying Arrays
    9.3.1      Storing Array Data in the Form
    9.3.2      Displaying Data Stored in Form Data Groups
    9.3.3      Using Corresponding Subscripts in Field Description Entries
    9.3.4      Activating Panel Groups for Input
    9.3.5      Specifying Navigation in a Panel Group
    9.3.6      Passing Group Data Between the Program and Form

  9.4     Transferring Data Explicitly

  9.5     Determining What Changed During Operator Input
    9.5.1      Tracking Form Data Items
    9.5.2      Using Receive Shadow Records

  10     Controlling Form Processing

  10.1    Using Responses to Perform Conditional Processing

  10.2    Using Control Text Responses

  10.3    Controlling the Activation List
    10.3.1     Using the ACTIVATE Response Step
    10.3.2     Using Conditional Protection in Navigation
    10.3.3     Controlling the Activation List During Accept Phase
    10.3.4     Using the DEACTIVATE Response Step

  10.4    Using Escape Routines
    10.4.1     Writing a Program That Uses Escape Routines
    10.4.2     Writing Responses That Call Escape Routines
    10.4.3     Linking Applications That Use Escape Routines

  10.5    Moving Between Panels

  10.6    Waiting for the Operator

  10.7    Printing the Current Display

  10.8    Getting the Best Performance from Your Forms
    10.8.1     Organize Your Form Records
    10.8.2     Use Validation with Care
    10.8.3     Consider How to Perform Data Conversion
    10.8.4     Use Function Responses Efficiently
    10.8.5     Use Input Pictures Wisely
    10.8.6     Use Device Type %VT100
    10.8.7     Use Form Objects or Shareable Images
    10.8.8     Make Scrolling Regions Full Screen Width
    10.8.9     Do Not Overuse Panels
    10.8.10    Do Not Overlap Panel Objects
    10.8.11    Use OUTPUT WHEN Rather than CONCEALED WHEN
    10.8.12    Activate Panel Fields Only When Necessary

  11     Controlling the Operator Interface

  11.1    Using Viewports

  11.2    Creating Scrolled Regions
    11.2.1     Displaying Scrolled Data
    11.2.2     Setting Up the Operator's Control of a Scrolled Region

  11.3    Defining Function Keys
    11.3.1     Binding Functions to Keys
    11.3.2     Writing Function Responses
    11.3.3     Disabling Built-In Function Key Bindings

  11.4    Using an UNDEFINED, USER, or BUILTIN FUNCTION Declaration

  11.5    Modifying the Keypad Mode

  11.6    Signaling the Operator

  11.7    Sending Messages to the Operator
    11.7.1     Sending Messages from the Form
    11.7.2     Sending Messages from a Program or Escape Routine

  11.8    Providing Online Help
    11.8.1     Using Help Messages
    11.8.2     Providing Hints
    11.8.3     Using Help Panels
    11.8.4     Creating Levels of Help Panels
    11.8.5     Creating a Hierarchical Help Menu

  12     Examining the Sample Applications

  12.1    Data Declarations in the Introductory Sample Form and Program

  12.2    The Effect of the Request Calls in the Introductory Sample Program
    12.2.1     The ENABLE Request
    12.2.2     The ACCOUNT Record SEND Request
    12.2.3     The UPDATE Record TRANSCEIVE Request
    12.2.4     The GET_CHECK Record RECEIVE Request
    12.2.5     The GET_DEPOSIT Record RECEIVE Request
    12.2.6     The DISABLE Request

  12.3    An Operator Transaction in the Advanced Sample Application

  13     Elements of Good Screen Design

  13.1    Sorting Information

  13.2    Providing a Title

  13.3    Writing Descriptive Captions

  13.4    Using Check Boxes

  13.5    Providing Instructions

  13.6    Making Effective Use of the Video Screen
    13.6.1     How to Present Data
    13.6.2     Organizing the Screen Display
    13.6.3     Communicating with the Operator

  A   Panel Editor Default Keypad

  B   Panel Editor Command Summary

  C   Default Key Bindings for Built-In Functions

  Glossary
    accept response . . . data collection phase
    data distribution phase . . . escape routine
    Extract Utility . . . form file
    Form Interface Management System . . . IFDL
    IFDL source file . . . nonnumeric literal
    numeric literal . . . procedural escape
    receive control message . . . scroll bar
    send control message . . . vector
    viewport . . . wait activation item

  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

  9-1        Using the RESET Response Step

  9-2        Altering Video Attributes with HIGHLIGHT WHEN

  9-3        Declaration of Form Data Groups

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

  9-5        IFDL Source for Returning to the Group Last Visited

  9-6        Declaration of Logically Equivalent Program and Form Records That Pass Data to Form Data Groups

  9-7        Group Data Transfer on a Receive Request

  9-8        Tracked Form Data Items

  9-9        Shadow Record Declaration

  10-1       Using the IF Response Step

  10-2       Control Text Responses

  10-3       Conditionally Protecting an Icon

  10-4       Escape Routine in a COBOL Program

  10-5       FORMS$ENABLE for Escape Routines

  10-6       CALL Response Step

  10-7       Menu Panel with Choice Processing

  11-1       Displaying the Same Panel at Different Locations

  11-2       Declarations of the Elements that Control Array Transfer and Scrolling

  11-3       Function Declaration for a Built-In Function

  11-4       User-Defined Function Declaration

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

  11-6       Function Response for a User-Defined Function

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

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

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

  11-10      Keypad Mode Elementary Attributes

  11-11      Signaling an Input Error to the Operator

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

  11-13      Declarations of Help Messages

  11-14      Using an Entry Response to Display Hints

  11-15      Displaying Hints Conditionally with an Internal Response

  11-16      Declaring and Using Help Panels

  11-17      Function Responses that Create Levels of Help Panels

  11-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        An 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

  5-1        FDE Main Menu

  5-2        Editing Form Records in the FDE

  5-3        Editing Form Data in the FDE

  5-4        Text Editor 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 Create Field Menu

  6-4        Panel Editor Choose Data Type Menu

  6-5        Panel Editor Modify Field Description Menu

  6-6        Panel Editor Video Attributes Menu

  6-7        Panel Editor Font Size Menu

  6-8        Panel Editor Line Width Menu

  6-9        Panel Editor Character Set Menu

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

  8-1        Default Output of FORMS EXTRACT APPEARANCES

  8-2        Field Pictures in Output of FORMS EXTRACT APPEARANCES

  9-1        Appearance of Panel Groups in the Panel Editor

  9-2        Appearance of Panel Groups on the Display

  11-1       Operation of a Scrolled Region

  12-1       Logically Equivalent Record Declarations

  12-2       The Introductory Sample Operator Choice Panel

  12-3       The Introductory Sample Check Panel

  12-4       The Introductory Sample Deposit Panel

  12-5       The Advanced Sample Operator Choice Panel

  12-6       The Advanced Sample Cash Panel

  A-1        Panel Editor Default 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        Panel Editor Line Editing Keys

  6-2        Panel Editor Predefined Symbols

  6-3        Panel Editor Commands for Positioning the Cursor

  6-4        Panel Editor SET VIDEO Command Parameters

  9-1        Meaning of Shadow Record Characters

  12-1       Form Data Item and Form Record Field Correspondence

  A-1        Panel Editor Default Function Keys

  C-1        Default Key Bindings for DECforms Built-In Functions