AS/400での画面設計に悩める人へ
AS/400は非常に良いマシンです。
コーディングもRPG4でフリーフォーマットで記述すると
VBやJavaと差がないような構造的な書き方が出来ますし
最近ではオープンソースの取り込みとしてPythonやPHPも動作するようです。
しかし、画面の設計がサクサクと書きづらいという難点があります。
慣れの問題かもしれませんが、慣れるまでの手間を考えると・・・
画面の開発は、Visual studioの様にドラッグドロップで配置していけると
非常にわかりやすく効率的に行えますよね。
そんなVisual studioでいうところのフォームデザイナーのAS/400版がSTRSDAです。
ドラッグドロップや、ツールボックスからの配置は出来ませんが
十分な機能を持っています。
便利な開発環境とかが揃っている現代では、DSPFの直書きというのは
馴染みにくい一面があると思います。
実際に昔の自分がそうでした。
何かもっと良い方法はないかなと色々探して辿り着きました。
DSPF設計は全てコツコツとコーディングしていたという方は
この機会にぜひ使用して頂ければと思い、この記事を書いています。
DSPF開発速度の向上
STRSDAを使いこなすと、画面設計の速度が上がります。
見たままの画面を変更出来るというのは、やはりわかりやすくて良いですね。
実践して覚えたから言えること
私自身は、STRSDAを知るまでは地道にコツコツと直書きしていました。
もっと良い方法はないかと調べる中で、この機能を知り
それからはほぼSTRSDAで画面設計をしています。
設計の時間は大幅に短縮されました。
ただ、コードで修正する方が早い場合もありますので
両方使える様になって、状況に合わせて使い分けをするのが良いと思います。
全部の項目を1行ずつずらすとか、そういうのはSTRSDAからでは非効率ですね。
試してみよう
STRSDAを試してみましょう。
操作方法も直感的でシンプルです。
STRSDA起動方法

STRSDA SRCFILE(LIB/QDDSSRC) SRCMBR(DSPF) OBJLIB(OBLIB)


ちなみにSTRSDAのOPTION指定で、SELECTではなく1を指定すると
画面の設計画面にダイレクトに遷移します

すでにレコード様式がある場合は、
変更したいレコード様式のOPT欄に「12」を入力して実行キー
新たにレコード様式を追加したい場合は、
OPTに「1」、レコードに「レコード様式名」を入力して実行キー


タブメニュー、ポップアップウィンドウ、サブファイル
今回は一番使用用途が多いRECORDを指定してます

この真っ黒なキャンバスの上に、
優雅に画面を設計していきます
設計画面での基本的な操作方法
+の後にオプションを指定すると、
入力した位置に入出力項目や、出力項目を配置出来ます。
桁の指定はオプションの文字数、または()内に桁数を指定することで可能です。
例 4桁の文字型入出力項目を配置
+BBBB
+B(4)
+6 | 数値型 | 出力項目 |
+9 | 数値型 | 入出力項目 |
+O | 文字型 | 出力項目 |
+B | 文字型 | 入出力項目 |
‘固定文字列’ | 固定文字列を配置 |
*DATE | システム日付の出力(YY/MM/DD) |
*TIME | システム時間の出力(HH:MM:SS) |
項目の左で< | <の数だけ項目を左に移動 |
項目の右で> | >の数だけ項目を右に移動 |
項目の左でD | 該当項目を削除 |
項目の左で- | 項目の選択(移動または、コピー対象の選択) |
任意の位置で= | -で指定した項目を移動 |
任意の位置で== | -で指定した項目をコピー |
項目の左で? | 項目名と桁の編集 |
項目の左で* | 項目の属性編集 |
F1 | ヘルプ表示 |
F3 | 編集モード終了 |
F4 | 項目の処理 |
F6 | 作業画面の条件設定 |
F9 | 表示するレコード様式の追加 |
F10 | データベースファイルの選択 |
F11 | 画面下に表示される削除したカラムのリスト表示/非表示 |
F12 | 編集モード終了 |
F14 | 列番号、行番号の表示 |
F15 | SFLPAGやSFLLINを設定 |
F17 | SDA画面の印刷 |
F18 | 次の項目にカーソルを移動 |
F19 | 前の項目にカーソルを移動 |
F20 | サブファイルCTLを緑に反転 |
F21 | サブファイルCTLを非表示 |
レコード様式の追加表示(F9)
複数のレコード様式を同時に表示しながらの設計も可能です。
これが非常に便利ですね。
例として、
ヘッダーのレコード様式
コンテンツのレコード様式
フッターのレコード様式
この3つを同時に表示してみます。

手抜き感が出てるとか言わない
レコード様式(HEAD)

レコード様式(MAIN)

手抜きとか(ry
レコード様式(FOOT)
ではこれを重ねてみましょう。
まずはヘッダーのレコード様式を表示した状態でF9を押下




追加レコード様式にメインコンテンツを設定して実行キー


編集モードを抜けるときは注意してください。
このオプションがY指定になっていると、ソースを保存した時点でコンパイルが動作します。