rdlc报表的使用 我会带着你远行 2022-08-26 04:52 140阅读 0赞 **RDLC报表的使用** 机房收费系统这是第三遍重构了,但每当到报表这块都是让我很纠结,这次合作开发亦是如此。在学习vb6时,使用的报表是第三方的Grid++Report;VB.Net个人版以及合作版使用的是在VS .NET自带的报表设计器,Microsoft 将这种报表的后缀定为RDLC. RDLC(Report Definition Language Client)是微软基于RDL在.NET上继续完善的结果。 下面就以机房收费系统的“账单查询”为例,开始制作一张简单报表,显示结果如下: **一、制作步骤:** 1.在建好的VS窗体项目“机房收费系统”**建立一个Form窗体**:账单查询。 2.**添加数据源**。 在左边的窗体内选择“添加新数据源”或在菜单上操作选择“添加新数据源“。 ![Center][] 选择后出现对话框,选择数据库,进入下一步。 ![Center 1][] ![Center 2][] 选定数据源后,指定数据库文件,并进行测试,如果连接不通,请检查你的软件配置。 ![Center 3][] 进行下一步,至显示出库文件内的表及视图,然后打开表,并选择其中的T\_CheckOut,选择完成。 ![Center 4][] 在数据源窗口中显示出所选择表及表内字段,以备使用。 ![Center 5][] 同时在资源管理器窗口中,也可以看到新增加的数据文件。 ![Center 6][] **3.报表浏览器** 在新建的窗体内,放入报表浏览器控件。 ![Center 7][] **4.建立报表文件** ** ** 选中报表浏览器控件后,在控件的右上角会出现一个小三角,出现一个菜单,选择“建设新报表”或在解决方案资源管理器中添加一个新的报表文件: ![Center 8][] 设计报表的过程此文写的很详细,不明白的可以参考:[VB.NE rdlc报表的使用][VB.NE rdlc] ,在此就不赘述。 我的报表模板的最后显示结果如下图: ![Center 9][] 这里提一下,数据行数据填充,在其“表达式”中可以看到: ![Center 10][] 4.编码部分(这里只贴了界面层的代码): [vb] view plaincopyprint? Imports System Imports Microsoft.Reporting.WinForms Public Class QueryBillUI Dim myFA As New Facade.BillManagementFA Dim dt As DataTable ''' <summary> ''' 窗体加载事件 ''' </summary> ''' <param name="sender"></param> ''' <param name="e"></param> ''' <remarks></remarks> Private Sub WeekBillUI_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.ReportViewer1.RefreshReport() Dim num As Integer '获取操作员用户名和真实姓名 dt = myFA.SelectUser() '获取cboUserID集合中的值 cboUserID.Items.Add("所有") '默认值:“所有”,并将其转换为"*" num = dt.Rows.Count '从数据库中读取过来的值。 While num > 0 cboUserID.Items.Add(Trim(dt.Rows(num - 1)("用户名"))) '获取DataTable表中某行某列的值赋给cboUserID集合中 num = num - 1 End While cboUserID.SelectedIndex = 0 '设置组合框的默认值为“所有”。 Me.ReportViewer1.RefreshReport() End Sub '查询 Private Sub btnQuery_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnQuery.Click Dim enCheckOut As New Entity.CheckOutEntity Dim strUserID As String '此变量用于保存“用户名” strUserID = cboUserID.Text.Trim() If strUserID = "所有" Then strUserID = "*" End If enCheckOut.UserID = strUserID enCheckOut.BeginDate = Format(dtpStartDate.Value, "yyyy-MM-dd") enCheckOut.EndDate = Format(dtpEndDate.Value, "yyyy-MM-dd") Try dt = myFA.QueryBill(enCheckOut) Catch ex As Exception MessageBox.Show(ex.Message.ToString()) Return End Try '声明一个报表数据源对象 Dim rptDataSource As New ReportDataSource '设置报表数据源名称 rptDataSource.Name = "T_CheckOut" '设置报表数据源实例 rptDataSource.Value = dt '设置嵌入报表的资源的名称 'ReportViewer1.LocalReport.ReportEmbeddedResource = "UI.ReportBill.rdlc" ReportViewer1.LocalReport.ReportEmbeddedResource = "ReportBill.rdlc" '清空数据源 ReportViewer1.LocalReport.DataSources.Clear() '添加报表数据源 ReportViewer1.LocalReport.DataSources.Add(rptDataSource) '设置报表中的参数集合,传递的参数,名字大小写必须一致。 '且其本身数据类型必须与报表中定义的数据类型也必须一致。 'Dim params() As ReportParameter = {New ReportParameter("DateStart", Date.Parse(dtpStartDate.Text)), New ReportParameter("DateEnd", Date.Parse(dtpEndDate.Text))} Dim params() As ReportParameter = {New ReportParameter("DateStart", dtpStartDate.Text), New ReportParameter("DateEnd", dtpEndDate.Text), New ReportParameter("UserID", LoginUI._userID)} '传递报表中的参数集合 ReportViewer1.LocalReport.SetParameters(params) '刷新报表 Me.ReportViewer1.RefreshReport() End Sub End Class **二、运行结果** 程序执行后,界面的运行结果如下图: ![Center 11][] 此文重点部分介绍的是“配置数据源”和“建立报表文件”中的参数设定。因为个人在这两部分理解不是很好,所以这次总结在这两部分画的笔墨有些多。 [Center]: /images/20220824/3e03f27293c540458637408c909f3a66.png [Center 1]: /images/20220824/28668a1636844371b4e45490a39c00a6.png [Center 2]: /images/20220824/e982dbac94384f63b78c049b07455032.png [Center 3]: /images/20220824/04f8a6ef5f4e4060ab554bd216d08acc.png [Center 4]: /images/20220824/28d2a113b1424a2e8c804ff0a9621864.png [Center 5]: /images/20220824/aace401d0f32491ca4904ac1299a507a.png [Center 6]: /images/20220824/c8acaebeac674e86860cd13e5b28994e.png [Center 7]: /images/20220824/07b7c5e419eb4f1eb7753540862330ef.png [Center 8]: /images/20220824/2ed18525304849478c697a1484534c59.png [VB.NE rdlc]: http://cache.baiducontent.com/c?m=9d78d513d98317f109fa950e1a66d4716a5e97133fc0a76368d5e35fe5624c35407195b830561b13d2b56b1670b83e2afd804765410237b7eadff94ccacde13f598c3045710b873105a51cb8bd4232b124872b9ebb5ea7e4ff68d5e890c4de274ed7035b27d5e78b2d51559c33e71446bff1df555f0443e7a76b36a35375299e3e13f601a2b16c391ad7a19b0f179d6bcd641295ab32ba34&p=8c71c916d9c133ea1cbd9b7e0d12c9&newp=ce6ad25685cc43ff57ed947a584786231610db2151d0d4&user=baidu&fm=sc&query=rdlc%B1%A8%B1%ED%D4%F5%D1%F9%CC%ED%BC%D3%22%C4%DA%D6%C3%D7%D6%B6%CE%22&qid=&p1=2 [Center 9]: /images/20220824/cdda44ca03684a908cc4ef5d170bc093.png [Center 10]: /images/20220824/2e0b2e39f46d4f46aced446d370050fc.png [Center 11]: /images/20220824/41a57bd2e3e146af849324abbe38c3b0.png
还没有评论,来说两句吧...