VA FileMan V. 22.2 Programmer Manual Banner


 

Main Chapter Getting Started Manual Advanced User Manual

ScreenMan Forms


Relational Navigation: Forward Pointers

On a page of a form, you can place a block that contains fields from a file other than the Primary file of the form. If the file is reached via a forward POINTER, you must define a Pointer Link for that block. The syntax of the Pointer Link property is like VA FileMan's relational syntax. When you define the Pointer Link, your point of reference is the Primary file of the form.

In Figure 223, the Primary file of the form is the (fictitious) ORDER (#16202) file. There are two blocks on the page. Block A contains fields from the (fictitious) ORDER (#16202) file, and Block B contains fields from the (fictitious) CUSTOMER (#16201) file. CUSTOMER NAME in the (fictitious) ORDER (#16202) file points to the (fictitious) CUSTOMER (#16201) file.

Figure 223: ScreenMan Forms—Relational Navigation: Forward Pointers

Example of a Form with Forward-Pointer Relational Navigation.

If CUSTOMER NAME is Field #1, the Pointer Link property for Block B can be set to either "CUSTOMER NAME" or 1. The following sections describe in more detail the syntax for the Pointer Link property:

Syntax for Pointer Link—Navigating Via DD Fields

In the valid formats listed in Table 74:

A file or field name can be enclosed in quotation marks.

Table 74: ScreenMan Forms—Valid Formats for DD Fields

Format Explanation
Pfield The Primary file of the form has a Pfield field that points to the file associated with the block. That POINTER field determines the record to display in the pointed-to block.
Pfield_1:Pfield_2: ... :Pfield_n The pointed-to block is reached after relational jumps across many files. Here, Pfield_1 in the Primary file points to File #2 that contains a Pfield_2 that points to File #3, etc. Finally, Pfield_n points to the file associated with the block being defined.
Field;Opt_spec The value of Field in the Primary file should be used to do a lookup into the file associated with the block.

You can control how the lookup is done by using any of the following optional specifiers (Opt_spec):

;I Use the Internal form of the field value for the lookup
;L Allow LAYGO
;IX(xref list) Use specific IndeX(es) in the lookup. (For example ;IX(B^C) specifies that the B and C index should be used.) If the specifier is not used, all indexes starting with the B index are used in the lookup.
Field;Opt_spec:File:Pfield_1: Pfield_2: ... :Pfield_n The pointed-to block is reached after relational jumps across many files. The first jump is accomplished with a lookup into File.

REF: See Opt_spec.

Mult_field_1:Mult_field_2: ... :Mult_field_n:Pfield The pointed-to block is reached after descending into subfiles of the Primary file and finally a relational jump via a POINTER field within a subfile.
Syntax for Pointer Link—Navigating Via Form Only Fields

Form-only fields can also be used to relationally link blocks.

In the formats in Table 75:

Form_only and Pform_only are three-piece comma-delimited strings that uniquely identify Form-only fields on the form. They have the following format:

    Field_id,Block_id,Page_id

Where:

Table 75: ScreenMan Forms—Valid Formats for Form Only Fields

Format Explanation
FO(Pform_only) The POINTER-type Form-only field is a POINTER to the file associated with the block being defined. The contents of the Form-only field determines the record to display in the pointed-to file.
FO(Pform_only):Pfield_1: ... Pfield_n The pointed-to file is reached after relational jumps across many files. Here, the POINTER-type Form-only field points to File #1 that contains a Pfield_1 that points to File #2, etc. Finally, Pfield_n points to the file associated with the block being defined.
FO(Form_only);Opt_spec The value of the Form-only field is used to do a lookup into the file associated with the block.

You can control how the lookup is done by using any of the following optional specifiers (Opt_spec):

;I Use the Internal form of the field value for the lookup
;L Allow LAYGO
;IX(xref list) Use specific IndeX(es) in the lookup. (For example ;IX(B^C) specifies that the B and C index should be used.) If this specifier is not used, all indexes starting with the B index are used in the lookup.
FO(Form_only);Opt_spec:File: Pfield_1: ... Pfield_n The pointed-to file is reached after relational jumps across many files. The first jump is accomplished with a lookup.

REF: See Opt_spec.

 


Reviewed/Updated: May 2026