- PR -

CrystalReportXIの出力条件について

投稿者投稿内容
ガンバ
常連さん
会議室デビュー日: 2007/11/07
投稿数: 22
投稿日時: 2007-11-16 12:56
レポートに出力するデータをAccessのデータにしているのですが、
そのテーブルには複数のデータがあります。そのうち『あるキー』のデータのみを
表示したいのですが、CrystalReportXIでSQL文のWhere条件のようにして、
出力するデータを限定できるのでしょうか?
ご存知の方がいらっしゃいましたらご教示お願いします。

目的)
テーブルには主キーが「A」、「B」、「C」のデータがあります。
レポートに表示したいデータは主キーが「B」のデータのみ。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-11-16 13:42
引用:

ガンバさんの書き込み (2007-11-16 12:56) より:

レポートに出力するデータをAccessのデータにしているのですが、


"Access のデータにしている"? なぜ 'わざわざ' そのようなことをしているのでしょうか?

引用:

そのテーブルには複数のデータがあります。そのうち『あるキー』のデータのみを表示したいのですが、CrystalReportXIでSQL文のWhere条件のようにして、出力するデータを限定できるのでしょうか?


もちろんレポート側でもコード側でも可能です。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
ガンバ
常連さん
会議室デビュー日: 2007/11/07
投稿数: 22
投稿日時: 2007-11-16 13:52
"Access のデータにしている"? なぜ 'わざわざ' そのようなことをしているのでしょうか?

C#でクラス管理しているデータをAccessにセットしてから出力しようと考えています。
他に何か良い方法があるのでしょうか?

もちろんレポート側でもコード側でも可能です。

徹底活用術を呼んでいるのですが、それらしき項目が見つけられません。
どのようにすればいいでしょうか?

ご教示お願い致します。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-11-16 14:08
引用:

ガンバさんの書き込み (2007-11-16 13:52) より:

C#でクラス管理しているデータをAccessにセットしてから出力しようと考えています。
他に何か良い方法があるのでしょうか?


やはり... 「バウンド レポート」 という手法しか知らないがためだったようですね。

DataSet や DataTable を DataSource として渡す方が簡潔であり高速です。 また拡張性にも優れています。 Access というか MDB を使わずに済むというのも利点ですね。 帳票コンポーネントの世界では、これを 「アンバウンド レポート (縛られていない帳票)」 と呼んでいます。

引用:

徹底活用術を呼んでいるのですが、それらしき項目が見つけられません。
どのようにすればいいでしょうか?


どの手法で行くかにもよりますが、上記のアンバウンド レポートでいく場合は DataTable を作る段階で SQL 文やその他の方法で絞り込みが可能です。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
ガンバ
常連さん
会議室デビュー日: 2007/11/07
投稿数: 22
投稿日時: 2007-11-16 14:30
回答ありがとうございます。

DataSet や DataTable を DataSource として渡す方が簡潔であり高速です。

CrystalReportXI(.NET付属でないもの)のレポートを作成しています。
MDBで設定している場合、データベースを接続して、レポート上に接続しているMDBの
フィールドをドロップダウンすると、連結してくれますがDataSet、DataTableの場合は
どのように連結するのでしょうか?

また、「バウンド レポート」で行う場合、レポート側で出力条件を設定する方法はどうするのでしょうか?

質問ばかりですみませんが、ご教示お願い致します。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-11-16 15:06
引用:

ガンバさんの書き込み (2007-11-16 14:30) より:

CrystalReportXI(.NET付属でないもの)のレポートを作成しています。
MDBで設定している場合、データベースを接続して、レポート上に接続しているMDBの
フィールドをドロップダウンすると、連結してくれますがDataSet、DataTableの場合は
どのように連結するのでしょうか?


マッピングというのを行います。 デフォルトではフィールド名で連結しようとします。 型付 DataSet でも書いておけば何も考えなくても連結されます。

引用:

また、「バウンド レポート」で行う場合、レポート側で出力条件を設定する方法はどうするのでしょうか?


ガンバさんが "MDB で設定している場合、データベースを接続して、レポート上に接続している MDB のフィールドをドロップダウンすると、連結してくれます" と書いてくれましたが、この時に裏では SQL クエリが構築されています。 この SQL クエリに条件を付け加えれば良いわけです。 私は 1 度しかやったことありませんけども。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
かずくん
ぬし
会議室デビュー日: 2003/01/08
投稿数: 759
お住まい・勤務地: 太陽系第三惑星
投稿日時: 2007-11-16 15:19
引用:

ガンバさんの書き込み (2007-11-16 14:30) より:

また、「バウンド レポート」で行う場合、レポート側で出力条件を設定する方法はどうするのでしょうか?


今のバージョンは知らないけど、昔はSelectionFieldで絞り込んでた。
クリレポのメニューからレポート→選択式の編集→レコード(Crystal Reports 8の頃)
#それでもなお、バウンドレポートにこだわる理由は不明だけど
ガンバ
常連さん
会議室デビュー日: 2007/11/07
投稿数: 22
投稿日時: 2007-11-16 15:31
回答ありがとうございます。

マッピングというのを行います。 デフォルトではフィールド名で連結しようとします。 型付 DataSet でも書いておけば何も考えなくても連結されます。

マッピングというのは何でしょうか?
レポートのテキストボックスの名前をフィールド名にすれば良いのでしょうか?
型付はレポート側、DataSet側のどちらにどのようにするのでしょうか?

本当に初歩的な質問ですみません。
ご教示お願い致します。

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