LoginSignup
1

More than 5 years have passed since last update.

V7R1からは、外部記述に定義したALIASがRPGでも使用できる様になっています。SQLでは長いフィールド名を使う方がしっくり来るので、Open系言語との連携するRPGなどでは、統一した方が混乱も無いかもしれませんね。

ITEM.dds
     A*****************************************************************
     A*S  販売管理システム                                         *
     A*SS 受発注管理                                               *
     A*****************************************************************
     A*   ITEM     商品                      XX/XX/XX  CSC)XXXX  *
     A*****************************************************************
     A                                      UNIQUE
     A          R ITEMR                     TEXT('商品マスター')
     A            CODE           5S 0       COLHDG('コード')
     A                                      ALIAS(ITEM_CODE)
     A            KANA          60O         COLHDG('カナ')
     A                                      ALIAS(ITEM_ZENKAKU_KANA)
     A            HANKAN        60A         COLHDG('半角カナ')
     A                                      ALIAS(ITEM_HANKAKU_KANA)
     A            NAME          60O         COLHDG('名称')
     A                                      ALIAS(ITEM_NAME)
     A            VENDC          5S 0       COLHDG('仕入先コード')
     A                                      ALIAS(ITEM_VENDOR_CODE)

USR402R.rpgle
     H****************************************************************
     H*-‚------------------------------*
     H*-‚---<<日付・著作権    >>-----*
     H*-‚------------------------------*
     H DATEDIT(*YMD)
     H COPYRIGHT('(C) ushiday - ')
     H*-‚------------------------------*
     H*-‚---<<コンパイル条件  >>-----*
     H*-‚------------------------------*
     H DFTACTGRP(*NO) ACTGRP(*NEW)
     H OPTION(*NOUNREF)
     H BNDDIR('QC2LE')
     F*-š---<<ファイル定義   >>-----*
     FITEM      IF   E           K DISK
     D*-š---<<変数定義 >>-----*
     D*
     D REC           E DS                  EXTNAME(ITEM : *INPUT)
     D                                     QUALIFIED
     D                                     ALIAS
     D*
     D print           PR                  EXTPROC('print')                     標準出力関数
     D    msg                      1000A   VARYING CONST
     C*-‚------------------------------*
     C*-‚---<<メインルーチン  >>-----*
     C*-‚------------------------------*
      /FREE
           print ('プログラム開始') ;

           //読取り
           READ ITEM REC  ;

           IF %EOF ;
               print ('レコードありません') ;
           ELSE  ;
               print ('商品名は' + REC.ITEM_NAME   )    ;
           ENDIF ;

           print ('プログラム終了') ;
           //終了
           *INLR = *ON    ;
           RETURN        ;

      /END-FREE
     P****************************************************************
     P** < print             >: 標準出力                          **
     P****************************************************************
     P print           B                   EXPORT
     D print           PI
     D    msg                      1000A   VARYING CONST
     D printf          PR              *   EXTPROC('printf')
     D    template                     *   VALUE OPTIONS(*STRING)
     D    string                       *   VALUE OPTIONS(*STRING)
     D    dummy                        *   VALUE OPTIONS(*NOPASS)
     D*
     D NEWLINE         C                   X'15'
     D*タイムスタンプ
     D WTIMESTAMP      S               Z
     D WDATE8          S              8S 0
     D WTIME6          S              6S 0
      /FREE
          WTIMESTAMP = %TIMESTAMP()   ;
          WDATE8     = %DEC(%DATE(WTIMESTAMP) : *ISO );
          WTIME6     = %DEC(%TIME(WTIMESTAMP) : *HMS );
          printf ( %EDITW(WTIME6:'  :  :  ')+ ' %s' + NEWLINE : msg) ;
      /END-FREE
     P                 E

●実行結果
2015-12-04_184943.png

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1