読者です 読者をやめる 読者になる 読者になる

タイガー!タイガー!じれったいぞー!(SE編)

AS400,WAS,GlassFish,Java,JavaEE,JSF等の開発における日々の気づきをまとめたブログ(備忘録)。

【AS400】DSPF-ユーザー定義編集コード

EDTCDEについて

AS400の画面ファイルにて、EDTCDE(編集コード)をよく使われることと思います。
EDTCDEは、数値を読みやすくするためのカンマ編集などを記述するためのコードのこと。

iSeries Infomation Center - DDS 解説書: 表示装置ファイル - 表示装置ファイルのEDTCDEキーワード

コード例としては、下記のような感じです。EDTCDEのJは、カンマ付き数値。ただし、5250画面では、マイナス数値の符号が、右側になってしまいますが・・・(ex: 123,456 100-)。

A                                 03 02' 値1 :'       
A                                      DSPATR(HI)      
A            D2VAL1         3  0O    +1                
A                                      TEXT(' 値1 ')  
A                                      OVRDTA          
A                                      EDTCDE(J)       

ユーザー独自定義の作成

さらに、このEDTCDEではユーザー独自定義の表示記述を設定できるようになっています!

EDTCDE(5)~EDTCDE(9)がユーザー定義可能な領域のようです。

まずは、WRKEDTDコマンドにて登録されている内容を確認できます。

WRKEDTD EDTD(*ALL)

今回、YY/MM/DD と YY/MM(MM/DD) の独自定義を作成しました。

EDTCDE(5)作成 - YY/MM/DD
 CRTEDTD EDTD(5) INTMASK('0  /  /  ') ZEROBAL(*NO)      
         TEXT(' 日付表示用書式  YY/MM/DD  0=BLANK')
EDTCDE(6)作成 - YY/MM(MM/DD)
 CRTEDTD EDTD(6) INTMASK('0  /  ') ZEROBAL(*NO)                   
         TEXT('日付表示用書式  YY/MM  または  MM/DD  0=BLANK') 
DSPFでの使い方
     A            S1YYMM         4  0O 07 67                            
     A                                      TEXT('更新年月') 
     A                                      EDTCDE(6)      

5250画面は、領域に制限があるので、こういう省略して表示できる機能は、本当に助かりますね!