Program To System Fields
Contents
Program To System Fields
Introduction To P Fields
Program to system fields (referenced from here out as P fields) can be used to emphasize field data on display files.
These can be used as an alternative to using indicator controlled display attributes.
P fields are one-byte codes passed to the display file at run-time.
Indicator controlled attributes must be determined at compile time.
In order to utilize the P field attributes the display file must contain a field that is one byte character for the field you wish to alter attributes for.
A myfield 20A B 10 6DSPATR(&fldattr) A fldattr 1A P
So if you wished to display the contents of myfield in Red with underlines, you could do so by using the following code in your RPG program.
/free fldattr=x'2C'; /end-free
For a good write-up on P fields & their usage Click Here!
Program To System Fields List
Here is a work-in-progress list of constant names for the various program-to-system field values (also known as P Fields):
Attributes | Hexadecimal Value |
---|---|
Green | x'20' |
Green/Reverse Image | x'21' |
White | x'22' |
White/Reverse Image | x'23' |
Green/Underlined | x'24' |
Green/Underlined/Reverse Image | x'25' |
White/Underlined | x'26' |
Non-Display | x'27' |
Red | x'28' |
Red/Reverse Image | x'29' |
Red/Highlighted | x'2A' |
Red/Highlighted/Reverse Image | x'2B' |
Red/Underlined | x'2C' |
Red/Underlined/Reverse Image | x'2D' |
Red/Underlined/Blinking | x'2E' |
Non-display | x'2F' |
Turquoise/Column Separators | x'30' |
Turquoise/Column Separators/Reverse Image | x'31' |
Yellow/Column Separators | x'32' |
White/Reverse Image/Column Separators | x'33' |
Turquoise/Underlined/Column Separators | x'34' |
Turquoise/Underlined/Column Separators/Reverse Image | x'35' |
Yellow/Underlined/Column Separators | x'36' |
Non-display | x'37' |
Pink | x'38' |
Pink/Reverse Image | x'39' |
Blue | x'3A' |
Blue/Reverse Image | x'3B' |
Pink/Underlined | x'3C' |
Pink/Underlined/Reverse Image | x'3D' |
Blue/Underlined | x'3E' |
Non-display | x'3F' |
Protected Fields | |
Green | x'A0' |
Green/Reverse Image | x'A1' |
White | x'A2' |
White/Reverse Image | x'A3' |
Green/Underlined | x'A4' |
Green/Underlined/Reverse Image | x'A5' |
White/Underlined | x'A6' |
Non-display | x'A7' |
Red | x'A8' |
Red/Reverse Image | x'A9' |
Red/Highlighted | x'AA' |
Red/Highlighted/Reverse Image | x'AB' |
Red/Underlined | x'AC' |
Red/Underlined/Reverse Image | x'AD' |
Red/Underlined/Blinking | x'AE' |
Non-display | x'AF' |
Turquoise/Column Separators | x'B0' |
Turquoise/Column Separators/Reverse Image | x'B1' |
Yellow/Column Separators | x'B2' |
White/Column Separators/Reverse Image | x'B3' |
Turquoise/Column Separators/Underlined | x'B4' |
Turquoise/Column Separators/Reverse Image/Underlined | x'B5' |
Yellow/Column Separators/Underlined | x'B6' |
Non-display | x'B7' |
Pink | x'B8' |
Pink/Reverse Image | x'B9' |
Blue | x'BA' |
Blue/Reverse Image | x'BB' |
Pink/Underlined | x'BC' |
Pink/Underlined/Reverse Image | x'BD' |
Blue/Underlined | x'BE' |
Non-display | x'BF' |
Sample Data Structure Definition
/DEFINE PFIELDS *--------------------------------------------------------------------- * Valid P-field values *--------------------------------------------------------------------- D PFIELDSDS DS D @GRN 1A Inz(x'20') D @GRN_RI 1A Inz(x'21') D @WHT 1A Inz(x'22') D @WHT_RI 1A Inz(x'23') D @GRN_UL 1A Inz(x'24') D @GRN_UL_RI 1A Inz(x'25') D @WHT_UL 1A Inz(x'26') D @ND 1A Inz(x'27') D @RED 1A Inz(x'28') D @RED_RI 1A Inz(x'29') D @RED_HI 1A Inz(x'2A') D @RED_HI_RI 1A Inz(x'2B') D @RED_UL 1A Inz(x'2C') D @RED_UL_RI 1A Inz(x'2D') D @RED_UL_BL 1A Inz(x'2E') D @ND_2F 1A Inz(x'2F') D @TRQ_CS 1A Inz(x'30') D @TRQ_CS_RI 1A Inz(x'31') D @YLW_CS 1A Inz(x'32') D @WHT_RI_CS 1A Inz(x'33') D @TRQ_UL_CS 1A Inz(x'34') D @TRQ_UL_RI_CS 1A Inz(x'35') D @YLW_UL_CS 1A Inz(x'36') D @ND_37 1A Inz(x'37') D @PNK 1A Inz(x'38') D @PNK_RI 1A Inz(x'39') D @BLU 1A Inz(x'3A') D @BLU_RI 1A Inz(x'3B') D @PNK_UL 1A Inz(x'3C') D @PNK_UL_RI 1A Inz(x'3D') D @BLU_UL 1A Inz(x'3E') D @ND_3F 1A Inz(x'3F') * * Protected fields * D @PGRN 1A Inz(x'A0') D @PGRN_RI 1A Inz(x'A1') D @PWHT 1A Inz(x'A2') D @PWHT_RI 1A Inz(x'A3') D @PGRN_UL 1A Inz(x'A4') D @PGRN_UL_RI 1A Inz(x'A5') D @PWHT_UL 1A Inz(x'A6') D @PND 1A Inz(x'A7') D @PRED 1A Inz(x'A8') D @PRED_RI 1A Inz(x'A9') D @PRED_HI 1A Inz(x'AA') D @PRED_HI_RI 1A Inz(x'AB') D @PRED_UL 1A Inz(x'AC') D @PRED_UL_RI 1A Inz(x'AD') D @PRED_UL_BL 1A Inz(x'AE') D @ND_AF 1A Inz(x'AF') D @PTRQ_CS 1A Inz(x'B0') D @PTRQ_CS_RI 1A Inz(x'B1') D @PYLW_CS 1A Inz(x'B2') D @PWHT_RI_CS 1A Inz(x'B3') D @PTRQ_UL_CS 1A Inz(x'B4') D @PTRQ_UL_RI_CS 1A Inz(x'B5') D @PYLW_UL_CS 1A Inz(x'B6') D @ND_B7 1A Inz(x'B7') D @PPNK 1A Inz(x'B8') D @PPNK_RI 1A Inz(x'B9') D @PBLU 1A Inz(x'BA') D @PBLU_RI 1A Inz(x'BB') D @PPNK_UL 1A Inz(x'BC') D @PPNK_UL_RI 1A Inz(x'BD') D @PBLU_UL 1A Inz(x'BE') D @ND_BF 1A Inz(x'BF') D PFIELDS 1 64A D PFIELD 1A Dim(64) Overlay(PFIELDS)