最初のページに戻ります。

総合の目次があるページに戻ります。

よく使うマニュアルです

Wiki

updated on 2004.06.23

11.15.1 SZAPの解説

[ HOME ] [ Upper ] [ Next ]


szap02.gif (21882 バイト)

コマンドszapは、SuperZapの略です(作った当初はSmallZapと呼んでいました)。昔、zapperというソフトが有って、内容は違いますが、その名前がかっこいいので、貰いました。誕生は、System38の上でした。今はバージョン9です。BRWPFM(DSPPFM)の漢字版を作るつもりが、だんだんバージョンアップして、変更、追加、削除も出来るようにしました。OPNQRYFもサポートしました。SQLなんて無い頃から、出来ています。ちなみに、zapはテレゲーで敵をやっつけることです。

注意

このユーティリティは、変更モードの際、データベースを書き換えます。

もし、バグがありデータが破壊されても、一切の責任は負いかねます

変更は、デバッグデータなど、破壊されても、業務に影響のないものに限って使用してください。

機能の概説(売り)

  • これにより、物理ファイルと論理ファイルのデータを表示、変更します。
  • OPNQRYFによる、データの選択が出来ます。
  • 文字は、DBCS ; Double Byte Character String , SBCS ; Single Byte Character Stringに対応しています。
  • 数字は、ゾーン、パック、バイナリに対応しています。
  • ここでの例は、到着順ですが、もちろんキー付き検索も可能です。この場合、キーに漢字やパックが入っているときは、(F10)16進数の指定になります(手抜き)。
  • フィールドリスト(F4)も可能です。これは、表示パートと相互に関連して、フィールドリストで選択したものは、表示開始桁として反映しますので、便利です。
  • 変更時のログとして、データの書き出しや、データの印刷が可能ですが、この場合、レスポンスが悪くなります。
  • 保管ファイルの表示が可能です。(表示のみです。保管ファイルの解析にどうぞ。)

できないこと

  • 複合論理ファイル(物理ファイルをまとめた奴)は表示できません。
  • 浮動小数点は対応していません。
  • ヘルプはありません。これも手抜き。
  • DDMFには使用しないでください。
  • 結合ファイル(join)は変更できません。
  • 降順キーでは、動きがおかしくなります。(SETLLをしているためのバグです)。

プログラム構成

オブジェクト名 タイプ、属性 内容
szap CMD CPPはszapc2
szapc2 CLP szap2の起動準備
szap2 RPG 本体
szapd2 DSPF 本体の画面ファイル
dspdr81 RPG フィールド情報画面
dspdr81d DSPF
szapsb1 RPG ウィンドウにSZAP形式のデータ画面表示
szapsb1d DSPF
dspmbrl RPG メンバー選択画面
dspmbrld DSPF
szapsb2 RPG 印刷プログラム(変更ログ印刷)
savfcvt RPG 保管ファイル表示編集用
#srstscl CLP ステータスメッセージの表示用外サブ

※CPPとは、Command Process Programのことで、早い話、コマンドに定義されるプログラムのことです。

ロジック

指定データを、複数レコード表示します。この際、漢字の先頭から、最後まで、または途中から最後まで、または最初から途中まで、途中から途中まで、を画面の右端と左端に、補助の0eと0fを埋め込むことで解決しています。従って、変更モードの場合、画面の左端と右端に、無駄な1バイトが出来てしみまいます。これは無視してください。

これは、と思う機能はすべて付けたつもりですが、OPNQRYFのKFLDサポートはしていません。多分出来ると思うのですが、中身をかなりいじる事になるのです。つまりは、キー値の表示でSETLLが出来ないかもしれないことを、気にしています。(QRYSLTが到着順のみサポートしているのは、そのためです。)

数字は、ゾーンやパックなどの符号も検査しています。フィールドタイプLやTはテストして使えるのですが、HEXはまだ不明です。(昼休みだけではテストしてられない)。

