DevExpress的XtraReports是为 .NET 创建的完全集成、功能强大并且灵活的报表系统,XtraReports 中的每个报表都可以被绑定到数据或者不绑定, 要创建绑定报表,则首先要把报表绑定到数据源,然后指定每个报表控件的数据绑定选项,我今天和大家分享一个实例演示如何将数据源绑定到自定义的XtraReports中并预览效果。
操作指导:
步骤1.创建一个新的Windows窗体应用程序
首先我们创建一个Windows窗体应用程序,并将其命名为salaryReports,目标框架选择.NET Framework 4.7.2,如图1所示;
在解决方案资源管理器中中右键单击项目名称,然后选择”添加->新文件夹”项,将新文件夹命名为“ Data”,如图2所示:
重复这些操作添加“Report”文件夹,如图3所示:
步骤2.添加数据源
添加一个数据集的应用程序,右键单击我们的“ Data” 文件夹,然后选择“ 添加-> 现有项…”。这将调用“打开文件”对话框。在此对话框中,找到实例根目录中的EmployeesDB.mdb文件(要想看到此文件,请将文件过滤器设置为“All Files(*.*)”噢~),如图4所示:
添加数据库文件后,在Visual Studio的工具栏输入”data sources”,选择匹配到的“Data Sources”项,如图5所示:
选中后,左侧栏自动弹出Data Source工具栏,点击“添加新的数据源”项调用“数据源配置向导”,如图6所示:
在“数据源配置向导”中,选择“DataBase”,点击“下一步”,如图7所示:
选择“DataSet”,点击“下一步”,如图8所示:
选择”EmployeesDB.mdb”文件,点击“下一步”,如图9所示:
设置连接名为“EmployeesDBConnectionString”,点击“下一步”,如图10所示:
选择数据集目标,这里只选择“Views”中的“Full Emp Data Query”项,设置数据集名称为“EmployeesDBDataSet”,点击“完成”,如图11所示:
添加成功后,可以看到项目中已自动添加了EmployeesDBDataSet.xsd项,如图12所示:
步骤3.创建Report
右键单击解决方案资源管理器中的“Reports”文件夹,然后将鼠标悬停在“ Add DevExpress Item”菜单项上以显示该子菜单,然后从子菜单中选择“ Report” ,如图13所示:
在项目名对话框中输入”EmployeeReport.cs”,点击“OK”,将新的空白报告添加到应用程序,如图14所示:
选择“空”,点击“完成”,如图15所示:
步骤4.将Report绑定到数据库
单击XtraReport左上角箭头LOGO显示智能标记面板,然后单击DataSource属性下拉列表,选择“EmployeesDBDataSet”数据集来绑定Report,选择DataSource时,将自动填充DataMember和DataAdapter属性,这样就成功将Report绑定到数据库了,如图16所示:
步骤5.自定义Reprot的布局
Report布局由带和控件组成,将Report添加到项目后,默认情况下可以使用三个Report带:TopMargin,Detail和BottomMargin。
将页眉添加到报表中需要添加PageHeaderBand,打开Visual Studio工具栏中的”XtraReports”资源管理器,如图17所示:
右键选择报表资源管理器中的”EmployeeReport”,选择”Insert Band”项,选择“PageHeader”项将PageHeaderBand添加到Report中,如图18所示:
添加Report Control中的XRLabel,XRLine和XRPageInfo控件到PageHeaderBand中,如图19所示:
调整PageHeaderBand的高度并调整页面标题布局的控件大小,如图20所示:
双击xrLabel1,然后为Report标题改成“ 员工薪资报告”,如图21所示:
点击XRLine1控件,从属性窗口中设置线宽属性为2,如图22所示:
点击XRPageInfo,从属性窗口中设置“Page Infomation”为“DataTime” ,在”Text Format String”中键入“{0:yyyy年MMMd日}”,或选择任意一个标准时间格式,如图23所示:
步骤6.将控件添加到DetailBand
添加两个XRLabel和两个XRTabel控件到Detial区域中,删除xrTableCell3单元和xrTableCell6单元,拉伸这些表以匹配页面宽度并调整单元格的大小,使每个表占据页面宽度的一半,如图24所示:
为了避免在单个页面上显示来自不同记录的不相关数据,我们可以使用PageBreak属性可强制每页显示一个详细信息。打开Detail Band智能标记,然后从PageBreak下拉列表中选择“ AfterBand”,如图25所示:
右键单击XRTable控件,然后选择“插入->下方的行”,在现有的下方添加一行,对于以下详细信息区域布局,第一张表添加三行,第二张表添加两行,如图26所示:
步骤7.将Report控件绑定到数据
从Visual Studio的工具栏中打开XtraReports菜单,然后打开“ Field List”,通过打开控件智能标记并从“ 数据绑定”下拉列表中选择一个数据字段拖动到对应的Report控件中进行绑定,如图27所示:
步骤8.主界面添加Button打开报表
打开Form1设计器,拖放一个SimpleButton控件到主界面中,如图27所示:
并在按钮点击事件中添加以下代码:
private void simpleButton1_Click(object sender, EventArgs e) { EmployeeReport empReport = new EmployeeReport();//使用EmployeeReport的实例 ReportPrintTool printTool = new ReportPrintTool(empReport);//使用ReportPrintTool的实例生成Report预览 printTool.ShowPreviewDialog();//打开Report界面 }
步骤9.编译运行,查看Report预览效果,如图28所示:
代码全文:
using System; using System.Windows.Forms; using DevExpress.XtraReports.UI; using salaryReports.Reports; namespace salaryReports { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void simpleButton1_Click(object sender, EventArgs e) { EmployeeReport empReport = new EmployeeReport();//使用EmployeeReport的实例 ReportPrintTool printTool = new ReportPrintTool(empReport);//使用ReportPrintTool的实例生成Report预览 printTool.ShowPreviewDialog();//打开Report界面 } private void simpleButton2_Click(object sender, EventArgs e) { System.Diagnostics.Process.Start("https://www.daboke.com");//欢迎访问大博客,阅读更多编程实战案例! } private void simpleButton3_Click(object sender, EventArgs e) { System.Diagnostics.Process.Start("https://www.daboke.com/devexpress/xtrareportsapp.html");//欢迎访问大博客,阅读更多编程实战案例! } private void simpleButton4_Click(object sender, EventArgs e) { System.Diagnostics.Process.Start("https://space.bilibili.com/580719958");//欢迎访问我的B站频道-编程自修室,观看更多C#编程实战视频! } } }
原文链接:https://www.daboke.com/devexpress/xtrareportsapp.html
源码下载:https://pan.baidu.com/s/1mgPHn4ML0oUnxEaYgAm1XA 提取码:1e53
B站up主-编程自修室:https://space.bilibili.com/580719958