AppBoxFuture: Web在線報表設計與PDF生成
- 2020 年 4 月 24 日
- 筆記
企業應用需要列印各類單證及報表,為了方便開發此類應用作者在框架內集成了報表引擎,並且實現了基於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了。一邊碼程式碼一邊碼文實屬不易,作者需要您的支援請您多多點贊推薦!