如何在 vb.net 的报表查看器中显示基于 2 个参数的 table
how to show a table based on 2 parameters in report viewer in vb.net
我有一份报告,我需要根据表单中的 2 个参数(1 个组合框和 1 个变量)显示数据库中的视图。
这是我的视图图像 (view_population)。
这是我用来填写报告 table 的代码。
Me.view_populationTableAdapter.Fill(Me.phil_vetDataSet.view_population)
我需要根据年份(组合框)和表单 (frmReport) 中的类别 (varCategory) 过滤视图,但如何使用 2 个参数过滤报表的 table ?
我用这段代码来做,但我不知道如何正确使用它。
Dim varCategory As String = ""
If frmReport.cbBackyard.Checked = True Then
varCategory = "Backyard"
ElseIf frmReport.cbCommercial.Checked = True Then
varCategory = "Commercial"
Else
varCategory = ""
End If
Dim Year As New ReportParameter("for_year", frmReport.cboYear.Text)
ReportViewer1.LocalReport.SetParameters(Year)
我需要在报表中输出此内容,但我不知道如何将 sql 语句放入表单中以过滤视图。
非常感谢任何建议和意见。谢谢
如果你想在运行时过滤报告,你可以做类似的事情。
Dim con As New OleDbConnection
con.ConnectionString = connection_string
con.Open()
Dim cmd As New OleDbCommand("<Query>", con)
cmd.CommandType = CommandType.Text
Dim ds As New DataSet
Dim da As New OleDbDataAdapter(cmd)
da.Fill(ds)
Dim rpt As New <ReportName>
rpt.SetDataSource(ds.Tables(0))
<TableName>.CrystalReportViewer1.ReportSource = rpt
cmd.ExecuteNonQuery()
con.Close()
此代码只是为了让您了解如何操作。对于参数,您只需要在查询中添加对象,它将在报告中为您过滤记录。
我有一份报告,我需要根据表单中的 2 个参数(1 个组合框和 1 个变量)显示数据库中的视图。
这是我的视图图像 (view_population)。
这是我用来填写报告 table 的代码。
Me.view_populationTableAdapter.Fill(Me.phil_vetDataSet.view_population)
我需要根据年份(组合框)和表单 (frmReport) 中的类别 (varCategory) 过滤视图,但如何使用 2 个参数过滤报表的 table ?
我用这段代码来做,但我不知道如何正确使用它。
Dim varCategory As String = ""
If frmReport.cbBackyard.Checked = True Then
varCategory = "Backyard"
ElseIf frmReport.cbCommercial.Checked = True Then
varCategory = "Commercial"
Else
varCategory = ""
End If
Dim Year As New ReportParameter("for_year", frmReport.cboYear.Text)
ReportViewer1.LocalReport.SetParameters(Year)
我需要在报表中输出此内容,但我不知道如何将 sql 语句放入表单中以过滤视图。
非常感谢任何建议和意见。谢谢
如果你想在运行时过滤报告,你可以做类似的事情。
Dim con As New OleDbConnection
con.ConnectionString = connection_string
con.Open()
Dim cmd As New OleDbCommand("<Query>", con)
cmd.CommandType = CommandType.Text
Dim ds As New DataSet
Dim da As New OleDbDataAdapter(cmd)
da.Fill(ds)
Dim rpt As New <ReportName>
rpt.SetDataSource(ds.Tables(0))
<TableName>.CrystalReportViewer1.ReportSource = rpt
cmd.ExecuteNonQuery()
con.Close()
此代码只是为了让您了解如何操作。对于参数,您只需要在查询中添加对象,它将在报告中为您过滤记录。