在我的博客里面,很多Winform程序里面都用到了分頁處理,這樣可以不管是在直接訪問數據庫的場景還是使用網絡方式訪問WCF服務獲取數據,都能獲得較好的效率,因此WInform程序里面的分頁控件的使用是很好的一個解決方式,它能夠快速獲取數據,並將可能減少我們增加太多的代碼邏輯,實現簡單、高效、統一的理念。本篇主要介紹如何在分頁的GridControl里面如何實現數據的統計功能。
一般情況下,分頁控件呈現分為兩種方式,一種需要有分頁碼的真正分頁處理,一種是不需要分頁處理,但是列表和功能基本保持一致的界面,其實這兩種情況都是對列表控件的進一步封裝,以方便使用的目的。
有分頁底欄的控件界面:

無需分頁的,保持一致界面的控件效果。

這兩種方式,都是對GridControl控件的封裝,而且他們的使用步驟和屬性基本上保持一致。
使用代碼如下所示。
this.winGridView1.BestFitColumnWith = false; this.winGridView1.AppendedMenu = this.contextMenuStrip1; this.winGridView1.gridView1.DataSourceChanged += new EventHandler(gridView1_DataSourceChanged); this.winGridView1.OnRefresh += new EventHandler(winGridView1_OnRefresh); this.winGridView1.gridView1.CustomColumnDisplayText += new DevExpress.XtraGrid.Views.Base.CustomColumnDisplayTextEventHandler(gridView1_CustomColumnDisplayText); this.winGridView1.gridView1.RowCellStyle += new DevExpress.XtraGrid.Views.Grid.RowCellStyleEventHandler(gridView1_RowCellStyle);
那么我們如何在分頁控件的基礎上增加統計功能呢,由於分頁控件的字段是根據配置自動創建的,我們需要在創建后,數據綁定的時候,把它增加上去,這樣我們就可以實現數據的統計處理了,我們最終希望的統計效果是在底部統計欄目里面增加一些特殊的值的統計處理,界面如下所示,這個是我Winform開發框架里面,對於庫存查詢統計的一個案例,供參考。

上面的統計實現代碼如下所示。
/// <summary> /// 常見匯總信息 /// </summary> private void CreateSummary() { GridView gridView1 = this.winGridView1.gridView1; if (gridView1 != null && gridView1.Columns.Count > 0) { gridView1.GroupSummary.Clear(); gridView1.OptionsView.ColumnAutoWidth = false; gridView1.OptionsView.GroupFooterShowMode = DevExpress.XtraGrid.Views.Grid.GroupFooterShowMode.VisibleAlways; gridView1.OptionsView.ShowFooter = true; gridView1.OptionsView.ShowGroupedColumns = true; gridView1.OptionsView.ShowGroupPanel = false; DevExpress.XtraGrid.Columns.GridColumn IDColumn = gridView1.Columns["ID"]; IDColumn.Summary.AddRange(new DevExpress.XtraGrid.GridSummaryItem[] { new DevExpress.XtraGrid.GridColumnSummaryItem(DevExpress.Data.SummaryItemType.Count, "ID", "記錄數:{0}")}); DevExpress.XtraGrid.Columns.GridColumn StockQuantityColumn = gridView1.Columns["STOCKQUANTITY"]; StockQuantityColumn.Summary.AddRange(new DevExpress.XtraGrid.GridSummaryItem[] { new DevExpress.XtraGrid.GridColumnSummaryItem(DevExpress.Data.SummaryItemType.Sum, "STOCKQUANTITY", "庫存數量:{0}")}); DevExpress.XtraGrid.Columns.GridColumn StockAmountColumn = gridView1.Columns["STOCKAMOUNT"]; StockAmountColumn.Summary.AddRange(new DevExpress.XtraGrid.GridSummaryItem[] { new DevExpress.XtraGrid.GridColumnSummaryItem(DevExpress.Data.SummaryItemType.Sum, "STOCKAMOUNT", "庫存金額:{0:C2}")}); } }
這個函數,我們可以在數據變化的時候,重新調用函數進行統計設置即可,如下代碼所示。
private void gridView1_DataSourceChanged(object sender, EventArgs e) { if (this.winGridView1.gridView1.Columns.Count > 0 && this.winGridView1.gridView1.RowCount > 0) { //統一設置100寬度 foreach (DevExpress.XtraGrid.Columns.GridColumn column in this.winGridView1.gridView1.Columns) { column.Width = 100; } //可特殊設置特別的寬度 SetGridColumWidth("Note", 200); SetGridColumWidth("ItemNo", 120); SetGridColumWidth("ItemBigType", 120); SetGridColumWidth("WareHouse", 120); SetGridColumWidth("ID", 100); SetGridColumWidth("StockQuantity", 120); SetGridColumWidth("StockAmount", 160); //ID,StockQuantity,Unit,Price SetGridColumWidth("Unit", 80); SetGridColumWidth("Price", 80); } CreateSummary(); }
以上就是基於DevExpress樣式的Winform分頁控件的基礎上實現的統計數據效果,希望對你使用有幫助。
