- PR -

レポートへ(rdlc)のパラメータの渡し方について

1
投稿者投稿内容
だんく
常連さん
会議室デビュー日: 2006/02/06
投稿数: 47
投稿日時: 2006-08-26 19:43
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=32866&forum=7&15
この時には大変お世話になり、ありがとうございます。
続けざまに質問はしたくなかったのですが、自分なりにですが、
調べてもわからないのでよろしくお願いいたします。

レポートの方にパラメータ(パラメータ名 REparam1 型integer)で値を渡したいのですが、
できません。

コードとしては、
Dim RateId As Integer = 123
Dim params(0) As Microsoft.Reporting.WinForms.ReportParameter
params(0) = New Microsoft.Reporting.WinForms.ReportParameter("REparam1",RateId, False)
Me.ReportViewer1.LocalReport.SetParameters(params)
Me.ReportViewer1.RefreshReport()
で ローカル レポートの処理中にエラーが発生しました。となります。
Ahf
大ベテラン
会議室デビュー日: 2006/08/16
投稿数: 172
投稿日時: 2006-08-26 23:25
パラメータはあまり利用していないので、間違った事を言ってしまった場合は
申し訳ありません。

レポートのパラメータ指定に利用するReportParameterクラスですが、
コンストラクタにて指定できるのは文字のみの様子です。
http://msdn2.microsoft.com/ja-jp/library/microsoft.reporting.winforms.reportparameter.reportparameter.aspx

恐らくは RateId.ToString を ReportParameterのコンストラクタに渡してあげれば
引き渡すことができるように思えます。


[ メッセージ編集済み 編集者: Ahf 編集日時 2006-08-26 23:27 ]
だんく
常連さん
会議室デビュー日: 2006/02/06
投稿数: 47
投稿日時: 2006-08-27 14:35
Dim RateId As String = "AAA"
Dim params As Microsoft.Reporting.WinForms.ReportParameter
params = New Microsoft.Reporting.WinForms.ReportParameter("REparam1", RateId)
Me.ReportViewer1.LocalReport.SetParameters(params)

パラメータを文字列にしてもできませんでした。
レポートに配置してあるテーブルにフォームからパラメータを渡して
フィルタ処理をしたかったのですが残念です。
BindingSource.Filter=でもフィルタ処理されないみたいなので、
レポート用にデータセットを作成してフィルタ処理を行ったデータを格納したほうが
いいんでしょうか?
Ahf
大ベテラン
会議室デビュー日: 2006/08/16
投稿数: 172
投稿日時: 2006-08-28 00:26
あまりお役に立てなかったようで申し訳ありません。

現在の状態ではだんくさんの言われる、フィルタ後のデータを格納するのが
最も早いかと思われます。

しかしパラメータを設定しRefreshReportを行っても動作しないというのは、
動作的に気になる点があるんですよね、ReportViewerは。
もう少しMSDN2ライブラリなどで情報が出そろえばいいのですけどね。
だんく
常連さん
会議室デビュー日: 2006/02/06
投稿数: 47
投稿日時: 2006-08-28 12:31
いえいえ、色々と教えていただきありがたく思います。
私の調べた範囲では
http://msdn2.microsoft.com/ja-JP/library/ms251682.aspx
が近いのでは?と思いますが、言語がC#なので正直わかりません。
ちなみに、上にある。Download sampleはリンク切れみたいでDLできませんでしたが、
検索したら
http://www.microsoft.com/downloads/details.aspx?familyid=F38F7037-B0D1-47A3-8063-66AF555D13D9&displaylang=en
がありましたので、たぶん該当のファイルだと思います。
コードの変換(WEBページでありました。)
C#→VBもやってみましたが、エラーがでました。
ありがとうございます。
1

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