vb.net に reportviewer があり、Report1 と Report2 という 2 つの .rdlc ファイルがあります。どちらもテーブルと同じデザインですが、Report1 にはパラメーターとフィルターがあり、Report2 は私のレコードのすべてを表示するだけです。
設計時にレポートビューアーにデータソースをバインドする方法は知っていますが、実行時にそれを行う方法がわかりません。フォームが初めてロードされたとき、およびユーザーが実際に何かを検索したときに、データソースを切り替える必要があります。基本的にこれは私が考えていることです。
http://imageshack.us/photo/my-images/407/reportzm.png/
フォームが初めて読み込まれたときにすべてのレコードを表示する必要があります。そのため、フィルターがないものには Report2.rdlc が必要になります。
Report1.rdlc をバインドすると、次のように表示されます
http://imageshack.us/photo/my-images/255/er11.png/
テキストボックスに値を入力して検索をクリックする以外は何も表示されません。検索対象に基づいてレコードが読み込まれます。
これがコードです。
Imports Microsoft.Reporting.WinForms
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'TODO: This line of code loads data into the 'houseDataSet.Table1' table. You can move, or remove it, as needed.
Me.Table1TableAdapter.Fill(Me.houseDataSet.Table1)
Me.ReportViewer1.RefreshReport()
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim a As New ReportParameter("ReportParameter1", TextBox1.Text)
ReportViewer1.LocalReport.SetParameters(New ReportParameter() {a})
ReportViewer1.RefreshReport()
End Sub
End Class