Full-View - Windows for Pick

(C) Copyright 1985-1996 Modular Software Corporation. All rights reserved.

Version 2.0 for AP - February 14, 1996

   Goto:  Table of Contents   Index
Chapter:  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

10: THE DATA ENTRY SYSTEM

FULL-VIEW includes a screen-oriented data entry/display system which provides application developers with an easy, effective interface and end-users with powerful editing features. Screens are designed using an interactive painter. The system is designed around the concept of a self-contained data input function that permits CRTs to simulate full-screen editing workstations.

The FULL-VIEW data entry system manipulates BASIC dynamic array structures and allows access to any attribute, value, and sub-value. In addition, the ability to specify fields as DISPLAY-ONLY is included. A full-featured interface to the conversion processor is supplied to handle a wide variety of data types.

The system also provides extensive data validation, including pattern matching and file lookups.

The data entry system provides the operator with a wide variety of editing features, including full use of cursor keys, what-you-see-is-what-you-get editing, single key FIELD FORWARD, FIELD BACK, and FIELD EXIT functions, FIELD ERASE function, and CHARACTER INSERT and CHARACTER DELETE functions. This system provides an effective operator interface which can vastly improve data entry productivity.

The system also interfaces overall with FULL-VIEW's Windowing, with built-in interfaces to the GLOBAL SHELL function, and function key activated help text for both GLOBAL and field specific help text.

10.1: DATA ENTRY - OPERATION

FULL-VIEW's data entry system provides the operator with powerful features to enhance data entry functions. These features allow the operator to approach the data entry task with the versatility of a word processor and eliminate the field at a time, non-editing type of data entry screens so commonplace in Pick application software.

A data entry screen is considered a unit and is designed to operate much like an editing workstation in block mode. The data entry operation involves the following steps:

  1. The system displays all of the fields with default information.
  2. The operator enters and updates data in any or all of the entry fields.
  3. The operator exits the data entry screen, telling the system that all data entry is complete.
  4. The system verifies the entered data and if there are errors, returns to step 2 for operator correction.
  5. If there are no errors, the system passes the entered data on to the application program.

10.2: DATA ENTRY - CONTROL KEYS

While the operator is entering information into a data entry screen, there are a number of keys which have special functions. These keys are definable for the particular terminal driver in effect. The following explanation of these special keys includes the key that is usually defined for these functions.

FIELD FORWARD

Pressing the [ENTER] or [RETURN] key will cause the cursor to advance to the beginning of the next field. The contents of the current field will not be altered. This key is invalid if the cursor is not located within an entry field. If the cursor is in the last field on the screen, then a SCREEN EXIT function will be executed.

FIELD BACK

Pressing the TAB or [ctrl-I] key will cause the cursor to advance to the beginning of the previous field. The contents of the current field will not be altered. This key is invalid if the cursor is not located within an entry field. If the cursor is in the first field on the screen, then the cursor will move to the beginning of that field.

SCREEN EXIT

Pressing Screen Exit [F1] will cause the application software to process the information that has been entered into the data entry screen. This function is a quick way to exit the screen and process the data without having to go through every field on the screen.

SCREEN ABORT

Pressing Screen Abort [F2] indicates to the application that the operator wishes to abort the current function without updating any files. The specific use of this key is application dependent but this key has the same effect as a SCREEN EXIT with the addition of a status condition.

FIELD ERASE

Pressing Field Erase [ctrl-D] will cause the contents of the current field to be erased from the cursor location to the end of the field. The cursor will then advance to the beginning of the next field. If the cursor is at the beginning of the current field, then the entire field will be erased.

CHARACTER INSERT

Pressing [INS] will cause a space to be inserted at the cursor position. Any characters to the right of the cursor will move one space to the right. The cursor will not move.

CHARACTER DELETE

Pressing [DEL] will cause the character at the cursor position to be deleted. Any characters to the right of the cursor will move one space to the left. The cursor will not move.

CURSOR KEYS

