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

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

よく使うマニュアルです

Wiki

updated on 2004.06.23

7.18.オーバーフロー標識について

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


まず、参照される印刷装置ファイル(たとえば、QPRINT)の属性のオーバーフロー行を確認します。コマンドはDSPFDで出てきます。システムが最初から準備しているのは、LPI=6,一頁=66行、オーバーフロー行=60です。さて、RPGでは、印刷装置ファイルを内部記述とするか、外部記述とするかで違います。

内部記述のプリンターファイルの場合

結構、これを使っている人は多いと思います。私も99%これです。F仕様書でQPRINT(など)の行に、OFなどと、オーバーフローの時の標識を付けます。(予備校で書くのを忘れた)。指定できるのは、oA 〜 oG、oVです。oHとか、oiは駄目です。理由は知りません。※1つのRPGでは、印刷ファイル8個までです。

内部記述だと、Except命令で印刷するのが通常ですが、F仕様書で、oF指定した場合、以下のように、この標識を使います。上記印刷装置ファイルの定義中のオーバーフロー行を超えると、F仕様書で指定した標識が、勝手に、オンになります。コーディングは、

    *INOF IFEQ *ON
          EXCPT#HED
          END    

という感じです。#HEDは、改ページ指定(というか、絶対的にページの1行目に出す)という指定つきの、「見出し」EXCEPT命令です。これで、改ページします。つまり、いま、2行目を印刷していて、「絶対的な位置1行目に行け」という命令を受けると、今いるのが、一行目より大きい行なので、次ページに行く仕組みです。このとき、oFは勝手にオフになります。つまり、

OF        EXCPT#HED
OF        SETON            75

としても、75はオンになりません。EXCEPT#HEDで、OFはオフになっているからです。この場合は、

OF        SETON            75
OF        EXCPT#HED

とするか、

*INOF   IFEQ *ON
        EXCPT#HED
        SETON            75
        END

とします。

それから、設計どおりに、改ページしてくれない場合、明細行を打つところで、改行してから明細か、明細印刷してから改行か、さらに、oFだったら見出し印刷のタイミングが、明細を打つ前か、後なのか、で違ってきます。

外部記述のプリンターファイルの場合

F仕様書で、オーバーフロー標識は、数字の01から99になります。どういう訳か、oFなどは使えません(RPGの印刷装置の制約の引継によるものでしょう)。自動的に01から99はオンになりますが、ヘッダーを書き出しても、標識はオフにはなりません。自分でオフにします。

 *IN10   IFEQ  *ON
         WRITE HED01
         MOVE  *OFF    *IN10
         END

といった具合です。ここは注意してください。

なお、参照マニュアルは、RPG400解説書の3.RPG標識を参照してください。

また、内部記述の時、フェッチなるものがあって、オーバーフローしたときに印刷するものを、o仕様書で定義できるようです。便利だ、と騒いでいたひとがいたのですが、私は使っていません。同じマニュアルの10.3.5.1にページオーバーフロールーチンとして、出ているのが、それです。チャンスがあったら試してみます。


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

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

 

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