Dev Express,一個非常優秀的報表控件。像其他報表一樣,該報表也包括幾個主要部分:Report Header,Page Header,Group Header,Detail,Group Footer,Page Footer和Report Footer共7個部分。,除此之外,我們還可以添加Detail Report,並同時添加與此相對應的Report Header/Footer。借助此功能可以實現多個Heaer與多個Detail相互交叉的效果!
一. 常見總結
CalculatedFile: 既可以用來計算兩個Field/Parameter的值,也可以增加條件判斷。在創建后Calculated Field之后,右鍵CalculatedField->Edit Expression,在打開的窗口中,可以看到其提供了許多豐富的功能,如:加,減,乘,除及合計等等常見功能!
Detail Report: 相當於一個新的report page,它可以有自己的ReportHeader,Detail及ReportFooter。有了Detail Report就意味着我們可以更加靈活地交叉多個Header與Detail而不用去使用Sub Report。
Sytle/Odd Style/Even Style:新建並批量使用樣式。以XRLabel為例,可以在其Style屬性中新建多個樣式,如果當前Report頁面中其他的XRLabel如果再使用相同的樣式時,只需要從樣式列表中選擇相應的樣式即可,減少了重復設置相同屬性的繁瑣過程!
Page Number:可以使用XRPageInfo控件。如要顯示為:1 OF 1,則需要設置XRPageInfo控件的屬性PageInfo為NumberOfTotal,且須將Format設置為:{0} OF {1}!
FormattingRules:主要通過對條件的設定來控制當前Band的顯示隱藏及顏色等的變化!
Landscape: 在設計report時,主要用來修改report的布局,即橫向或縱向。設置方法:在report page的空白處點擊Properties,在屬性窗口處找到Landscape,把其設為True即可!
二. 使用自定義的Summary
有時在進行GroupBy時需要對Summary的結果進行相加減或計算百分比,這時就需要用到自定義的Summary了。關於具體的使用如下所示,也可以參照該官方鏈接的解釋:
1. 我有一個界面,如下所示,需要在C處計算出B占A+B的百分比:
2. 選擇C處的XRLabel標簽(假設我們此處用XRLabel來放置C的value),右鍵->屬性->事件,找到以下內容,雙擊即可生成后台事件:
3. 修改上一步生成的事件處理過程為以下內容即可。

private void NoConsultVisitPercentage_SummaryGetResult(object sender, SummaryGetResultEventArgs e) { Decimal OVNum = Convert.ToDecimal(A.Summary.GetResult()); Decimal NCNum = Convert.ToDecimal(B.Summary.GetResult()); Decimal TotNum = OVNum + NCNum; if (OVNum > 0) { if (NCNum > 0) { Decimal d = NCNum * 100 / TotNum; e.Result = Decimal.Round(d, 2); e.Handled = true; } else { e.Result = 100; e.Handled = true; } } else { e.Result = 0; e.Handled = true; } }
PS. 在使用自定義Summry之前,一定要設置XRLabel的屬性為Custom,否則不會有任何效果,具體如下所示: