RPG

390. プログラム中で数字を編集する%EDITC

組込み関数 %EDITCは数値を編集コードで編集して文字値として
戻してくれる。
数字は出力仕様書やDDSで編集できるのに何の役に立つのだろうと
思うかも知れないがCGI(=Common Gateway Interface)を
作った人であればよくわかるはずである。
CGIの場合はHTMLへ文字だけしか戻せないので
数字も編集してさらに文字に変換する必要があるが
%EDITCを使うとそれが一回の演算操作だけで編集して
さらに文字に変換することができる。

[例: %EDITCを使うRPG ]

 

ソースはこちらから

0001.00 H DFTNAME(TESTEDTC) DATEDIT(*YMD/)                                      
0002.00 F**********  数値の内部編集 ******************************************* 
0003.00 F*                                                                      
0004.00 F********************************************************************** 
0005.00 D TANKA           S              7P 0 INZ(1500)                         
0006.00 D URIAGE          S              9P 0 INZ(788000)                       
0007.00 D DSP40           S             40A   INZ                               
0008.00                                                                         
0009.00  /FREE                                                                  
0010.00    DSP40 = ' 売上金額は ' + %TRIM(%EDITC(URIAGE:'J')) + ' 円です。 ';   
0011.00  /END-FREE                                                              
0012.00 C     DSP40         DSPLY                   ANS               1         
0013.00 C                   SETON                                        LR     
0014.00 C                   RETURN  


                                           

[解説]

売上金額: URIAGE を編集コード J で編集している。
%EDITCの結果は文字なのでそのまま + で文字列に結合することができる。

[実行結果]

                         プログラム・メッセージの表示

DSPLY   売上金額は 788,000 円です。

  応答を入力して,実行キーを押してください。 
    応答 . . .                               
                                             
                                             
 F3= 終了    F12= 取消し                     

ところで組込み関数とともにフリー・フォーマットには見慣れてきただろうか?
実は組込み関数の紹介とともに重要なのはフリー・フォーマットに見慣れることである。
文字列の結合の処理は上記のようにフリー・フォーマットであれば
直感的でとてもわかりやすいソースになる。
フリー・フォーマットはこのように部分的に使えるので
いきなりすべてをフリー・フォーマットで無理やり記述するのではなく
必要に応じて部分的にわかりやすくするために使うことをお奨めする。