如何预览报告A并直接打印报告B?

时间:2016-06-27 07:50:43

标签: vb.net reporting-services printing rdlc

我有两个模式的两个报告。两个报告都使用相同的数据集和参数。 报告A已插入ReportViewer以显示winform中的预览。 但是当用户单击工具栏上的打印按钮时。打印机将打印报告B.

在Load Event中的VB.Net

--Sample table
if object_id(N'tempdb..#patients') is not null drop table #patients;
select [name] = N'name1', [age] = 35
into #patients
union all select N'name2', 28
union all select N'name3', 29
union all select N'name4', 28
union all select N'name5', 28
union all select N'name6', 29
union all select N'name7', 31
union all select N'name8', 35
--select * from #patients

;with cte as
(
    select  [name], [age]
            ,[dr_min] = dense_rank() over(order by [age] asc)
            ,[dr_max] = dense_rank() over(order by [age] desc)
            ,[averageAge] = avg([age]) over()
    from #patients
)
select c1.[name], [highestAge] = c1.[age], c2.[name], [lowestAge] = c2.[age], c1.[averageAge]
from cte as c1
join cte as c2 on c2.[dr_min] = c1.[dr_max]
where c2.[dr_min] = 1 or c1.[dr_max] = 1
order by c1.[name], c2.[name];

根据上述代码。它将在reportViewer1中显示报告A.

在点击打印按钮事件中,当用户点击工具栏上的打印按钮时,它将处理。 我只将路径从报告A 更改为报告B

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

            Me.MACHINESTableAdapter.Fill(Me.DataSet1.MACHINES)       
            Me.ReportViewer1.LocalReport.ReportPath = "Report_A.rdlc"
            Dim rds As New ReportDataSource("MACHINES", Me.MACHINESBindingSource)
            Me.ReportViewer1.LocalReport.DataSources.Clear()
            Me.ReportViewer1.LocalReport.DataSources.Add(rds)
            Dim params(1) As ReportParameter
            params(0) = New ReportParameter("pTest", "AAAAAAA")            
            Me.ReportViewer1.LocalReport.SetParameters(params)
            Me.ReportViewer1.RefreshReport()
       End Sub

但它不起作用。打印机可以将报告B打印到论文中。但是" MACHINES"来自Report_A的填充数据不会显示。

1 个答案:

答案 0 :(得分:0)

如果您在表单上放置两个报表查看器并设置,该怎么办?报告查看器2可见为假?

编辑:这应该是评论。从电话打字