とあるSEの色々ブログ

プログラミングで全ての人を幸せに。プログラミングとITと転職と雑記と備忘録

AS400

STRSDAの使い方

投稿日:2020年3月27日 更新日:

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)
またはDSPFのソース一覧の画面で17→実行キー
1を選択して実行キー
ちなみにSTRSDAのOPTION指定で、SELECTではなく1を指定すると
画面の設計画面にダイレクトに遷移します
レコード様式一覧

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

新たにレコード様式を追加したい場合は、
OPTに「1」、レコードに「レコード様式名」を入力して実行キー

タイプ指定で色々選べます。
タブメニュー、ポップアップウィンドウ、サブファイル
今回は一番使用用途が多いRECORDを指定してます
OPTに1を入力して実行した場合
この真っ黒なキャンバスの上に、
優雅に画面を設計していきます

設計画面での基本的な操作方法

+の後にオプションを指定すると、
入力した位置に入出力項目や、出力項目を配置出来ます。
桁の指定はオプションの文字数、または()内に桁数を指定することで可能です。

例 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列番号、行番号の表示
F15SFLPAGやSFLLINを設定
F17SDA画面の印刷
F18次の項目にカーソルを移動
F19前の項目にカーソルを移動
F20サブファイルCTLを緑に反転
F21サブファイルCTLを非表示

レコード様式の追加表示(F9)

複数のレコード様式を同時に表示しながらの設計も可能です。
これが非常に便利ですね。
例として、
 ヘッダーのレコード様式
 コンテンツのレコード様式
 フッターのレコード様式

この3つを同時に表示してみます。

ヘッダーです
手抜き感が出てるとか言わない
レコード様式(HEAD)
メインコンテンツです。
レコード様式(MAIN)
フッターです。
手抜きとか(ry
レコード様式(FOOT)

ではこれを重ねてみましょう。
まずはヘッダーのレコード様式を表示した状態でF9を押下

追加したいレコード様式名を入力して実行キー
同時に表示されましたね!
さらにF9を押下
追加レコード様式にメインコンテンツを設定して実行キー
3つのレコード様式が同時に表示されました!

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

-AS400

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

ライブラリ単位の一括文字列検索

AS400で文字列を検索する際に、ソース毎に行うのは大変ですよね。 色々な分析やソース解析、影響範囲を調べることが各種システム修正を行う際には発生します。 そのような調査を行うツールが導入されていれば …

Hello AS/400

転職をきっかけにAS/400と出会いましたIBMって? ASって? 汎用機って?そんな状態から始まりました。出会いは突然で、そしてだいぶ意味不明。Z-ADDとか、CHAINとか、聞いたこともない命令群 …

ユーザー定義コマンド作成方法

コマンドの入力文字数を減らしたい visual studioや他の豪華なIDEとかでは、インテリセンスという入力補完の機能があったりしますが、AS400のコーディングや保守を行うエミュレーターにはそん …

レコードロック、ファイルロック

ファイル仕様書の指定と、CHAIN命令によってファイルのロック状態やレコードロックの状態を一覧にまとめました。 ファイルタイプIの読み取り専用ではレコードロックはかかりません。ですがオブジェクトロック …

デバッグの勧め STRISDB

RPG3のデバッグが出来る「STRISDB」の操作方法を記載します。自分への備忘録&迷えるAS/400ビギナーの方の参考になれば幸いです。 対象:自分、AS/400ビギナーの方、もしくはSTRISDB …