ページ番号を表示したい

★★★:よくある

複数枚の帳票出力を行う場合、やっぱりページ番号を出力したいですよね。
当然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つになりますのできちんとマスターしてくださいね。

Topに戻る

フリーワード検索