MENU
複数枚の帳票出力を行う場合、やっぱりページ番号を出力したいですよね。当然SVFでもそのための機能が用意されています。システム変数を利用することでページ番号を印字できるのですが、この変数にも用途に応じていくつかの種類があります。
今回は「N/N」形式でページ番号を印字し、その際に利用するシステム変数について説明いたします。
まずページ番号を印字したい箇所にフィールドを設置します。「N/N」の表示になるため、分子になるフィールド、分母になるフィールドとその間に固定文字の「/」を設置します。
次に分子を表示するフィールドを選択しプロパティを表示します。編集式に「_PAGE_CNT」というページ番号を格納するシステム変数を設定します。また数字のフォーマットを指定するため「FORMAT」関数を使用します。編集式に設定する値は「FORMAT(_PAGE_CNT,”ZZ9″)」のようになります。
続いて分母を表示するフィールドを選択し、編集式に総ページ数を格納している「_TOTAL_PAGE_CNT」変数を設定します。
編集式に設定する値は「FORMAT(_TOTAL_PAGE_CNT,”ZZ9″)」のようになります。
この状態でテスト印刷を行うと、このように「N/N」形式で印字されたことがおわかりいただけたと思います。
以上でページ番号の出力設定は完了です。
よく聞かれるページ番号関連のシステム変数の違いに説明します。
_PAGE_CNT
キーブレイクによる改ページの単位のページ番号(連番)を取得します。
_SERIAL_PAGE_COUNT
1ページ目から最終ページまでの連番を取得します。
APIを利用している方であればVrInit~VrQuit関数間での帳票連番を数値型データで取得するといった方がわかりやすいかもしれませんね。
_TOTAL_PAGE_CNT
キーブレイクごとの総ページ数を取得します。
_TOTAL_PAGE_COUNT
総ページ数を取得します。(キーブレイクには影響されません)
_PAGE_GROUP_COUNT
ページのグループ連番を取得します。
注意事項
・APIを利用する時はVrSetForm関数のモードを4か5にする必要があります。
・_TOTAL_PAGE_COUNT、または_TOTAL_PAGE_CNTを使用して総ページを取得する場合は、1度印刷データを作成して最終ページ数を取得してから先頭ページを作成する為、処理時間が通常処理よりかかります。
いかがでしたでしょうか。ページ番号の印字は最もよく使う機能の1つになりますのできちんとマスターしてくださいね。
Related article
Pick up
Ranking
Info