|Contents:||Main||Chapter||See Also:||Getting Started Manual||Advanced User Manual|
A form is a series of screens that are presented to the user. A form contains one or more pages, a page contains one or more blocks, and a block contains one or more fields.
Structurally, the form is an entry in the FORM file (#.403). The FORM file contains a PAGE multiple, and the PAGE multiple contains a BLOCK multiple. The .01 field of the BLOCK multiple is a pointer to the BLOCK file (#.404). The BLOCK file contains a multiple for fields.
Because of this structure, blocks in the BLOCK file are reusable; that is, the same block can be placed on more than one page and on more than one form.
Each block in the BLOCK file that contains VA FileMan fields has a DD (data dictionary) Number. Each block can contain fields from only one file or subfile, as determined by this DD Number.
When a form is first invoked and the user is presented with the first page, conceptually, the user is at the top level of the form. When the user goes to the next or previous pages, the user remains at the top level. Only at this level can the user exit or quit the form or save changes made during the editing session.
When the user opens up a subpage, however, the user has descended a level. At this level, and at lower levels, the user can only close the current page, or issue the Refresh command to repaint the screen; the user cannot exit or quit the form or save any changes.
Pages on a form can be linked together in a variety of ways. The following lists the places where links can be defined:
Both the Next Page and Previous Page properties link pages at the same level. The user can go to the next and previous pages by pressing <PF1><ARROW DOWN> and <PF1><ARROW UP>, respectively. Pages linked via the Next and Previous page links must be regular pages; they cannot be "pop-up" pages. The DDSBR variable, discussed in the "Field Properties" section, can be used to take the user to another page under conditions you specify.
Both the Parent Field and Subpage Link properties allow you to take the user to a subpage at a lower level when the user presses the Enter/Return key at a field on the parent page. The subpage can be either a regular or a "pop-up" page. A "pop-up" page is usually preferable since it gives users a better indication that they have descended a level and must close the subpage to return to the previous level. After the user closes the subpage, ScreenMan automatically returns to the previous level -- that is, to the parent page from where the branch occurred.
The difference between the Parent Field property and the Subpage Link property is where the link is defined. The Parent Field property is defined with the subpage and indicates the field from which the branch should occur. The Subpage Link property, on the other hand, is defined with the field and indicates the subpage to which the branch should occur. In a sense, then, the difference between these two properties is the direction of the "pointer." Parent Field points from the subpage to the field, and Subpage Link points from the field to the subpage. Where you choose to define the link is a matter of personal preference. However, the disadvantage of defining the link in the Subpage Link property is that the block on which the field is defined may not be reusable on other forms, since the link points to a specific page on the form.
You must use either the Parent Field or the Subpage Link property to link a multiple field on a form to a subpage that contains the fields within the multiple.
The DDSSTACK variable, discussed in the "Field Properties" section, can also be used to link a field to a subpage. It behaves just like the Parent Field and Subpage Link properties, but because it is set in M code in the Branching Logic property of a field, DDSSTACK lets you branch conditionally.
The following diagram illustrates the various page links:
Reviewed/Updated: March 4, 2007