CSVファイル または DBからレコードを読み込んで

固定長テキスト形式のレポートを作成し、プリンターに出力するバッチスクリプトを作りたい。
その際、可能であればページ制御を行い、『現在のページ / 総ページ数』の表示をしたい。

VBScript・WSHで出来るのではないかと思うのですが、上記処理を作成する事は技術的に可能でしょうか?
サンプル等ありましたら紹介お願いします。

※固定長テキスト形式のイメージ
http://www.sw.nec.co.jp/soft/acos4/product/smfcnv/conv.html
の下部参照

回答の条件
  • 1人2回まで
  • 登録:2006/06/02 00:26:15
  • 終了:2006/06/02 19:26:44

回答(1件)

id:icchan0000 No.1

icchan0000回答回数85ベストアンサー獲得回数52006/06/02 14:54:59

ポイント60pt

「レポート」をどうやって印刷するか、によって、実装はいろいろなケースがありそうな。


単純に、結果をテキストファイルに落として印刷するなら、以下のような流れでしょうか。


全データ件数取得、全ページ数算出

do until 全データ出力するまで

 データソースから一行ずつ読み込んで、整形してテキストファイルに出力

 行数をカウントして、行溢れ改ページが発生するなら改ページ処理

 

loop


やっかいなのはページ数のところでしょう。


データソースがADOやODBC対応DBの場合は、レコードセットからレコードカウント取得できたり、select count(*)してやれば全行数が得られるでしょう。

CSVなどのシーケンシャルファイルの場合は。。。改行コードの数を数えるしかない、ような気がします。


動作させる環境で、テキストファイルを右クリックで印刷(拡張子に関連づけられているアプリで印刷)した場合、1ページに何行印刷できるかをあらかじめ調べておいて、script内で、全部で何ページになるか、とか、改ページ判断、とかをしてやる必要があると思います。



ExcelのVBAとかではダメなんでしょうか??きっとそのほうが楽だと思いますけど。

  • id:litetuna
    確かに上記方法で出来そうですね。

    VBScriptではプリンタの印刷設定(余白,縦or横etc)が出来ないとか、
    他にも厄介な問題が多い様なので、結局のところ、
    素直に帳票ツール使えばいいじゃんかという事になりそうです。。。

    ご回答ありがとうございました。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません