AppBoxFuture: Web在線報表設計與PDF生成

  企業應用需要打印各類單證及報表,爲了方便開發此類應用作者在框架內集成了報表引擎,並且實現了基於Canvas的Web在線報表設計及基於PDFJS的報表查看與打印。

一、原理淺析

  • 報表模型:由Xml描述各類報表元素組成(表格、圖形、條碼等),通過報表設計器生成;
  • 數據源:通過推(Push)或拉(Pull)的方式填充報表所需數據,其中Pull模式直接調用框架內服務生成數據源。
  • 報表生成:報表引擎解析模型後進行佈局與數據填充,並根據需要渲染輸出pdf或者其他格式。

二、設計與預覽


三、操作說明

1. 新建報表

  通過IDE主菜單->New->Report,輸入報表名稱後點擊確認創建。

2. 添加元素

  切換至工具箱選擇需要添加的報表元素,然後在報表設計畫布上拖拉添加相應的元素。

3. 設置樣式

  選擇報表元素後通過屬性面板設置字體、顏色、對齊方式、邊框等樣式。

4. 設置報表數據源

  在設計畫布上點擊空白處選擇報表,在屬性面板點擊“DataSets”打開數據源對話框,可從實體模型直接生成DataSet,亦可添加自定義字段或刪除不必要的字段。

5. 綁定表格數據源

  如下圖所示選擇整個表格,然後在屬性面板的“DataSetName”內選擇報表數據源。

6. 添加/刪除表格列


7. 綁定表達式

  文本框的Value值如果以=符號開頭,則表示爲表達式:

  • ={FieldName} 表示綁定數據源的字段;
  • ={?ParameterName} 表示綁定報表參數;
  • ={@GlobalName} 表示綁定報表全局變量,如TotalPages, PageNumber等;

頁眉或頁腳的文本框綁定字段時,只能使用聚合函數,如:=Sum({FieldName}, "數據源名稱")

四、本篇小結

  前後歷時近一個月,還有很多功能未實現,如交叉表、圖形、表格分組、單元格合併拆分等,另外需要實現報表HTML輸出,支持鑽取等功能,這樣就是一套完整的BI了。一邊碼代碼一邊碼文實屬不易,作者需要您的支持請您多多點贊推薦!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章