Dev Express Report 學習總結(五)在分組中使用聚集表達式AggregateExpression


  聚集表達式AggregateExpression主要包括幾種:Avg(),Count(),Exists(),Max(),Min(),Single()Sum()。其中對於Sum(),在我看來主要有兩種用法,一種是Group時的合計,另一種是整個頁面某個列的值的合計。但是對於Count(),由於以前對DevExpress的了解不足,所以對Count()也不是很了解。

  今天就是在開發報表的過程中遇到了一個問題,經過DevExpress支持的幫助,通過Count()完成了較為復雜的功能。具體情況:我有三條記錄,如下圖1所示,想生成如圖2所示的報表內容,怎么做呢?

  如果放在以前,我可能需要創建2CalculatedField,並且分別添加表達式內容:Iif([VisitStatus]=='VISITED',1,0) Iif([VisitStatus]=='CANCELLED',1,0),然后再使用Sum()Group結合的方式來實現,但有了Count()情況便有了不同,具體實現如下:

  首先,我們也需要建立兩個CalculatedField,並且分別添加表達式內容:[][[^.ClinicName] == [ClinicName] AND [VisitStatus] == 'VISITED'].Count()[][[^.ClinicName] == [ClinicName] AND [VisitStatus] == 'CANCELLED'].Count(),從中我們可以看到,具體的數量已經通過遍歷ClinicName並且限制VisitStatus實現了,所以無需向以前一樣再使用Sum()

  通過以上對比,方案1可以作為方案2的一個備用,兩個的相同點都是僅在GroupHeader中進行操作,並且都可以實現最終結果,但兩者還是有着些許的區別,特別是在使用GroupBy時,具體區別如下所示:

具體聚集表達式AggregateExpression的具體用法參見以下官網鏈接:

How to: Calculate an Aggregate Function


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM