code

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

This technique shows an example of assigning names to the standard *INxx conditioning indicators available within an ILE RPG IV program. Naming indicators allows for easier understanding and readability of your programs.

  1.     ** ------------------------------------------------------------
  2.     ** D A T A  S T R U C T U R E S
  3.     ** ------------------------------------------------------------
  4.  
  5.     ** Named Indicators
  6.     D IndPtr          S              *  Inz(%Addr(*In))
  7.     D IndAra          DS            99    Based(IndPtr)
  8.     D  F3                    3      3
  9.     D  F5                    5      5
  10.     D  F12                  12    12
  11.     D  MsgSflEnd            71    71
  12.     D  SflDsp                72    72
  13.     D  SflEnd                73    73
  14.     D  File_Record          91    91
  15.  
  16.     ** ------------------------------------------------------------
  17.     ** G E N E R A L  W O R K  F I E L D S
  18.     ** -------------------------------------------------------------
  19.  
  20.     D Yes            c                  Const('1')
  21.     D No              c                  Const('0')
  22.     D True            s              1    Inz(Yes)
  23.     D False          s              1    Inz(No)
  24.  
  25.     D Found          s              1    Inz(No)
  26.     D Not_Found      s              1    Inz(Yes)
  27.  
  28.     D Pressed        s              1    Inz(No)
  29.  
  30.     ** -------------------------------------------------------------
  31.     ** C A L C U L A T I O N  S P E C I F I C A T I O N S
  32.     ** -------------------------------------------------------------
  33.  
  34.     ** Check which function key was pressed...
  35.     C                  Select
  36.     C                  When      F3 = Pressed
  37.     C                  ...
  38.     C                  When      F5 = Pressed
  39.     C                  ...
  40.     C                  When      F12 = Pressed
  41.     C                  ...
  42.     C                  Other
  43.     C                  ...
  44.     C                  EndSl
  45.    
  46.     ** Load all records to a subfile...
  47.     C    *LoVal        SetLL    MyFile
  48.     C                  DoU      File_Record = Not_Found
  49.     C                  Read      MyFile                                91
  50.     C                  If        File_Record = Found
  51.     C                  ...
  52.     C                  EndIf
  53.     C                  EndDo
  54.    
  55.     C                  Eval      SflEnd = True
  56.