The four direction keys [up] [down] [left] [right] can be used to arbitrarily move the cursor to any location on the screen. This feature may be used to fill in the data in a screen in whatever order is desired (or to move about the screen during the screen painting process). In data entry screens, if the cursor is left between entry fields, most of the other control keys are unusable and the system will respond with a bell.

GENERAL HELP

Pressing Help [F3] will display any general help which has been pre-programmed for the data entry screen. If no help is available, an appropriate message will print.

FIELD HELP

Pressing Field Help [F4] will display any field specific help which has been pre-programmed for the data entry screen. If no help is available, an appropriate message will print.

FUNCTION KEYS

In addition to the above pre-programmed keys, additional function keys may be utilized by specific applications.

10.3: DESIGNING DATA ENTRY SCREENS

FULL-VIEW'S data entry function also allows the programmer to design and utilize complicated data entry screens. The procedure to create and use these advanced screen functions are:

  1. Design a screen layout.
  2. Enter the screen layout using an interactive painter.
  3. Compile the screen layout into an executable definition.
  4. Call the data entry screen run-time subroutine from the application program.
The screen entry function executes a compiled screen definition with an assembly routine. This routine has several advantages over generating BASIC code to execute a screen definition:

  1. The screen definition execute extremely rapidly and with very low overhead.
  2. The screen definition files are quite small and do not require much system memory to execute.
  3. There is a single copy of the run-time screen software that executes for all screen definitions. This dramatically improves efficiency on a virtual memory operating system like Pick.

10.3.1: THE SCREEN PAINTER

The screen painter is used to enter and edit screen definitions. In order to utilize the screen painter type:

    ENTER-SCR scr.name
The screen painter will read the specified screen definition and then display the main command line:

Fwd Back Edit Labels Position Goto Delete Insert eXit Append Save Compile [ ]

These selections are:

[F]orward
Go to the next entry/display step.
[B]ack
Go to the previous entry/display step.
[E]dit
Modify the current entry/display step.
[L]abels
Enter or modify screen labels.
[P]osition
Re-position the currently displayed step.
[G]oto
Go to step #N.
[D]elete
Delete the current step.
[I]nsert
Insert a new step before the current step.
e[X]it
Exit the screen painter without saving the definition.
[A]ppend
Append a new step to the end of the screen definition.
[S]ave
Save the screen definition and exit the screen painter
[C]ompile
Save and compile the screen definition for use with the data entry functions.
These selections are used to build a screen definition.

ENTERING LABELS

Screen labels are entered by selecting [L]abels from the ENTER-SCR painter selection prompt. Labels are entered on a 80 column by 24 line data entry screen. Labels may be placed anywhere desired. The screen editing functions are available for this function.

In addition to INS and DEL, several function keys are available from within the [L]abels function to aid in designing screens. The following function keys are available:

F5
Insert a line at the current screen location. This will bump all lines at or below the cursor location down one. Both labels and steps are moved.
F6
Delete the line at the current screen location. This will bump all lines below the cursor location up one. Both labels and steps are moved.
F7
Scroll the screen up. This allows you to paint a screen definition that is larger that the terminal size. This is primarily used when the screen definition are actually defining print formation to be generated with the SCR-GEN utility.
F8
Scroll the screen down.
F9
Scroll the screen left.
F10
Scroll the screen right.
ENTERING STEPS

New steps are added to a screen either using the [I]nsert command or the [A]ppend command. The [I]nsert command is used to add a step anywhere except after the last step. The [A]ppend command is used to add a step to the end.

When you select the [I]nsert or [A]ppend function, the painter will first display all existing labels and steps and allow you to position the cursor at the location where the step is to be displayed. The cursor is positioned by utilizing either the cursor keys or the number keys 2 [down], 4 [left], 6 [right], 8 [up]. Pressing [return] will cause the current cursor X,Y position to be used for the new step.

The step definition screen contains fields which are used to completely describe a single entry or display step. The fields are:

