先日の問題 の問1の回答

 

------------------------------------

問2 印刷のタイミング

1. 印刷対象のブックを選択したらシート毎に順次印刷を行う。印刷処理が終わったらすぐに、次のブックを選択する。

2. 印刷対象のブックを選択したらそのブックのシートをすべて選択し一度に印刷を行う。印刷処理が終わったらすぐに、次のブックを選択する。

3. 印刷対象のブックを選択したらシート毎に順次印刷を行う。印刷後に待ち時間を設ける。待ち時間は15秒程度とする。

------------------------------------

 

これも過去の失敗談に基づく。

2001年とか2002年くらいだったろう。データベースの定義書をDBMSから情報を取得して作成する、というもの。

DBMSは大型汎用機上にあるDB2で、定義情報をODBC経由でExcelで取得してローカルのDB(他にインストールできるものがなかったのでAccessを使用)へとため込む処理と、取得したデータをExcelの定義書として作成し管理する処理と、特定のテーブル定義だけを出力しても、全体で通し番号として付与しているページ番号を正しく印刷する処理を作成した。

 

最後のものには当然、一気に印刷する機能も付けていた。

一通りテストを終え、一気に印刷するテストを実施した際、すぐにスプールがパンクした。これ、スプールせず印刷データをプリンタに直接送ったとしても、プリンタ側のバッファを食いつぶすことになる。

 

つまり、大量の印刷をする場合には、一気にデータを送り込むのではなく、中断させながら送る必要があり、正解は 3.となる。

1.も2.も、スプールを食いつぶすことには変わりない。