zoukankan      html  css  js  c++  java
  • 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了。一边码代码一边码文实属不易,作者需要您的支持请您多多点赞推荐!

  • 相关阅读:
    有几种不同类型的自动代理?
    使用 Spring 通过什么方式访问 Hibernate?
    单片,SOA 和微服务架构有什么区别?
    如何给 Spring 容器提供配置元数据?
    在 Spring AOP 中,关注点和横切关注的区别是什么?
    Java Concurrency API 中的 Lock 接口(Lock interface) 是什么?对比同步它有什么优势?
    移动文件用哪个命令?改名用哪个命令?
    synchronized 的作用?
    “a==b”和”a.equals(b)”有什么区别?
    什么是 Spring beans?
  • 原文地址:https://www.cnblogs.com/BaiCai/p/12766210.html
Copyright © 2011-2022 走看看