vb.net的Framework平台提供了强大的报表支持,所以我们不再需要借助第三控件,只需在窗体上添加一个报表容器插入一张报表就可以了:
(1)添加报表容器
直接在工具箱里明确的标出,效果如图
(2)制作报表
在U层右击选在添加,新建像,找到报表
接下来有两种方法,一个是打开工具箱,里面将只会显示和报表有关的项,里面有表,直接拖到上面,或者右击点击插入——表,这是便会让你配置数据源,点击新建,一直下一步
最后进入到“资源配置向导”,根据自己需要选取,因为是做账单的报表所以我选的是checkday表】
接下来我们再去视图把报表数据调出来
设计报表有了如图这两个就可以随心所欲了
开始设计和最终结果
需要强调一点的是此处的参数名字要和我们代码中的参数名保持一致,当然我们在窗体上的参数是一个什么类型我们也应对应把参数属性改成对应的类型,应为账单我们是一时间查询所以改成date是就可以了不然有可能会报错
(3)将报表在报表器中显示出来
不能忘了引用报表命名空间
imports Miscrsoft.Reporting.WinForms
<strong><span style="font-size:18px;"> Private Sub btnUpdate_Click(sender As Object, e As EventArgs) Handles btnUpdate.Click
Dim table As DataTable
Dim checkfac As New Facade.CheckFAC
Dim checkdate As String = dptDay.Value.ToShortDateString
table = checkfac.CheckDay(checkdate)
If table.Rows.Count > 0 Then
'定义报表数据源
Dim rptDateSource = New ReportDataSource
'定义数据集名称
rptDateSource.Name = "DataSet1"
rptDateSource.Value = table
'说明reportviewer承载的报表名
ReportViewer1.LocalReport.ReportEmbeddedResource = "UI.CheckDay.rdlc"
'添加报表数据源
ReportViewer1.LocalReport.DataSources.Add(rptDateSource)
'定义报表参数
Dim Reportdate As ReportParameter = New ReportParameter("Reportdate", dptDay.Value.Date.ToShortDateString)
'传入参数
ReportViewer1.LocalReport.SetParameters(Reportdate)
ReportViewer1.RefreshReport()
End If
End Sub
End Class</span></strong>