- PR -

Crystal Reportsでグループ毎にエクスポート

1
投稿者投稿内容
chloe
会議室デビュー日: 2007/08/16
投稿数: 5
投稿日時: 2007-08-16 16:33
言語 : Visual Basic 2005
Ver. : Crystal Reports XI(Visual Studio 2005 付属)

レポートをグループ毎に別ファイルとしてPDFにエクスポートしたいと考えています。
印刷するデータはTableAdapter経由でDataTableに読み込み、それをSetDataSource()で
レポートにセットしています。
やろうとしていることは

1. グループ毎にDataTableへデータを取得
2. レポートをエクスポート
3. 1〜2をグループ数分繰り返す

以上の方法で可能ではあるのですが、それだと時間と負荷がかかるので躊躇しています。
何かもっと他に良い方法をご存知の方いらっしゃれば、お教え頂けませんでしょうか?
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-08-17 16:08
引用:

chloeさんの書き込み (2007-08-16 16:33) より:

以上の方法で可能ではあるのですが、それだと時間と負荷がかかるので躊躇しています。
何かもっと他に良い方法をご存知の方いらっしゃれば、お教え頂けませんでしょうか?


画期的な良い方法はないと思います。 なおこのような出力はアンバウンド レポートよりバウンド レポートの方が負荷が少ないと思います。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
chloe
会議室デビュー日: 2007/08/16
投稿数: 5
投稿日時: 2007-08-17 17:06
じゃんぬねっとさま、レスありがとうございます。

引用:

画期的な良い方法はないと思います。


やっぱりありませんか・・・

とりあえず、

1. レポートにパラメータを追加
2. 選択エキスパートに {TableAdapter.PARAM} like {?Param}+'*' といった感じで設定を追加
3. DataTableへデータを取得
4. 2のDataTableをSetDataSourceでレポートに設定
5. 別途用意したグループでループ
6. レポートのパラメータフィールドにグループのIDをセット
7. エクスポート
8. 5〜7を繰り返し

というやり方にしました。

引用:

なおこのような出力はアンバウンド レポートよりバウンド レポートの方が負荷が少ないと思います。


バウンドレポートとアンバウンドレポートの区別はあまり考えたことがなかったのですが
(CrystalReports自体初めてで、VBも数年ぶりなもので・・・)
今回は1の前に「印刷 Or PDF出力」の分岐があり共通のTableAdapterを流用しているので
このような形にしました。
これから負荷の低い方法をいろいろ試して比較してみたいと思います。
1

スキルアップ/キャリアアップ(JOB@IT)