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了。一边码代码一边码文实属不易,作者需要您的支持请您多多点赞推荐!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?