- - PR -
CrystalReport印刷処理速度について
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2008-05-09 19:34
印刷処理が遅くて困っています。
環境:VB2005,CrystarlReport11 帳票毎にExeを作り 呼び出し元より印刷ボタン押下時に Shell又はProcessコンポーネントで呼び出して実行しています。 ボタン押下から印刷が始まるまで遅いとの事で 解析してみたところ以下の2点がネックになっているようです。 @帳票のインスタンスを作成(2、3秒) ASetDatasourseメソッド(Dataset.DataTableが引数)(2、3秒) 仕方ないと諦めるべきでしょうか? dllにして並列で処理をさせるのも一つとは思うのですが… | ||||||||
|
投稿日時: 2008-05-09 19:57
これ、本当のところですか? 普通の構成であれば EXE が起動するまでの時間が最もネックだと考えています。 (1) の多くはそれを含んでいるのではないでしょうか? (2) についてはわかりませんね。 ただインスタンスの参照をセットしているだけですから、ほぼ一瞬で終わるハズです。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2008-05-10 12:35
ご返答ありがとうございます。
【EXE が起動するまでの時間が最もネック】 とのご指摘ですが、その通りと思います。 それとは別に、印刷するプログラムを単体で動かし 1命令ずつ処理時間をdebugで出力して解析しました。 具体的には以下のような命令に時間が掛かっているようです。 (※記憶を基にのため命令語など若干違うかもしれません) @Dim cr as TestCr = new TestCr Acr.setdatasourse(dtwork) Bcr.printtoprint(... こちらの勘違いかもしれませんので 後日、もう一度確認して具体的な数値やプログラムを報告させて頂きます。 | ||||||||
|
投稿日時: 2008-05-10 16:15
ということはやはり起動時間も含めてしまって処理時間をはじき出していたということでしょうか?
(1) はレポートの構成によっては時間がかかることがあります。 たとえばサブ レポートを含めるとそれは如実に表れます。 ちなみにこのコンストラクタには ReportEngine の Initialize もあるので 2 回目以降の処理を考えると同プロセスにすることで緩和する部分が存在します。 (2) はやはり普通に考えればあり得ないですね。 あるとすればリレーションが複雑だとかそういった場合です。 通常帳票に使用する DataSource はリレーションが分解された後のものになることが多く可能性としては考えていませんでしたが、どんな DataSource になっているでしょうか? (3) は印刷処理自体なので除外対象だと思います。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 |
1