code

Name
Astradyne (UK) Ltd
Scriptlanguage
Plain Text
Tabwidth
4
Date
Sun, 12 May 2013 14:53:26 +0000
IP
192.168.0.1

Traditionally most programmers tend to use conditioning indicators within their display file DDS to control the use of attributes such as colour, reverse image, blink, position cursor, etc. While this is straightforward, it can be cumbersome and cause confusion when debugging your program and there is another way.
<BR><BR>
By using what are known as P-Fields, you can assign a single character field to an input or output field on your display file and then assign the P-field the hexadecimal attribute value that you want to assign the field. The example code below shows how to assign and use P-fields.

  1. DDS SNIPPET
  2. ===========
  3.  
  4.     A            MYFLD        79A  O  3  2
  5.     A                                      DSPATR(&MYFLDATR)
  6.     A            MYFLDATR      1A  P
  7.  
  8.  
  9. RPG IV ATTRIBUTE CONSTANTS
  10. ==========================
  11.  
  12.     D* White                                         
  13.     D Wht            C                  CONST(X'22')
  14.     D WhtUnd          C                  CONST(X'26')
  15.     D WhtRev          C                  CONST(X'23')
  16.     D WhtRevSep      C                  CONST(X'33')
  17.                                                      
  18.     D* Green                                         
  19.     D Grn            C                  CONST(X'20')
  20.     D GrnRev          C                  CONST(X'21')
  21.     D GrnUnd          C                  CONST(X'24')
  22.     D GrnUndRev      C                  CONST(X'25')
  23.                                                      
  24.     D* Red                                           
  25.     D Red            C                  CONST(X'28')
  26.     D RedRev          C                  CONST(X'29')
  27.     D RedHi          C                  CONST(X'2A')
  28.     D RedHiRev        C                  CONST(X'2B')
  29.     D RedUnd          C                  CONST(X'2C')
  30.     D RedUndRev      C                  CONST(X'2D')
  31.     D RedUndBln      C                  CONST(X'2E')
  32.                                                        
  33.     D* Turquoise (CS by default)                     
  34.     D Trq            C                  CONST(X'30')
  35.     D TrqRev          C                  CONST(X'31')
  36.     D TrqUnd          C                  CONST(X'34')
  37.     D TrqUndRev      C                  CONST(X'35')
  38.                                                        
  39.       * Yellow (CS by default)                         
  40.     D Ylw            C                  CONST(X'B2')
  41.     D YlwRev          C                  CONST(X'B3')
  42.     D YlwUnd          C                  CONST(X'B6')
  43.                                                        
  44.     D* Pink                                           
  45.     D Pnk            C                  CONST(X'38')
  46.     D PnkRev          C                  CONST(X'39')
  47.     D PnkUnd          C                  CONST(X'3C')
  48.     D PnkUndRev      C                  CONST(X'3D')
  49.                                                        
  50.     D* Blue                                           
  51.     D Blu            C                  CONST(X'3A')
  52.     D BluRev          C                  CONST(X'3B')
  53.     D BluUnd          C                  CONST(X'3E')
  54.                                                      
  55.                                                      
  56. RPG IV USAGE EXAMPLE
  57. ====================
  58.     C* Set the field to Red + Reverse Image...       
  59.     C                  Eval      MyFldAtr = RedRev 
  60.  
  61.