共通メモについて その2
仕事をしていると「メモ」って結構取りますよね。ノートに書いたり、何かの裏紙に書いたり。でも、後から見ようとすると探すのに苦労します。
また、マニュアルの同じページを何度も見て、「あ~、なんて物覚えが悪いんだオレ」って悲しくなります。それを解消したくて「メモ」を作りました。
でも、単なる「メモ」じゃ面白くないので「どの画面でメモを開いたかによって、表示するメモを変える」ことにしました。入力チェックのところでメモを開くとメモTAGが「入力チェックコード」になっています。(前回の動画にあります)検索のところでメモを開くとメモTAGが「検索コード」になります。この他にも画面やフィールドに合わせた「メモ」を用意しています。
さらに「メモ」を使った機能として、「命令コードの選択・挿入」を追加しました。
命令コードの先頭の数文字を入力して ctrl+スペースキーを押すと、該当する命令の一覧が表示され、そこから選択して挿入できます。該当命令が1つの場合は、即挿入されます。命令コードは自分で登録するので、RPG命令コードだけでなく、よく使う定型文に名前を付けて登録することもできます。
動画では、組み込み関数挿入、置換式挿入、商品コードチェックの定型文挿入を行っています。
共通メモ機能について
二年程前から、C仕様書はFFで書くようになりました。
またファイルの読み書きはSQL文で書くようになりました。
理由は見やすいし、RPG未経験者でもなんとか読める、からです。
ただ困ったことに、命令コードを他の言語と間違えます。SEUだと文法エラーになりますが、ASSGではチェックしていません。文法チェックはハードルが高いのです。
そこで考えたのが「共通メモ」です。
間違えやすい命令コードを登録しておき、コード入力時に参照出来るようにしました。
また、前回までにご紹介した入力チェックやコード検索のASSGコードも参照することが出来ます。手打ちするコードを減らすことで、文法エラーを減らすことが「共通メモ」の狙いです。
動画では下記の操作を行っています。
・入力チェックのASSGコードを入力、ctrl+C でコピー
・F2キー(共通メモ呼出しキーです)
・入力したコードを共通メモに登録(必須チェックのタイトルを付けてctrl+V)
・別フィールドの入力チェックで共通メモを呼出し、OwnCodeに挿入
では、動画をご覧ください。
画面フィールドのイベント2 検索
基幹システムの開発を始めた頃の話ですが・・・
伝票入力は、紙の伝票に手書きして、得意先コードや商品コードを調べて記入してから端末に向かって入力していました。そもそも自分の机には端末など無い時代。一台の端末を共有していました。
今ではコード検索が出来て当たり前ですね。実際にはカーソルの位置を判断して、得意先の検索なのか、商品の検索なのかを判断する、ちょっと面倒ですね。また画面のレイアウトを変更したら検索が動かない、なんて不具合が起きることも。
ASSGを使えば、そんな面倒も不具合もありません。そもそもカーソル位置はASSGコードで書かないのです。ASSGでは検索プログラムをCALLして、結果をフィールドにセットするだけです。さらにそのフィールドも置換式を使えば、同じコードが流用できます。
動画ではフィールドに検索のコードを書き、RPGコードの生成結果を確認しています。次にそのフィールドを移動してからRPGコードの生成結果を確認しています。
カーソル位置の判定が変わっているのを見てください。
では、動画をご覧ください。
画面フィールドのイベント
入力画面を作る場合、一般的には「初期化」「検索」「入力チェック」が必要になります。そしてサブルーチンとして「画面1初期化サブ」「画面1検索サブ」「画面1入力チェックサブ」などを作ります。
ASSGでもRPGコードの生成結果としてこのようなサブルーチンを作っていますが、定義の段階ではフィールド単位にRPGコードを書きます。
一番大きな理由は「置換式」が使えるからです。
例えば %FIELD はフィールド名に置換されます。
例えばASSGコードで 「IF %FIELD = *BLANK;」と書くと、RPGコードは「IF D1NMTK = *BLANK;」と生成されます。
置換式を使えば次のようなメリットがあります。
・フィールド名の間違いが無い
・定型的な処理のひな型利用ができる
・コメント挿入でソースコードが見やすくなる
使用できる置換式は次の通りです。
%ITEM :項目名称
%FIELD :フィールド名
%FIELDN : 次フィールド名
%PC :カーソル標識
%PCN :次フィールド標識
%ATR :Pフィールド
動画では2つのフィールドの入力チェックに「同じASSGコード」を書いています。RPGコードの生成結果と比較してみてください。
では、動画をご覧ください。
プログラム開発を楽にしたい
画面設計が楽になると、さらに新しい要求が沸きあがりました。
「対話型プログラムはできないか?」
欲しい機能を考えました。
・プログラムの全体像が把握しやすいこと
・画面のフィールド単位に「初期化」「検索」「入力チェック」を書けること
・必須チェックなどのお決まりのロジックは共通化できること
・画面遷移の制御は自動生成できること
補助的な機能として
・ヘルプ機能が充実していること
・SQL文の生成機能
・ノート機能
実際にはASSGを開発しながら、いろいろな機能を追加してきました。
改めて実装している機能をリストアップしてみました。
明日から主な機能をピックアップしてご紹介したいと思います。
AS400連携 | データベースフィールド情報取得(AS→PC) |
ソースファイル転送(PC→AS) | |
画面設計 | ファイルレベルキーワード |
レコードレベルキーワード | |
サブファイル対応 | |
PF01-24,PageDown/Up,ENTERの各キー動作コード作成 | |
画面デザイン(エクセルシート使用) | |
データベースフィールド参照 | |
高輝度、反転、カーソル位置付、色、フィールドキーワード | |
フィールドメモ(フィールドの要件などをメモ) | |
フィールドの初期化・検索・入力チェックの各コード作成 | |
罫線対応 | |
画面入出力ロジック生成選択(自動/手動) | |
サンプル表示(お客様打ち合わせ用) | |
帳票設計 | ファイルレベルキーワード |
レコードレベルキーワード | |
帳票デザイン(エクセルシート使用) | |
データベースフィールド参照 | |
高輝度、フィールドキーワード | |
横、縦サイズ | |
フィールドメモ(フィールドの要件などをメモ) | |
罫線対応 | |
サンプル表示(お客様打ち合わせ用) | |
エディター | データベースフィールド参照 |
画面フィールド参照 | |
帳票フィールド参照 | |
ワーク定義フィールド参照 | |
プロトタイプ定義フィールド参照 | |
プロトタイプコード挿入 | |
命令コード呼び出し(命令は個人で登録) | |
汎用コードセット呼び出し(汎用コードは個人で登録) | |
共通メモ参照(メモは個人で登録) | |
置換式 | |
プロトタイプ | 外部プログラム登録 |
登録ファイルエクスポート/インポート | |
データ定義 | ワークフィールド定義 |
配列データ定義 | |
SQL | SELECT指定 |
(select文生成) | WHERE条件指定 |
GROUP指定 | |
HAVING指定 | |
ORDER指定 | |
別名 | |
主ファイル、副ファイル | |
SELECT文生成、FETCH文生成(RPG組込み用) | |
SELECT文生成(LIBRARY名付き、動作確認用) | |
ソース生成 | RPGソース生成 |
画面ソース生成 | |
帳票ソース生成 | |
生成ソース確認 | |
AS400転送 | |
CCSID選択(5026,5035) | |
開発履歴登録(H仕様書に埋め込み可) | |
保管・復元 | 設計情報保管(PC→テキストファイル) |
設計情報復元(テキストファイル→PC) | |
共通メモ | メモ登録 |
メモ保存(PC→テキストファイル) | |
メモ復元(テキストファイル→PC) | |
ノート | フリードキュメント |
ライセンス | ライセンス申請(初回起動時のみ) |
ライセンスファイル読込 |