Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
1
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

@ushiday

外部記述ALIASの使用

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

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
1
Help us understand the problem. What are the problem?