【问题标题】:how to show a table based on 2 parameters in report viewer in vb.net如何在 vb.net 的报表查看器中显示基于 2 个参数的表格
【发布时间】:2016-12-09 06:40:19
【问题描述】:

我有一份报告,我需要根据表单中的 2 个参数(1 个组合框和 1 个变量)显示我的数据库中的视图。

这是我的视图 (view_population) 的图像。

这是我用来填写报告表格的代码。

 Me.view_populationTableAdapter.Fill(Me.phil_vetDataSet.view_population)

我需要根据表单 (frmReport) 中的年份(组合框)和类别(varCategory)过滤视图,但是如何使用这两个参数来过滤报表的表格?

我使用这个代码来做,但我不知道如何正确使用它。

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 语句放入表单中以过滤视图。

非常感谢任何建议和 cmets。谢谢

【问题讨论】:

    标签: mysql vb.net reporting-services parameters reportviewer


    【解决方案1】:

    如果你想在运行时过滤报告,你可以这样做。

    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()
    

    此代码只是为了让您了解您将如何做到这一点。对于您只需要在查询中添加对象的参数,它将在报告中为您过滤记录。

    【讨论】:

    • 我正在使用 Windows 报告查看器。在您的代码中,Dim rpt As New &lt;ReportName&gt;&lt;TableName&gt;.CrystalReportViewer1.ReportSource 我不知道如何在我的代码中使用它。我试图将其更改为我的报告名称。但是错误说ReportSource is not a member of Microsoft.Reporting.Winforms.ReportViewer。谢谢你的想法,先生
    • 哦,我知道了,先生 :) 谢谢 :))
    • 很高兴为您提供帮助,如果您需要更多帮助,请告诉我。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-28
    • 1970-01-01
    • 1970-01-01
    • 2014-05-22
    相关资源
    最近更新 更多