More Program Logic Override features

F22 shows a list of screens within the function and you can select to see the subfiles on the displayed panel. There are options in the windows to view portions of the specification of the other sections.

Option 'R' for review shows the program logic in an expanded form. All attached 'T' text is shown in situ as are any Parameter entries. Fields have their descriptions shown. VALIDATE nnn and UPDATE nnn have their field moves shown in situ. If you place 'R' against a DOSECTION line then only that section is shown. Similarly an 'R' against the start of a subroutine (*START SUBROUTINE CALLED SUBR) will show the expansion only of that subroutine.

New Major 4GL Actions:

DIALOGUE / MSGWINDOW / GVGNMW - Dialogue boxes

POINTCLICK - Point and Click a subfile record. (Specify ONLY on Sfl 4GL)

Variants:

POINTCLICK without parameters forces a subfile change if the cursor is in the action control box and forces the subfile record to cycle through the Standard 4GL with a '?' in the action control box. Obviously you must have some normal 4GL to say what to do if the box contains '?' (like call a menu) POINTCLICK 'X' (or any quoted figure) as above but cycles through 4GL with an 'X' in the action control box.

POINTCLICK 'X' *SFOPT
*DATA
*REC
FLDNAM

Cycles through normal 4GL with 'X' (or whatever) in the action control box but only if the cursor is found in a) the action control box, b) anywhere but the action control box, c) anywhere in the subfile rec or d) in a particular field. If a field name is quoted then the quoted character is placed in the field, not in the subfile option box. e.g. you may wish to force a '?' into a field to call a Finder or Validman table.

POINTCLICK 'X' *SFOPT SUBRNM
OR POINTCLICK *NONE *SFOPT SUBRNM

P&C as per above but execute a Subroutine. Special value *NONE in the operand means no specific value to be placed in the action control box.

PANELSTART - Only available for non-subfile window programs (such as pop-up menus for action control box available options) to control the start line of the window. As always, it will be better for you to make all window programs a single screen program. The PANELSTART 4GL must be entered on the panel 4GL not the program entry 4GL. Format is:

PANELSTART FLDNAM

Field name is normally internally described and received as a parameter from the subfile program that calls the window. Note - you are responsible for ensuring that there is enough room for the window to fit on the display i.e. if the parameter passed in is line 19 and the window is 7 lines long then it will fall off the bottom of the display. You must test the passed in value and set your own maximum value.

As a reminder of the associated 4GL key words in the area of cursor sensitivity.

Check where the cursor is after enter is pressed by

CURSOR IN 22152329 <- in coordinates Line 22 col 15 to line 23 col 29

CURSOR IN FLDNAM
CURSOR NT FLDNAM

*CRLIN GE nnn
*CRCOL LT nnn

pass *CRLIN as a parm to a PANELSTART window pgm.

Place cursor in a specific place

CURSOR *HERE FLDNAM

MOVENUMBER 21 *CRLNX
MOVENUMBER 67 *CRCNX

CURSORHOLD - Sticky cursor (in a subfile). This verb will stop the cursor automatically returning to the action control box when a subfile record is updated or touched (with P&C for example)

SCREENSIZE - Force the *DS3/*DS4 setting. If you wish to run variable screen size programs then *DS3 and *DS4 screens can be controlled with this 4GL verb (Note any screen which is designed as 132 wide will automatically set the mode as *DS4)

TIMEOUT - Time out of an individual display. Thanks to Maurice Dobbin at AVX for the research on this. Maurice was looking for a way of timing out a particular program display that hadn't had Enter pressed for an amount of time (number of seconds).

TIMEOUT nnn will cause F3 to be taken if no Enter / F key has been pressed within nnn seconds. TIMEOUT nnn SUBRNM will call subroutine SUBRNM before exiting with F3 (if you don't want F3 action you must switch it off in the subroutine - MOVE 'RA' *CMDKY) The compile of the DSPF will check for this verb and set the WAIT time on the CRTDSPF. However this setting can be changed with a CHGDSPF command after the DSPF has been compiled.

An additional reminder when using 4GL or Boolean Conditioning please investigate the entries in the '?*' special values and try to use the '*' keywords such as *CMDKY (not @@@CMD) and *CRLIN (not @@@LIN) etc) as it will make your logic easier to follow by someone not as well trained as yourself in Genesis V. For complex programs that need large amounts of 4GL (more than 2 or 3 screen pages) use the EXECUTE SUBR command to create a "Mainline" on page one, then use action 'X' to expand the SUBR and create several subroutines. Access and understanding is greatly enhanced using this technique.

Please use PDM to browse through GVKWB3P4/GVMACROS to read the macros that have been added since the last release. Many will not be applicable to you but there may be one or two very close to your own requirements and some which you were unaware were delivered with GV.