前言
报表花了一些时间,主要是因为没有理清楚,博客上看大家有直接绑定的有写代码用七层解决的,我一开始两种方法混着用了,所以出现了许多错误。
具体的步骤大家写了很多,我就不重复了。
代码展示
Imports Microsoft.Reporting.WinForms '添加引用
Public Class frmDaylyReport
Private Sub btnRefresh_Click(sender As Object, e As EventArgs) Handles btnRefresh.Click
Dim daylyReportDataSource As New ReportDataSource '实例化数据源
'设置报表数据源名称 是数据集的名称
daylyReportDataSource.Name = "DataSetSettleAccount"
'设置报表数据源实例 是数据库中的表的名字
daylyReportDataSource.Value = DataSetSettleAccount.SettleAccount
Me.rpDaylyReport.LocalReport.ReportEmbeddedResource = "UI.Report1.rdlc"
'清空存在报表
Me.rpDaylyReport.LocalReport.DataSources.Clear()
'添加数据源
Me.rpDaylyReport.LocalReport.DataSources.Add(daylyReportDataSource)
'传参
'TODO: 这行代码将数据加载到表“DataSetSettleAccount.SettleAccount”中。您可以根据需要移动或删除它。
Me.SettleAccountTableAdapter.Fill(Me.DataSetSettleAccount.SettleAccount, Format(Today(), "yyyy-MM-dd"))
'刷新报表
Me.rpDaylyReport.RefreshReport()
End Sub
Private Sub DaylyReport_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Me.rpDaylyReport.RefreshReport() '显示报表
End Sub
遇到的问题
解决方法
我用的是直接绑定,感觉写7层太麻烦了。因为sql语句用不到这些参数,sql语句中设计到的时间是在方法的参数部分传过来的,没有必要在报表里定义这些参数;
但是如果想在报表中显示这些参数,就要这样添加参数
结语
vb的时候使用报表记得我用的就不太熟练,这次有意识的多查了查,请教了好多同学。他们都好厉害啊,三人行必有我师焉。