Difference between revisions of "Program To System Fields"

From MidrangeWiki
Jump to: navigation, search
 
(Introduction To P Fields)
 
(7 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 
[[Category:Quick Reference]]
 
[[Category:Quick Reference]]
=Program To System Fields List=
+
[[Category:RPG]]
Here is a work-in-progress list of constant names for the various program-to-system field (P-field) values:
+
= 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 in display files. 
 +
 
 +
They are an alternative to using indicator controlled display attributes. 
 +
 
 +
Indicator controlled attributes are determined at compile time, while P fields are evaluated at run-time, allowing
 +
dynamic updating of display fields.
 +
 
 +
To use the P-field attributes, a display file field must contain the DSPATR keyword referencing the P-field:
 +
 
 +
 
 +
<pre>
 +
A            myfield      20A  B 10  6DSPATR(&fldattr)
 +
A            fldattr        1A  P
 +
</pre>
 +
E.g. to display the contents of <i>myfield</i> underlined in red, use the following code:
 +
<pre>
 +
/free
 +
  fldattr=x'2C';
 +
/end-free
 +
</pre>
 +
 
 +
For a good write-up on P fields & their usage [http://www.itjungle.com/fhg/fhg101304-story01.html Click Here!]<br>
 +
 
 +
== 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):
 +
<table border="normal">
 +
<tr>
 +
  <th>Attributes</th>
 +
  <th>Hexadecimal Value</th>
 +
</tr>
 +
<tr>
 +
  <td>Green</td>
 +
  <td align="center">x'20'</td>
 +
</tr>
 +
<tr>
 +
  <td>Green/Reverse Image</td>
 +
  <td align="center">x'21'</td>
 +
</tr>
 +
<tr>
 +
  <td>White</td>
 +
  <td align="center">x'22'</td>
 +
</tr>
 +
<tr>
 +
  <td>White/Reverse Image</td>
 +
  <td align="center">x'23'</td>
 +
</tr>
 +
<tr>
 +
  <td>Green/Underlined</td>
 +
  <td align="center">x'24'</td>
 +
</tr>
 +
<tr>
 +
  <td>Green/Underlined/Reverse Image</td>
 +
  <td align="center">x'25'</td>
 +
</tr>
 +
<tr>
 +
  <td>White/Underlined</td>
 +
  <td align="center">x'26'</td>
 +
</tr>
 +
<tr>
 +
  <td>Non-Display</td>
 +
  <td align="center">x'27'</td>
 +
</tr>
 +
<tr>
 +
  <td>Red</td>
 +
  <td align="center">x'28'</td>
 +
</tr>
 +
<tr>
 +
  <td>Red/Reverse Image</td>
 +
  <td align="center">x'29'</td>
 +
</tr>
 +
<tr>
 +
  <td>Red/Highlighted</td>
 +
  <td align="center">x'2A'</td>
 +
</tr>
 +
<tr>
 +
  <td>Red/Highlighted/Reverse Image</td>
 +
  <td align="center">x'2B'</td>
 +
</tr>
 +
<tr>
 +
  <td>Red/Underlined</td>
 +
  <td align="center">x'2C'</td>
 +
</tr>
 +
<tr>
 +
  <td>Red/Underlined/Reverse Image</td>
 +
  <td align="center">x'2D'</td>
 +
</tr>
 +
<tr>
 +
  <td>Red/Underlined/Blinking</td>
 +
  <td align="center">x'2E'</td>
 +
</tr>
 +
<tr>
 +
  <td>Non-display</td>
 +
  <td align="center">x'2F'</td>
 +
</tr>
 +
<tr>
 +
  <td>Turquoise/Column Separators</td>
 +
  <td align="center">x'30'</td>
 +
</tr>
 +
<tr>
 +
  <td>Turquoise/Column Separators/Reverse Image</td>
 +
  <td align="center">x'31'</td>
 +
</tr>
 +
<tr>
 +
  <td>Yellow/Column Separators</td>
 +
  <td align="center">x'32'</td>
 +
</tr>
 +
<tr>
 +
  <td>White/Reverse Image/Column Separators</td>
 +
  <td align="center">x'33'</td>
 +
</tr>
 +
<tr>
 +
  <td>Turquoise/Underlined/Column Separators</td>
 +
  <td align="center">x'34'</td>
 +
</tr>
 +
<tr>
 +
  <td>Turquoise/Underlined/Column Separators/Reverse Image</td>
 +
  <td align="center">x'35'</td>
 +
</tr>
 +
<tr>
 +
  <td>Yellow/Underlined/Column Separators</td>
 +
  <td align="center">x'36'</td>
 +
</tr>
 +
<tr>
 +
  <td>Non-display</td>
 +
  <td align="center">x'37'</td>
 +
</tr>
 +
<tr>
 +
  <td>Pink</td>
 +
  <td align="center">x'38'</td>
 +
</tr>
 +
<tr>
 +
  <td>Pink/Reverse Image</td>
 +
  <td align="center">x'39'</td>
 +
</tr>
 +
<tr>
 +
  <td>Blue</td>
 +
  <td align="center">x'3A'</td>
 +
</tr>
 +
<tr>
 +
  <td>Blue/Reverse Image</td>
 +
  <td align="center">x'3B'</td>
 +
</tr>
 +
<tr>
 +
  <td>Pink/Underlined</td>
 +
  <td align="center">x'3C'</td>
 +
</tr>
 +
<tr>
 +
  <td>Pink/Underlined/Reverse Image</td>
 +
  <td align="center">x'3D'</td>
 +
</tr>
 +
<tr>
 +
  <td>Blue/Underlined</td>
 +
  <td align="center">x'3E'</td>
 +
</tr>
 +
<tr>
 +
  <td>Non-display</td>
 +
  <td align="center">x'3F'</td>
 +
</tr>
 +
<tr>
 +
  <td> </td>
 +
  <td align="center"> </td>
 +
</tr>
 +
<tr>
 +
  <th colspan=2>Protected Fields</th>
 +
</tr>
 +
<tr>
 +
  <td>Green</td>
 +
  <td align="center">x'A0'</td>
 +
</tr>
 +
<tr>
 +
  <td>Green/Reverse Image</td>
 +
  <td align="center">x'A1'</td>
 +
</tr>
 +
<tr>
 +
  <td>White</td>
 +
  <td align="center">x'A2'</td>
 +
</tr>
 +
<tr>
 +
  <td>White/Reverse Image</td>
 +
  <td align="center">x'A3'</td>
 +
</tr>
 +
<tr>
 +
  <td>Green/Underlined</td>
 +
  <td align="center">x'A4'</td>
 +
</tr>
 +
<tr>
 +
  <td>Green/Underlined/Reverse Image</td>
 +
  <td align="center">x'A5'</td>
 +
</tr>
 +
<tr>
 +
  <td>White/Underlined</td>
 +
  <td align="center">x'A6'</td>
 +
</tr>
 +
<tr>
 +
  <td>Non-display</td>
 +
  <td align="center">x'A7'</td>
 +
</tr>
 +
<tr>
 +
  <td>Red</td>
 +
  <td align="center">x'A8'</td>
 +
</tr>
 +
<tr>
 +
  <td>Red/Reverse Image</td>
 +
  <td align="center">x'A9'</td>
 +
</tr>
 +
<tr>
 +
  <td>Red/Highlighted</td>
 +
  <td align="center">x'AA'</td>
 +
</tr>
 +
<tr>
 +
  <td>Red/Highlighted/Reverse Image</td>
 +
  <td align="center">x'AB'</td>
 +
</tr>
 +
<tr>
 +
  <td>Red/Underlined</td>
 +
  <td align="center">x'AC'</td>
 +
</tr>
 +
<tr>
 +
  <td>Red/Underlined/Reverse Image</td>
 +
  <td align="center">x'AD'</td>
 +
</tr>
 +
<tr>
 +
  <td>Red/Underlined/Blinking</td>
 +
  <td align="center">x'AE'</td>
 +
</tr>
 +
<tr>
 +
  <td>Non-display</td>
 +
  <td align="center">x'AF'</td>
 +
</tr>
 +
<tr>
 +
  <td>Turquoise/Column Separators</td>
 +
  <td align="center">x'B0'</td>
 +
</tr>
 +
<tr>
 +
  <td>Turquoise/Column Separators/Reverse Image</td>
 +
  <td align="center">x'B1'</td>
 +
</tr>
 +
<tr>
 +
  <td>Yellow/Column Separators</td>
 +
  <td align="center">x'B2'</td>
 +
</tr>
 +
<tr>
 +
  <td>White/Column Separators/Reverse Image</td>
 +
  <td align="center">x'B3'</td>
 +
</tr>
 +
<tr>
 +
  <td>Turquoise/Column Separators/Underlined</td>
 +
  <td align="center">x'B4'</td>
 +
</tr>
 +
<tr>
 +
  <td>Turquoise/Column Separators/Reverse Image/Underlined</td>
 +
  <td align="center">x'B5'</td>
 +
</tr>
 +
<tr>
 +
  <td>Yellow/Column Separators/Underlined</td>
 +
  <td align="center">x'B6'</td>
 +
</tr>
 +
<tr>
 +
  <td>Non-display</td>
 +
  <td align="center">x'B7'</td>
 +
</tr>
 +
<tr>
 +
  <td>Pink</td>
 +
  <td align="center">x'B8'</td>
 +
</tr>
 +
<tr>
 +
  <td>Pink/Reverse Image</td>
 +
  <td align="center">x'B9'</td>
 +
</tr>
 +
<tr>
 +
  <td>Blue</td>
 +
  <td align="center">x'BA'</td>
 +
</tr>
 +
<tr>
 +
  <td>Blue/Reverse Image</td>
 +
  <td align="center">x'BB'</td>
 +
</tr>
 +
<tr>
 +
  <td>Pink/Underlined</td>
 +
  <td align="center">x'BC'</td>
 +
</tr>
 +
<tr>
 +
  <td>Pink/Underlined/Reverse Image</td>
 +
  <td align="center">x'BD'</td>
 +
</tr>
 +
<tr>
 +
  <td>Blue/Underlined</td>
 +
  <td align="center">x'BE'</td>
 +
</tr>
 +
<tr>
 +
  <td>Non-display</td>
 +
  <td align="center">x'BF'</td>
 +
</tr>
 +
</table>
 +
<br>
 +
== Sample Data Structure Definition ==
 +
<br>
 
<pre>
 
<pre>
 
       /DEFINE PFIELDS
 
       /DEFINE PFIELDS

Latest revision as of 18:16, 18 February 2016

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 in display files.

They are an alternative to using indicator controlled display attributes.

Indicator controlled attributes are determined at compile time, while P fields are evaluated at run-time, allowing dynamic updating of display fields.

To use the P-field attributes, a display file field must contain the DSPATR keyword referencing the P-field:


A            myfield       20A  B 10  6DSPATR(&fldattr)
A            fldattr        1A  P

E.g. to display the contents of myfield underlined in red, use the following code:

/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)