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

问题描述 投票:0回答:1

我正在尝试使用 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 printing rdlc reportviewer
1个回答
0
投票

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

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

相反,您可以尝试添加一个新列

Copys
以将同一个表中的两个数据分组,其值为
ORIGINAL
Copy1

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

© www.soinside.com 2019 - 2024. All rights reserved.