最近這段時間難得空閑,於是打算做個報表功能,主要實現數據的分類匯總,以便不時之需。首先看看效果:
主要是根據工程類型這個字段進行分類,每個分類下對應的項目金額進行求和,當然,你也可以根據實際需求,進行求平均值等。如何做呢?
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提供了設計功能