最近这段时间难得空闲,于是打算做个报表功能,主要实现数据的分类汇总,以便不时之需。首先看看效果:
主要是根据工程类型这个字段进行分类,每个分类下对应的项目金额进行求和,当然,你也可以根据实际需求,进行求平均值等。如何做呢?
1.首先新建一个报表文件,在报表设计页面增加ReportHeader,用于显示你的报表名称,打印日期等信息
2.既然是分组,当然要添加分组控件,GroupHeader,用于显示每组的标题
3.增加数据绑定控件,我用的是DataTable
4.增加分组脚页GroupFooter,用于显示每组的汇总值
5.增加报表尾,用于显示报表的制作人等信息
整个设计页面如图:
如何绑定数据呢?
1.在报表控件的构造函数里面增加数据源参数,我用的是DataTable
public TZReport(DataTable dt)
{ InitializeComponent();}
2.紧接着为报表l绑定数据源 : this.DataSource = dt;
3.为每个数据显示Table的Cell绑定数据源:
this.xrTableCell8.DataBindings.Add("Text", DataSource, "ProjectName");
this.xrTableCell9.DataBindings.Add("Text", DataSource, "ContractMoney"); this.xrTableCell10.DataBindings.Add("Text", DataSource, "ChargeMoney"); this.xrTableCell11.DataBindings.Add("Text", DataSource, "PaidMoney"); this.xrTableCell12.DataBindings.Add("Text", DataSource, "YL"); this.xrTableCell13.DataBindings.Add("Text", DataSource, "SpareMoney"); this.xrTableCell14.DataBindings.Add("Text", DataSource, "CostMoney");
4.增加分组列
GroupHeader1.GroupFields.AddRange(new
DevExpress.XtraReports.UI.GroupField[] { new DevExpress.XtraReports.UI.GroupField("ProjectTypeName", DevExpress.XtraReports.UI.XRColumnSortOrder.Ascending) });其中 “ProjectTypeName”是你数据源里面的字段
5.为每组的数据统计绑定数据源
xrLabel1.DataBindings.Add("Text", dt, "ContractMoney");
xrLabel2.DataBindings.Add("Text", dt, "ChargeMoney"); xrLabel3.DataBindings.Add("Text", dt, "PaidMoney"); xrLabel4.DataBindings.Add("Text", dt, "SpareMoney"); xrLabel5.DataBindings.Add("Text", dt, "CostMoney"); xrLabel6.DataBindings.Add("Text", dt, "YL");这样基本就ok了。
PS:如何设置求和等聚合算法,dev提供了设计功能