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

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

よく使うマニュアルです

Wiki

updated on 2004.06.23

2.9.パターン2の作成のポイント

[ Previous ] [ HOME ] [ Upper ] [ Next ]


  • DDS SFLCTL内の定義は、サブファイルページ<サブファイルサイズと指定する
  • DDS ロールアップキーはSFLCTL内に定義する
  • DDS ロールダウンキーは定義しない
  • DDS SFLRCDNBRは必ず指定する

簡易ロジック

ロジックを分かりやすくするために、TAGやSUBRを使います。また、これは、疑似RPGです。本当のRPGコーディングだとわかりずらいのでこうしました。とにかくここでは、ロジックを理解して下さい。


メインルーチン

\CLR_SFL        TAG
                EXSR @CLR_SFL                サブファイルの消去

\BLD_SFL        TAG
                EXSR @BLD_SFL                サブファイルのビルド

\DSP_SFL        TAG

                EXSR @DSP_SFL                サブファイルの表示

       IF F3 is pushed then GOTO \END           F3でプログラム終了
       IF ROLLUP is pushed then GOTO \BLD_SFL   ロールアップで次ページ表示
       IF Redisplay is pushed then GOTO\CLR_SFL 再表示で初めから

                GOTO \DSP_SFL                実行キーだけが押されたら表示へ戻る

\END            TAG
                SETLR ON and RETURN             終了        

サブルーチン

@CLR_SFL        BEGSR                 サブファイルクリア

                SFLCLR ON             CTLRCDのキーワード標識オン
                WRITE SFLCTL          サブファイルクリア実行  
                SFLCLR OFF            CTLRCDのキーワード標識オフ
                RRN = 0               相対レコード番号を0にリセット
                Saved RRN = 0         保管用相対レコード番号を0にリセット
        key     SETLL   A File        ファイルカーソルリセット
                ENDSR

@BLD_SFL        BEGSR                 サブファイルのビルド

                Count = 0             カウンターを0にする
                RRN = Saved RRN       相対レコード番号の初期値を前回の最後の値にする

        Count   DOUEQ   SFLRCD Size   1ページ分のレコード数になるまで繰り返し
        key     READEQ  A File        ファイルからレコード読込
     IF A File EOF then LEAVE      ファイルEOFならループから出る
     IF Count =0 then SFLRCDNBR = RRN  最初のレコードセットのときに、SFLRCDNBRをセット
                RRN = RRN + 1         相対レコード番号をカウントアップ
                Count = Count + 1    1ページ分のレコードをカウント
                WRITE SFLRCD          サブファイルレコードの書き出し
                ENDDO

  IF Not A File EOF then Saved RRN = RRN  次回の相対レコード番号用に保管
  IF A File EOF then SFLMORE ON       EOFならば、SFLMODEをONにする
                ENDSR

@DSP_SFL        BEGSR                 サブファイルを画面に表示

                SFLDSP ON             サブファイルレコードのオン(レコードがあれば)
                SFLDSPCTL ON          サブファイルコントロールのオン
                EXFMT SFLCTL          レコードの表示命令
                SFLDSP OFF            サブファイルレコードのオフ
                SFLDSPCTL OFF         サブファイルコントロールのオフ
                ENDSR      
  

[ Previous ] [ HOME ] [ Upper ] [ Next ]

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

 

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