如何在带有 VB.NET 的 rdlc 报告中一次性使用不同的标题设置打印多个参数

How to set parameters with print multiple in one go with different headings in rdlc report with VB.NET

提问人:siwa86 提问时间:10/30/2023 更新时间:11/2/2023 访问量:26

问:

我正在尝试使用带有 VB.NET 的 rdlc 报告中的不同标题一次性使用打印多个来设置参数 我有下面的代码。 我尝试了下面的代码,结果只有COPY1

请指导我

谢谢

谢谢

Public Class Form1
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

    End Sub
    Private Sub original()
        Dim table As New DataTable()
        table.Columns.Add("value", GetType(String))
        table.Columns.Add("price", GetType(String))
        table.Columns.Add("quantity", GetType(Double))
        table.Rows.Add("test1", "10", "20")
        table.Rows.Add("test2", "10", "20")
        Dim reportDataSource1 = New ReportDataSource("DataSet1", table)
        Me.ReportViewer1.LocalReport.DataSources.Clear()
        Dim reportParameters As New ReportParameterCollection()
        reportParameters.Add(New ReportParameter("paramHeader", "ORIGINAL"))
        Me.ReportViewer1.LocalReport.SetParameters(reportParameters)
        Me.ReportViewer1.LocalReport.DataSources.Add(reportDataSource1)
        Me.ReportViewer1.LocalReport.ReportEmbeddedResource = "Datatable_in_ReportViewer.Report1.rdlc"
        Me.ReportViewer1.RefreshReport()
    End Sub
    Private Sub copy1()
        Dim table As New DataTable()
        table.Columns.Add("value", GetType(String))
        table.Columns.Add("price", GetType(String))
        table.Columns.Add("quantity", GetType(Double))

        table.Rows.Add("test1", "10", "20")
        table.Rows.Add("test2", "10", "20")
        Dim reportDataSource1 = New ReportDataSource("DataSet1", table)
        Me.ReportViewer1.LocalReport.DataSources.Clear()
        Dim reportParameters As New ReportParameterCollection()
        reportParameters.Add(New ReportParameter("paramHeader", "COPY1"))
        Me.ReportViewer1.LocalReport.SetParameters(reportParameters)
        Me.ReportViewer1.LocalReport.DataSources.Add(reportDataSource1)
        Me.ReportViewer1.LocalReport.ReportEmbeddedResource = "Datatable_in_ReportViewer.Report1.rdlc"
        Me.ReportViewer1.RefreshReport()
    End Sub
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        original()
        copy1()
    End Sub
End Class
vb.net LINQ 打印 RDLC ReportViewer

评论

0赞 HardcoreGamer 10/31/2023
您想输出到单独的报表还是具有多个数据集/表的同一报表?
0赞 siwa86 10/31/2023
@HardcoreGamer,我想要一个表/数据集的相同报表

答:

0赞 HardcoreGamer 11/2/2023 #1

参数只有一个值,第二次添加时会覆盖。

reportParameters.Add(New ReportParameter("paramHeader", "ORIGINAL"))
reportParameters.Add(New ReportParameter("paramHeader", "COPY1"))

相反,您可以尝试添加一个新列来对同一表中的两个数据进行分组,其值为CopysORIGINALCopy1

Public Class Form1
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles 
MyBase.Load

End Sub
Private Sub original(ByRef table as DataTable))
    table.Rows.Add("original","test1", "10", "20")
    table.Rows.Add("original","test2", "10", "20")
End Sub
Private Sub copy1(ByRef table as DataTable)
    table.Rows.Add("copy1","test1", "10", "20")
    table.Rows.Add("copy1","test2", "10", "20")
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Dim table As New DataTable()
    table.Columns.Add("Copys", GetType(String))
    table.Columns.Add("value", GetType(String))
    table.Columns.Add("price", GetType(String))
    table.Columns.Add("quantity", GetType(Double))
    original(table)
    copy1(table)
    
    Dim reportDataSource1 = New ReportDataSource("DataSet1", table)
    Me.ReportViewer1.LocalReport.DataSources.Clear()
    Dim reportParameters As New ReportParameterCollection()
    Me.ReportViewer1.LocalReport.SetParameters(reportParameters)
    Me.ReportViewer1.LocalReport.DataSources.Add(reportDataSource1)
    Me.ReportViewer1.LocalReport.ReportEmbeddedResource = "Datatable_in_ReportViewer.Report1.rdlc"
    Me.ReportViewer1.RefreshReport()
End Sub
End Class

您将需要编辑 .rdlc 报表表并按新列对其进行分组Copys