2009/12/1 火曜日

CL サブルーチン

Filed under: CL — takahashi @ 17:54:22

CL内でもRPGのBEGSRで定義するようなサブルーチンが定義できると、同一処理等が発生する場合は
便利ですよね。
V5R4から、CALLSUBRとSUBRコマンドが新しく増えて、CL内でもサブルーチンが定義できるようになりました

RPGに例えるならば
CALLSUBRコマンドがEXSR
SUBRコマンドがBEGSRに該当するイメージです。

以下に例を書いてみました。
SHOW_TIMEサブルーチンを定義してみました。
サブルーチンでは、タイムスタンムプを取得して、表示しています

RPG:
  1. 0012.00              PGM                                                                     
  2. 0013.00                                                                                     
  3. 0014.00              DCL        VAR(&DATETIME) TYPE(*CHAR) LEN(20)                           
  4. 0015.00              DCL        VAR(&DATETIME14) TYPE(*CHAR) LEN(14)                         
  5. 0016.00                                                                                     
  6. 0017.00              CALLSUBR   SUBR(SHOW_TIME)                                             
  7. 0018.00                                                                                     
  8. 0019.00              CALLSUBR   SUBR(SHOW_TIME)                                             
  9. 0020.00                                                                                     
  10. 0021.00  /*-----------------------------------------------------------------------*/         
  11. 0022.00  /*    タイムスタンプ取得                                                 */         
  12. 0023.00  /*-----------------------------------------------------------------------*/         
  13. 0024.00              SUBR       SUBR(SHOW_TIME)                                             
  14. 0025.00                                                                                     
  15. 0026.00                  RTVSYSVAL  SYSVAL(QDATETIME) RTNVAR(&DATETIME)                     
  16. 0027.00                  SNDPGMMSG  MSG(&DATETIME)                                           
  17. 0028.00                                                                                     
  18. 0029.00              ENDSUBR                                                                 
  19. 0030.00                                                                                     
  20. 0031.00              ENDPGM                                                                 
  21. 0032.00              RETURN

コメントはまだありません »

コメントはまだありません。

この投稿へのコメントの RSS フィード。 TrackBack URL

コメントする

HTML convert time: 0.509 sec. Powered by WordPress ME