在我們使用DevExpress開發報表的過程中,對於頁面中復雜的數據合計,我們可能會使用到自定義Summary.下面通過一個例子來進行說明:
首先,我建立了如上圖所示的報表頁面,其中的數據源來自class列表,其中處的lbST使用了對當前Group的Sum,
處的XRLabel控件使用了對整個Report的Sum。為了測試的方便,該例子使用匯總lbCP的值與位於Group列表中lbST的值來進行演示,其中,GroupField為MedinineName,lbGrandTotal為總計。具體操作如下所示:
1. 設置lbGrandTotal的Summary為Custom;
2. 查看當前Report的代碼,然后在代碼中定義變量AC_GrandTotal:
private double AC_GrandTotal = 0;
3. 為控件lbCP添加事件SummaryReset和TextChanged:

private void lbCP_SummaryReset(object sender, EventArgs e) { AC_GrandTotal = 0; } private void lbCP_TextChanged(object sender, EventArgs e) { if (lbCP.Text != "") { AC_GrandTotal += Convert.ToDouble(lbCP.Text); } }
4. 為控件lbST添加事件SummaryRowChanged:
private void lbST_SummaryRowChanged(object sender, EventArgs e)
{
AC_GrandTotal += Convert.ToDouble(lbST.Summary.GetResult());
}
5. 為控件lbGrandTotal添加事件SummaryGetResult:
private void lbGrandTotal_SummaryGetResult(object sender, SummaryGetResultEventArgs e)
{
e.Result = AC_GrandTotal;
e.Handled = true;
}
6. 運行當前報表,最終的呈現結果如下所示:
到此,一個具有自定義Summary功能的報表就完成了!