尚、論理ファイルで、表示のみフィールドが有る場合は、画面で変更しても、実行キーをたたくとエラーとなるはずです。

画面サンプル

SZAP + [F4]
szap01.gif (11802 バイト)

  • File Nameは検索したいファイル名。
  • Member nameは検索したいメンバー名。*SELECTにすると、メンバー選択画面が出ます。
  • Indexedはキー付きファイルを到着順に見たい場合に指定します。キー付き物理ファイルや論理ファイルのことです。
  • DBCSは漢字の検査をするか否かですが、*YESのままにしてください。昔、英語端末でエラーが出るのを避ける目的も兼ねていました(尚、英語端末で表示するときは、*NOにしてください)。

szap20.gif (15099 バイト)

szap21.gif (9925 バイト)

ごめんなさい。このパラメータは*CALCをおすすめします。(イメージを間違えてしまった。)

もし、手動でセットする場合は、ファイルのレコード長+21バイトです。落ちるデータは、

相対レコード番号(7)+日付時間(12)+追加変更識別子(1)+「;」の計21バイトが、ファイルの先頭につきます。追加変更識別子は、追加はA、変更前がB、変更後がC、削除がDです。

画面サンプル

[初期画面](上記コマンドの省略値)
szap02.gif (21882 バイト)

  1. F4で、フィールドリストが出ます。ここでフィールドを指定しすると、表示がその指定したフィールドをから表示を開始します。なにげなく付けた機能ですが、便利です。
  2. F5で再表示します。
  3. F6で、レコードのDSPD表現です。(DSPDは自作コマンドの事です)。カーソルをどこかのレコードに併せて、F6を押します
  4. F9はレコード追加モードです。変更モードのみサポートです。入力し終わったら、必ず、F9を再び押してください。(実行キーでは有りません。F9以外は追加モード解除を意味します)。
  5. F10で、キャラクタと16進数表示の切り替えです。
  6. F13はフィールド単位に右に移動します。
  7. F16は検索機能です。これは、到着順のみの場合指定できます。(指定の値はキャラクタのみです。)SEARCH STRINGに検索文字を入れて、F16を押します。SEARCH STRINGの後の開始位置と終了位置が、検索範囲の桁です。また、SEARCH MAXは、最大レコード件数です。(この機能は、残念ながらパフォーマンスが悪いです。出来れば、QRYSLTをコマンドププロンプトで指定してください。)
  8. F19は、SIDEWARD STEPに指定された値で左へ、F20は同じく右へ、スライドします。
  9. F21はメンバー情報ウインドウの表示です。
  10. F23はレコード削除です。カーソルで、削除したいレコードを指定して、F23を押します。すると、削除確認としてレコードがブリンク(赤)になります。カーソルを動かさず再びF23を押すと、削除されます。もし、この時に、カーソルを動かして、実行キーもしくはファンクションキー(何でも)を押すと、削除モード解除となります。

カーソルを、どこかに合わせて、実行キーを押すと、その部分のフィールド情報が画面下に出ます。

szap03.gif (21994 バイト)

どこかのレコードで、F6を押すと、そのレコードをDSPD表示します。

szap04.gif (20693 バイト)

16進数の表示は、F10で可能です。

szap05.gif (24264 バイト)

コマンドのプロンプトで、INDEXEDを*NOにして、OPNQRYFを*YESにすると、QRYSLTを指定できます。(キー項目はサポートしていません)

szap07.gif (12685 バイト)

QRYSLTの例

szap08.gif (13657 バイト)

上記のQRYSLTの反映したデータ

szap09.gif (25009 バイト)

漢字の表示例

szap10.gif (21198 バイト)

便利ですけど、修正は気をつけてください。おかしくなっても、責任は持ちませんからね!それが、こまるなら、表示にみにしてください。表示のみならば、ファイルを更新オープンしませんので、安心です。



[ HOME ] [ Upper ] [ Next ]

You are at K's tips-n-kicks of AS/400

 

SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送