5250エミュレータ画面は、基本的に80×24のサイズになっていて、小規模な業務系アプリではまったく問題なく、必要なフィールドを画面へ配備できるのですが、コメントなど画面幅を超える長さをフィールドをメンテする場合、どうしたらいいのだろう? という疑問を解決したときの話です。
まずは、1,496桁の長さのフィールドを準備しました(コメント3)。
A UNIQUE A R RECTS00 TEXT('テストTABLE') A* A NUM 3S 0 COLHDG('NUM') A COMMENT1 120A COLHDG('コメント1') A COMMENT2 120O COLHDG('コメント2') A COMMENT3 1496O COLHDG('コメント3') A K NUM
次に画面ファイルの定義です。
キーワードCNTFLDにて、折り返し桁数を指定することができました!
下記の例では、74桁目で指定しました。
A D1COM3 R B 03 04REFFLD(COMMENT3) A TEXT('コメント3') A CNTFLD(74) A OVRDTA OVRATR A DSPATR(UL)
CNTFLDを指定した画面をメンテするアプリケーションを作成し、実行してみると、下記のように1画面内で1つの長い項目をメンテできるようになりました!
74桁目で折り返しされていることがわかるかと思います。
注意事項
フィールド名が長すぎると、UPDDTAコマンドが使用できなくなります(データ入力画面に入りきらない場合のみ)。
> UPDDTA TSZ15PF 一部のフィールドがデータ入力画面に入りきらない。 DFUプログラムを保管または実行することができない。