- PR -

1つのViewerに複数のレポートを出力する方法

投稿者投稿内容
やまじぃ
常連さん
会議室デビュー日: 2007/05/28
投稿数: 22
お住まい・勤務地: 日本国
投稿日時: 2007-06-11 08:58
表題のとおりです。
1つのViewerに複数のレポートを順次出力する方法について妙案がある方教えて頂けませんでしょうか?
今、自分で考えているのは、空のレポートを作成し、該当レポートを順次オーバーレイしていくという方法です。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-06-11 09:08
引用:

やまじぃさんの書き込み (2007-06-11 08:58) より:

1つのViewerに複数のレポートを順次出力する方法について妙案がある方教えて頂けませんでしょうか?


以前にも同様の質問がありました。その時にも伺ったのですが、
  1. "Viewer に" というより、すべてのページが (縦横問わず) 分割された状態で異なるデザインを出力したい
  2. レポート A の出力が終わった後に連続してレポート B が出力されるようにしたい
"1 つの Viewer" と書いていらっしゃいますのでどちらかとは思いますが、どちらなのでしょうか?

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
やまじぃ
常連さん
会議室デビュー日: 2007/05/28
投稿数: 22
お住まい・勤務地: 日本国
投稿日時: 2007-06-11 10:46
引用:

じゃんぬねっとさんの書き込み (2007-06-11 09:08) よamaり:
引用:

やまじぃさんの書き込み (2007-06-11 08:58) より:

1つのViewerに複数のレポートを順次出力する方法について妙案がある方教えて頂けませんでしょうか?


以前にも同様の質問がありました。その時にも伺ったのですが、
  1. "Viewer に" というより、すべてのページが (縦横問わず) 分割された状態で異なるデザインを出力したい
  2. レポート A の出力が終わった後に連続してレポート B が出力されるようにしたい
"1 つの Viewer" と書いていらっしゃいますのでどちらかとは思いますが、どちらなのでしょうか?





いつも曖昧な質問ですみません。
仕様としては2のレポートAの出力後、レポートBを出力する、になります。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-06-11 14:27
引用:

やまじぃさんの書き込み (2007-06-11 10:46) より:

いつも曖昧な質問ですみません。
仕様としては2のレポートAの出力後、レポートBを出力する、になります。


"空のレポートを作成し、該当レポートを順次オーバーレイしていくという方法です" とのことですが、これはサブレポートでということでしょうか? もしそうであればこの手法で問題ないと思います。ただしレイアウトの調整に少し苦労するかもしれません。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
やまじぃ
常連さん
会議室デビュー日: 2007/05/28
投稿数: 22
お住まい・勤務地: 日本国
投稿日時: 2007-06-11 14:51
引用:

じゃんぬねっとさんの書き込み (2007-06-11 14:27) より:
引用:

やまじぃさんの書き込み (2007-06-11 10:46) より:

いつも曖昧な質問ですみません。
仕様としては2のレポートAの出力後、レポートBを出力する、になります。


"空のレポートを作成し、該当レポートを順次オーバーレイしていくという方法です" とのことですが、これはサブレポートでということでしょうか? もしそうであればこの手法で問題ないと思います。ただしレイアウトの調整に少し苦労するかもしれません。





サブレポートではなくレポート全体をオーバーレイするように考えていました。
ただ、(可能かもしれませんが)こういうやり方はスマートでは無いので、
何か良い知恵をお持ちでしたら拝借したいです。
※ふつうはこうします、といったご指摘でも結構です。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-06-11 15:24
引用:

やまじぃさんの書き込み (2007-06-11 14:51) より:

サブレポートではなくレポート全体をオーバーレイするように考えていました。ただ、(可能かもしれませんが)こういうやり方はスマートでは無いので、何か良い知恵をお持ちでしたら拝借したいです。


レポート全体とはどういう実装になるのでしょうか。データは詳細セクションのたびに Fetch されますが、異なるレイアウトのレポート 2 種となるとデータも 2 種になります。しかし Crystal Reports Engine は直結にデータを出力してくれません。あくまで DataSource に含まれる形式で出力します。

確かに DataSource を直結に Merge すれば可能です。しかし、フィールドの数や型が一致していない限り問題が発生します。だから私はサブレポートを使う方法なのだと判断してしまったのです。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
やまじぃ
常連さん
会議室デビュー日: 2007/05/28
投稿数: 22
お住まい・勤務地: 日本国
投稿日時: 2007-06-11 16:42
引用:

じゃんぬねっとさんの書き込み (2007-06-11 15:24) より:
引用:

やまじぃさんの書き込み (2007-06-11 14:51) より:

サブレポートではなくレポート全体をオーバーレイするように考えていました。ただ、(可能かもしれませんが)こういうやり方はスマートでは無いので、何か良い知恵をお持ちでしたら拝借したいです。


レポート全体とはどういう実装になるのでしょうか。データは詳細セクションのたびに Fetch されますが、異なるレイアウトのレポート 2 種となるとデータも 2 種になります。しかし Crystal Reports Engine は直結にデータを出力してくれません。あくまで DataSource に含まれる形式で出力します。

確かに DataSource を直結に Merge すれば可能です。しかし、フィールドの数や型が一致していない限り問題が発生します。だから私はサブレポートを使う方法なのだと判断してしまったのです。





今考えているのは、

1.メインレポート:DataSourceもDataFieldも何も設定しない
2.レポートA:DataSourceを指定したレポート
3.レポートB:レポートAとは全く(参照テーブルもレイアウト・項目数も)異なるレポート
※ただし、用紙サイズ、余白設定のみ共通
4.メインレポート実行時にまずレポートAをオーバーレイ
5.次にレポートBをオーバーレイ
WebViewer.report = メインレポート

やっぱりおかしいでしょうか?というよりも実現不可能でしょうか?
たぶん、私がメインレポートでやろうとしている箇所をじゃんぬねっとさんはサブレポートとして考えておられる訳でしょうね?
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-06-11 18:17
引用:

やまじぃさんの書き込み (2007-06-11 16:42) より:

今考えているのは、

1.メインレポート:DataSourceもDataFieldも何も設定しない
2.レポートA:DataSourceを指定したレポート
3.レポートB:レポートAとは全く(参照テーブルもレイアウト・項目数も)異なるレポート
※ただし、用紙サイズ、余白設定のみ共通
4.メインレポート実行時にまずレポートAをオーバーレイ
5.次にレポートBをオーバーレイ
WebViewer.report = メインレポート


やはり、サブレポートを使ってるじゃないですか。というより、認識のズレがあるようですね。私は "サブレポートを使ってオーバーレイするのかどうか" というつもりで聞きました。やまじぃさんは、"サブレポートに対してオーバーレイするのかどうか" と受け止めたとお見受けしました。やろうとしていることはまったくと言って良いほど同じです。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌

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