润乾报表实现无数据源的规则报表及改进
? ? 某報表系統中有部分報表需要按照一定規則顯示數據,如:顯示查詢日期范圍內的奇數日數據,要求數據庫中即使無記錄該日期也顯示(內容為空)。
? ? 本文重點來實現奇數日期序列,數據區不是重點,故置空。
????以上述報表需求為例,這里來看一下潤乾報表的實現過程,以及改進方法。
潤乾報表實現
以下為潤乾報表的實現方式,考慮跨年和跨月份的情況:
使用時要對輔助列A列進行隱藏,以及對第2行進行條件隱藏,偶數的日期不顯示。所以報表工具實現要依靠大量隱藏行列。
報表工具實現需要借助隱藏行格完成,主要原因是數據計算和報表呈現混在一起導致,既要完成報表展現,又要兼顧數據計算,往往導致報表計算能力不足。如果能將數據計算和報表呈現剝離開,那么報表開發將更加快捷。
潤乾集算報表5.0是在保留原有潤乾報表核心功能的情況下,推出的強計算報表工具,其內置的集算器非常適合完成數據計算,從而將報表數據準備和呈現分開。本例的需求采用集算報表實現要簡單得多,方法如下:
集算報表實現
編寫集算腳本
????首先使用集算器編寫計算邏輯,為報表輸出兩個日期之間的奇數日。
? ? A1:根據起止日期參數,列出該日期段中的所有日期
? ? A2:選出奇數日
? ? A3:為報表返回結果集
? ?報表調用
? ? 使用集算報表設計器,新建報表,使用“集算器”數據集類型,選擇上面編輯好的集算腳本(time.dfx)
? ? 設置報表模板及表達式
? ? 報表中只簡單的列表取值即可,無需再完成復雜計算。
? ??由于集算器對集合運算的有效支持,使得從一個集合(所有日期)中選出部分數據(奇數日)非常容易。不同于在一般報表工具中計算,集算器進行數據計算時不帶有任何展現屬性,因此效率更高;同時,由于報表端不再包含大量的隱藏格,報表效率得到了進一步提升。
?此外,對于代碼很簡單的腳本,可以不必獨立編輯出腳本文件,而使用集算報表內置的腳本數據集,把腳本直接嵌入到報表模板。方法如下:
? ? 1、在數據集設置窗口中點擊“增加”按鈕,彈出數據集類型對話框,選擇“腳本數據集”
? ? 2、在彈出的腳本數據集編輯窗口中編寫集算腳本:
? ? 腳本數據集中可以直接使用報表定義的參數,如上述腳本中的begin、end即為報表參數。
? ??3、報表調用,與其他數據集使用方式一致,不再贅述。
轉載于:https://blog.51cto.com/report5/1545128
總結
以上是生活随笔為你收集整理的润乾报表实现无数据源的规则报表及改进的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 360美女运营孙哲:生活就应像花朵一样绽
- 下一篇: precision recall