Dev Express Report 學習總結(七)Dev Express Reports 常見知識點總結


1. CalculatedField中常見表達式:

  A. For percent: [ValA]* 100 / ([ValA]+[ ValB]);      

          PS. Please remreber to set the file type for the CalculatedField to Float

      B. Using the Aggregate Expression with grouped data:

          [][[^.ColumnName] == [ColumnName] AND [VisitStatus] != 'CANCELLED'].Count()   

          PS. ColumnName means the fields used in GroupUnion.

      C. Summary data with Iif function:

       [CategoryPrice] + Iif([DataDetails].Count() > 0, [DataDetails].Sum([Total]), 0)

2. 常見的格式化字符串:

  A. Format String A: {0:0.00}

    Usage: 5->5.00, 5.9 -> 5.90

  B. Format String B: {0:0.00;(0.00);(0.00)}

    Usage: -18 -> (18.00)  0.00 -> (0.00)  -1.25 -> (1.25)

3.  實現如下圖所示的合並單元格,僅需設置屬性:ProcessDuplicateMode: Merge

  

4.  DataSource/BindingSouce:(Think about the difference between Report DataSource and BindingSouce?)

    主要是要多思考一下在動態賦值的過程中,賦值給DataSource和BindingSouce的區別,如何才能讓程序的操作更加方便,而又易於實現我們的要求;

5.  關於CalculatedField數據類型的設置:

   在完成了許多DevExpress報表開發后,慢慢地發現了CalculatedField數據類型的重要性。特別是如果在使用到兩個值相乘的情況時,如:Price*Qty,在一般情況下,Price為decimal類型而Qty為int,如果在使用CalculatedField對這兩個字段相乘而不選擇FileType為double的話,最終的結果往往會顯示為空!

6. 如何動態改變主/子報表間傳遞的參數(此處主要是在SubReport控件的BeforePrint事件中進行設置):

 private void XXX_SubRpt_BeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e)
 {
   ((XRSubreport)sender).ReportSource.Parameters["SumAmount"].Value = MyValue;
 }

7. 關於多層嵌套(多個DetailReport的GroupBy嵌套)時計算合計:

   其一就是使用普通的CalculatedField計算每一層的值,然后由內及外進行逐一的相加,盡量不要進行跨層的相加操作,可能會出現計算結果為NULL的情況;其二是在使用CalculatedField時,一定要設置正確的FieldType(如下圖中的Price為Decimal類型,則也需要設置使用到該Price相關的CalculatedField的FieldType),否則結果也有可能為NULL。具體使用如下圖所示:

 

8. 關於FormattingRules和CalculatedField的區別:

  CalculatedField主要提供對五種不同類型的數據進行操作,主要包括:AggregateMathDate-Timestringlogical

對於數據,可以進行加減乘除等各種運算;對於字符串,可以進行拼接,截取,大小寫轉化等等的操作;對於日期類型,可以進行日期的格式轉換,判斷等的一系列操作;

除此之外,還提供聚合函數功能。由於可以對多個數據類型進行操作,所以返回值的類型也是多種多樣的,可以是值類型,字符串,還可以是Boolean類型;

  FormattingRules主要是針對某個Band進行操作。例如可以通過設置某個條件,來設置某個Band的顯示與隱藏。因為涉及到對條件的判斷,所以FormattingRules只能返回Boolean類型,如下圖所示:

  總結:DevExpress是一個非常優秀的報表開發工具,其Support也非常的敬業和耐心。對於每一次的提問,DevExpress Support都能用最專業的態度給我最優的解決方案,讓我每一次的提問都有所收獲。當所有的收獲不斷累積,我也將不斷超越自己,也成就了自己在DevExpress方面所付出的每一份努力!


免責聲明!

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



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