TYPE
This is the type of the current entry/display step. Valid types are ENTRY or DISPLAY. This field indicates whether this field is used to enter and display data or only to display data.
X and Y
These fields are the coordinates of the entry/display step. Normally they are supplied by the Position function or when the step is initially created with Append or Insert. These fields may however be manually supplied on the step parameter screen.
ATTR,VAL,SVAL
These fields are used to specify the data elements which are used by the entry/display step. The ATTR number is required and the VAL and SVAL elements are optional and will be assumed to be '1' if they are left blank. Any attribute from 0 to 249 is allowed and any value or sub-value from 1 to 249 is allowed. Attributes 1 to 249 refer to the data array that the screen operates with and attribute 0 is used for the ITEM-ID array.
JUST
The display justification may also be set to 'R' to select right justification. This is useful for specifying numeric entries. The entry justification is always left.
LEN
This is the length of the field in display mode after all conversions have been applied.
ENTRY LEN
This optional field allows a separate entry length to be applied to an field. This permits a field to be entered in a different amount of space than it is displayed in. An example of this would be to enter a dollar amount in MD2 format display it in MD2, format. This allows the amount to be entered without commas but displayed with them.
DISP OCONV
These fields are used to enter valid conversions which are to be applied to the data when it is displayed in DISPLAY mode. Any conversions which are normally valid from BASIC may be applied. Multiple conversion fields are provided to permit multiple conversions to operate.
EDISP OCONV
These fields are used to enter valid conversions which are to be applied to the data when it is displayed in ENTRY mode.
ENTRY ICONV
These fields are used to enter valid conversions which are to be applied as input conversions to entered data.
REQ FLD
Placing a 'Y' in this field indicates that this field is required. Attempting to leave the data entry screen with a REQ FLD blank will result in an error message and re-entry to the screen at the field.
TRM FLD
Placing a 'Y' in this field will force multi-attr, multi-value, or multi-sub-value compression depending on whether the VAL or SVAL fields are blank. This allows multi-valued formats to be specified with automatic elimination of blank values.
HELP ID
An optional ITEM-ID of help text which is associated with this field may be entered in this field. This field may include any valid string that the FV.HELP( ) subroutine will interpret. The FV.HELP( ) subroutine is documented in it's own section.
TRANS FILE
These fields may be used to specify files in which the entered data must exist. If the entered data does not exist on any one of the specified files, an error message will be displayed and the cursor will return to the entry field. If the first entry in the TRANS FILE fields is left blank, then a blank entry will be considered valid (unless REQ FLD is set to "Y").
REQ MATCH
These fields allow BASIC pattern matching to be applied to the entered data. If the entered data matches any of the BASIC patterns then it is considered valid. Again, if the first entry in the REQ MATCH fields is left blank, then a blank entry will be considered valid (unless REQ FLD is set to "Y").
These fields allow a wide variety of functions and error checking to be directly implemented as part of the data entry screen.

The order in which the entry steps are listed specifies the order in which the steps will be executed when the screen is used.

After all of the steps have been completed, save the screen using the [S]ave option or save and compile the screen using the [C]ompile option.

10.3.2: COMPILING SCREENS

In order for a screen definition to be utilized by the FULL-VIEW, it must be compiled into an executable format. Normally, screen source definitions are stored in the file SCR.SOURCE and object definitions are stored in SCR.OBJ. Screens may be compiled in two different ways. There is a selection in the menu painter to save and compile screens. Or, a separate program may be used to compile screens:

    SCR-COMPILE scr.name
                                                                            or
    GET-LIST list.name
    XXX ITEMS SELECTED.
    SCR-COMPILE

10.4: THE DATA ENTRY APPLICATIONS INTERFACE

An application program utilizes the data entry system by calling the external subroutine FS( ). This subroutine and it's parameters execute the entire data entry process and support all of the data entry features with a minimum of programming. The following example illustrates a simple program which will utilize a data entry screen to enter data into a file. In this example, it is assumed that the data entry screen has been designed with an attribute zero that represents the ITEM-ID in the file.

    OPEN 'DATA.FILE' TO DATA.FILE ELSE
    STOP 201,'DATA.FILE'
    OPEN 'SCR.OBJ' TO SCR.FILE ELSE STOP 201,'SCR.OBJ'
    READ SCR FROM SCR.FILE , 'DATA.SCR' ELSE
    STOP 202,'DATA.SCR'
    PRINT @(-1) :
    ID = ''
    DATA = ''
    CALL FS('LABELS ENTRY',ID,DATA,SCR,'',STATUS)
    IF STATUS <> 'ABORT' AND ID <> '' THEN
    WRITE DATA ON DATA.FILE , ID
    END
This example utilizes the main data entry subroutine FS( ). This routine, with it's parameters, displays screen labels and data, and then permits editing of any data not in fields designated as display only.

10.4.1: THE BASIC DATA ENTRY INTERFACE: FS( )

The subroutine FS( ) is the main data entry interface to application programs. The format of this function call is:

    CALL FS(command.str,attr0,attrs,scr.def,scr.loc, scr.status)
The parameters are:

command.str
a string of words separated by spaces which indicate the data entry screen function desired. The words will execute in order. Valid words are:
LABEL or LABELS
display the screen labels.
DISPLAY
display the fields in display format. If an ENTRY command follows, only the display-only fields will be displayed to save time.
DISPLAY.ONLY
display the display-only fields.
ENTER or ENTRY
allow the operator to enter and edit data.
NO.UL
suppress the underlining of data entry fields.
HELP=help.item.id
set the global help function while for this screen. The global help function may be any string compatible with the FV.HELP( ) subroutine documented in it's own section.
FN=xx
set the function key 'xx' as an application exit. When the user presses this key, the screen will be exited with a 'status' of 'FNxx'
attr0
This variable is the data for attribute 0 of the data entry screen and usually represents the ITEM-ID. This variable is a dynamic array with only one attribute.
attrs
This variable is a dynamic array which represents the rest of the data passing to and from the screen. It contains all attributes from 1 upward.
scr.def
This is the compiled screen definition. This definition must have previously been read from the file 'SCR.OBJ'.
scr.loc
This variable contains a dynamic array which specifies both the entry and exit point of the screen. This dynamic array is in the form:
attr\val\sval
This is the data location of the field in question. All three elements are required for correct function. If an element is referenced which does not exist in the screen then the first element of the screen is used.
Scr.loc can be used on entry to specify which field the cursor will begin in. On exit, it specifies which field the cursor was in when the screen was exited. In most cases a constant null string "" is used in this position and this feature is not used.
scr.status
This variable returns the exit status that shows under what condition the operator exited the screen. A normal exit is signified by a null string "". Pressing SCREEN ABORT (F2) is signified by a returned string of "ABORT". Additional function keys are reported with this variable if they have been defined.

10.5: PRINTER OUTPUT

Data entry screen definitions may be utilized to generate BASIC code which can be used to generate printer output. To generate BASIC code for a screen definition type:

    SCR-GEN scr.name
This program will generate a BASIC subroutine and store it in the file GENERATED.BP. This subroutine will be given the same name as the screen definition. The interface to the subroutine is:

    SUBROUTINE scr.name(ID,DATA,NO.LINES,PRINTER.FILE)
The parameter list includes the ID and DATA dynamic arrays which contain the data to display. PRINTER.FILE is a number which is usually '0'. It may be used in the same way as the PRINT ON XXX statement in BASIC. The variable NO.LINES is available to applications that manually paginate. NO.LINES will be incremented by the number of lines printed in the subroutine.

10.6: DOCUMENTING SCREENS

Screen definitions may be printed with the program:

    SCR-PRINT scr.name
This program will print a layout of the specified screen. Alternately the program:

    SCR-PRINT.A scr.name
will print the screen layout with the ATTR VAL SVAL numbers represented in the fields in the printout.

Entry steps are printed out as '_' (underline) characters and display steps are printed out as '.' (period) characters.


   Goto:  Table of Contents   Index
Chapter:  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15