コンボリスト パラメーターが渡されたときに [レポートの表示] ボタンをクリックしないと、レポート ビューアーのグラフが読み込まれません。
選択したすべてのパラメーターが正しく渡され、レポート ビューアーの [レポートの表示] ボタンをクリックした後にのみレポートが読み込まれます。ASP.NET ページにこのレポート ビューアーがあり、パラメーターは、ユーザーが入力パラメーターを入力して選択するパラメーター フォームを持つ別の ASP.NET ページから作成されたセッション変数を使用して渡されます。
入力パラメーターとして、日付 (日付ピッカー) と会社名 (チェック ボックス付きの複数選択コンボ リスト) があります。
レポート パラメータが複数選択コンボ リストから取得されない限り、レポートは問題なく機能します。
レポート パラメーターをセッション変数として確立するために使用したコードを次に示します。
Session("labname") = Nothing
Session("fractionid") = FractionDropDownList.SelectedValue
For intloopindex As Integer = 0 To LabNamesCheckBoxList.Items.Count - 1
If LabNamesCheckBoxList.Items(intloopindex).Selected Then
Session("labname") &= LabNamesCheckBoxList.Items(intloopindex).Text & ControlChars.CrLf
End If
Next
Session("sdate") = sdate.text
Session("edate") = edate.text
これらのセッション変数をパラメーターとして reportviewer コントロールに渡すコードを次に示します。
IsPostBack でない場合
Dim fractionparam As String
Dim sdateparam As String
Dim edateparam As String
Dim regionparam As String
Dim labnameparam As String
regionparam = Session("regionid")
fractionparam = Session("fractionid")
labnameparam = Session("labname")
sdateparam = Session("sdate")
edateparam = Session("edate")
Dim rp(3) As Microsoft.Reporting.WebForms.ReportParameter
'rp(0) = New Microsoft.Reporting.WebForms.ReportParameter("regionid", regionparam)
rp(0) = New Microsoft.Reporting.WebForms.ReportParameter("fractionid", fractionparam)
rp(1) = New Microsoft.Reporting.WebForms.ReportParameter("labname", labnameparam)
rp(2) = New Microsoft.Reporting.WebForms.ReportParameter("sdate", sdateparam)
rp(3) = New Microsoft.Reporting.WebForms.ReportParameter("edate", edateparam)
Me.ReportViewer1.ServerReport.SetParameters(rp)
End If