企業應用需要打印各類單證及報表,為了方便開發此類應用作者在框架內集成了報表引擎,並且實現了基於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了。一邊碼代碼一邊碼文實屬不易,作者需要您的支持請您多多點贊推薦!