- PR -

CrystalReportsについてなんですが

1
投稿者投稿内容
ジェミニ
常連さん
会議室デビュー日: 2003/08/26
投稿数: 33
投稿日時: 2003-10-01 13:39
いつも勉強させて頂きありがとうございます。
今回、どうしてもコーディングが先へ進めずみなさんのお知恵をお借り出来たらと思い投稿させて頂きます。
現在、ASP.NETとACCESSのDBで開発を行っており、今回印刷を追加しようとこちらのスレッドを参考にCrystalReportsを使いコーディングをしていたのですが、下記の状態で悩んでおります。
とりあえずデータを表示する事は出来たのですが、プログラムでSQL文を書きDataSetをCrystalReportDocumentに渡しても毎回全件のデータが表示されてしまいます。
DataSetの中身はクエリーで選択されたデータのみ入っているのですが・・・
どうも.rptの中に全件表示のSQL文がありそれが反映されている様な気がするのですが、どうすればDataSetの内容が反映されるのでしょうか。
ご存知の方、ご指導の程よろしくお願いいたします。

ちなみに現在のソースはこうなっております。

Dim crReportDocument As CrReport

' ********************
' データベース読込み
' ********************
Private Sub sqlRead(ByVal strSql As String)

Dim Result As Integer

' データベースOPEN
Me.OleDbConnection1.Open()
' 既存のテーブルクリア
Me.DataSet11.Tables("TBL名").Clear()
' クエリのセット
Me.OleDbDataAdapter1.SelectCommand.CommandText = _
"SELECT * FROM TBL名 WHERE 項目名 = '" & Koumoku & "'"
' クエリの実行
Result = Me.OleDbDataAdapter1.Fill(Me.DataSet11.Tables("TBL名"))
If Result <> 0 Then
SetDataSource(Me.DataSet11)
End If
' データベースCLOSE
Me.OleDbConnection1.Close()

End Sub

' ********************
' 読込んだDATASETをCRYSTALREPORTSにセット
' ********************
Private Function SetDataSource(ByVal dataset As DataSet)

crReportDocument = New CrReport()

crReportDocument.SetDataSource(dataset)
CrystalReportViewer1.ReportSource = crReportDocument

End Function
ぢゃん♪
大ベテラン
会議室デビュー日: 2003/06/12
投稿数: 208
お住まい・勤務地: 都内
投稿日時: 2003-10-01 15:01
引用:

ジェミニさんの書き込み (2003-10-01 13:39) より:
とりあえずデータを表示する事は出来たのですが、プログラムでSQL文を書きDataSetをCrystalReportDocumentに渡しても毎回全件のデータが表示されてしまいます。
DataSetの中身はクエリーで選択されたデータのみ入っているのですが・・・


実はDataSetなんか参照しないrptファイル設定内容とか……?
プロジェクトデータをデータソースにしてみる、というのはどうですか?
ジェミニ
常連さん
会議室デビュー日: 2003/08/26
投稿数: 33
投稿日時: 2003-10-01 15:18
ぢゃん♪さんありがとうございます。
何分CrystalReportsを初めて使うもので・・・解らない事だらけなんです。
現在、.rptを作る際にデータベースフィールドでデータベースの追加を行い目的の
テーブルの項目を詳細(Section3)にペタペタと貼り付けているだけなのです。
DataGridの様に画面はこれだけで、後はプログラムからDataSetをセットさえすれば
いいのだろうと思っているのですが・・・・ダメなんですよね・・・
DataSetの参照するrptファイルの設定ってどこを設定すればいいのでしょう?
勝手な質問ばかりで恐縮なのですが、よろしくお願いいたします。
ジェミニ
常連さん
会議室デビュー日: 2003/08/26
投稿数: 33
投稿日時: 2003-10-01 16:46
自己レスです。
解決したので、一応みなさんのお役に少しでもたてればと思い・・・?
ACCESSのDBを参照していたので、データベースの追加で【OLE】を選択していたのですが
よくよく考えれば【ADO.NET】で追加しないといけなかったみたいです。
1)データベース追加でADO.NETを選択しプロジェクトに追加してあったDataSetを選択
2)追加されたテーブルより各項目のセット
3)プログラムよりCrystalReportsにDataSetのセット

これで、SQL文で指定したデータが反映されました。

お騒がせいたしました。
1

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