在第一次机房的时候,由于VB没有自带的报表,所以我们用的是第三方 的报表控件!设计这个报表真是用了我很多的时间!这次重构中,.net版的开发环境VS中就提供了一个现成的报表控件,再经过和数据库的绑定就可以了,不用写多余的代码,这样很是方便,所以下面让我们来见识一下!
第一步:
添加报表控件,在工具箱中:
右击U层添加新建项,然后从里面选择报表这一项:如图:
然后得到如下图的效果:
<span style="font-family:KaiTi_GB2312;font-size:18px;"><strong>Me.SettleAccountsInfoTableAdapter.Fill(Me.MyChargeDataSet.SettleAccountsInfo) Me.ReportViewer1.RefreshReport()</strong></span>
但是对于周结账单,我们要点击查询按钮,根据日期控件中的内容去查找数据库中适合的数据显示到报表中。右击报表数据窗体中的参数-----添加参数(本例为:rptStartDate ),再加上下面的代码就可以实现此功能了!
<span style="font-family:KaiTi_GB2312;font-size:18px;"><strong> Dim selectSA As New Facade.SettleAccountFacade
Dim dt As New DataTable Dim enSettleAccountInfo As New Entity.SettleAccountsEntity Dim enSettleAccount As New Entity.SettleAccountsEntity enSettleAccount.SAdate = DateTimePicker1.Text.Trim enSettleAccountInfo.SAdate = DateTimePicker2.Text.Trim '给DataTable赋值 dt = selectSA.fSelectSA(enSettleAccountInfo,enSettleAccount) '定义报表数据源 Dim rptDataSource As New ReportDataSource rptDataSource.Name = "DataSet1" rptDataSource.Value = dt '说明ReportViewer承载的报表名 ReportViewer1.LocalReport.ReportEmbeddedResource = "UI.Report2.rdlc" '设置两个参数的值,这两个参数是两个日期参数,通常设置为文本类型的。 Dim rptStartDate As ReportParameter = New ReportParameter("rptStartDate ",DateTimePicker1.Text.Trim) ReportViewer1.LocalReport.SetParameters(New ReportParameter() {rptStartDate }) Dim rptEndDate As ReportParameter = New ReportParameter("rptEndDate ",DateTimePicker2.Text.Trim) ReportViewer1.LocalReport.SetParameters(New ReportParameter() {rptEndDate }) '清空ReportViewer的数据源 ReportViewer1.LocalReport.DataSources.Clear() '加载ReportViewer的数据源为rptDataSource ReportViewer1.LocalReport.DataSources.Add(rptDataSource) '刷新ReportViewer Me.ReportViewer1.RefreshReport() </strong></span>
可能出现的错误:
小结: