固定長テキスト形式のレポートを作成し、プリンターに出力するバッチスクリプトを作りたい。
その際、可能であればページ制御を行い、『現在のページ / 総ページ数』の表示をしたい。
VBScript・WSHで出来るのではないかと思うのですが、上記処理を作成する事は技術的に可能でしょうか?
サンプル等ありましたら紹介お願いします。
※固定長テキスト形式のイメージ
http://www.sw.nec.co.jp/soft/acos4/product/smfcnv/conv.html
の下部参照
「レポート」をどうやって印刷するか、によって、実装はいろいろなケースがありそうな。
単純に、結果をテキストファイルに落として印刷するなら、以下のような流れでしょうか。
全データ件数取得、全ページ数算出
do until 全データ出力するまで
データソースから一行ずつ読み込んで、整形してテキストファイルに出力
行数をカウントして、行溢れ改ページが発生するなら改ページ処理
loop
やっかいなのはページ数のところでしょう。
データソースがADOやODBC対応DBの場合は、レコードセットからレコードカウント取得できたり、select count(*)してやれば全行数が得られるでしょう。
CSVなどのシーケンシャルファイルの場合は。。。改行コードの数を数えるしかない、ような気がします。
動作させる環境で、テキストファイルを右クリックで印刷(拡張子に関連づけられているアプリで印刷)した場合、1ページに何行印刷できるかをあらかじめ調べておいて、script内で、全部で何ページになるか、とか、改ページ判断、とかをしてやる必要があると思います。
ExcelのVBAとかではダメなんでしょうか??きっとそのほうが楽だと思いますけど。
コメント(1件)
VBScriptではプリンタの印刷設定(余白,縦or横etc)が出来ないとか、
他にも厄介な問題が多い様なので、結局のところ、
素直に帳票ツール使えばいいじゃんかという事になりそうです。。。
ご回答ありがとうございました。