热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

ureport2学习笔记

了解Ureport2从上面这段对ureport2的描述中,可以整理出如下信息:这个组件是用来生成报表的它是用java语言编写的基于spring构建,以spring在如今java应

了解Ureport2

从上面这段对ureport2的描述中,可以整理出如下信息:


  1. 这个组件是用来生成报表的
  2. 它是用java语言编写的
  3. 基于spring构建,以spring在如今java应用系统中的普及率来看,这意味着这款报表组件能够很好的与大部分系统结合
  4. 高性能-目前还是初次接触,并没有做过性能测试,因此这里假设它是高性能的
  5. 通过迭代单元格来实现任意复杂的中国式报表,回想一下以前用过的报表组件,最早接触到的是java写的jfreechart,用的最多的是js写的highcharts,最经典的用法就是后台准备数据,然后交给highcharts中各个具体的控件来渲染.因为之前都是停留在使用层面上,所以这里的迭代单元格我不太明白,是说可以通过对每个单元格定制数据和样式来实现复杂的报表吗?
  6. 它提供了一个网页版的设计器

搭建简单示例


  1. 新建一个maven web项目,然后导入ureport2包和数据库驱动包,如下图:
  2. 在spring配置文件中导入ureport2配置文件
  3. 然后就是在web.xml中配置spring和ureport2,如下图:
  4. 最后部署运行这个web应用,打开http://localhost:8080/ureport/designer就可以使用设计来创建报表

项目结构

github ureport2项目主页上可以看到如下图:


目录内容
docs项目相关文档
ureport2-console处理报表设计发送的报表相关的请求
ureport2-core相关模型定义、报表解析、存储、导出和构造相关的代码
ureport2-font自定义字体
ureport2-js网页设计器js脚本
ureport2-parent包含项目的一些基本信息,比如license,开发人员,maven仓库配置等

熟悉报表设计器


工具栏


报表内容设计区

非表格类型的报表设计:


数据源面板

报表的目的是更直观的展示数据,数据集就相当于一个逻辑数据块,类似于sql里面的视图


单元格属性配置面板


几个简单的用例


企业供应信息统计


表达式列的使用


饼形图


创建查询表单


源代码浅析


找到入口

在web.xml中配置的UReportServlet是ureport2-console项目的入口,它处理所有/ureport前缀的请求并根据url将具体的请求分发到对应的ServletAction来实现


具体的代码分析

在chrome中可以通过控制台网络面板看到在ureport2进行各种操作后发送到后台的请求来跟踪具体模块的代码,如下图:

所有的报表逻辑处理类在ureport-console项目src/main/resources/ureport-console-context.xml文件中都有配置


推荐阅读
  • 本文讨论了在Spring 3.1中,数据源未能自动连接到@Configuration类的错误原因,并提供了解决方法。作者发现了错误的原因,并在代码中手动定义了PersistenceAnnotationBeanPostProcessor。作者删除了该定义后,问题得到解决。此外,作者还指出了默认的PersistenceAnnotationBeanPostProcessor的注册方式,并提供了自定义该bean定义的方法。 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • 本文介绍了闭包的定义和运转机制,重点解释了闭包如何能够接触外部函数的作用域中的变量。通过词法作用域的查找规则,闭包可以访问外部函数的作用域。同时还提到了闭包的作用和影响。 ... [详细]
  • 本文介绍了使用kotlin实现动画效果的方法,包括上下移动、放大缩小、旋转等功能。通过代码示例演示了如何使用ObjectAnimator和AnimatorSet来实现动画效果,并提供了实现抖动效果的代码。同时还介绍了如何使用translationY和translationX来实现上下和左右移动的效果。最后还提供了一个anim_small.xml文件的代码示例,可以用来实现放大缩小的效果。 ... [详细]
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • Webpack5内置处理图片资源的配置方法
    本文介绍了在Webpack5中处理图片资源的配置方法。在Webpack4中,我们需要使用file-loader和url-loader来处理图片资源,但是在Webpack5中,这两个Loader的功能已经被内置到Webpack中,我们只需要简单配置即可实现图片资源的处理。本文还介绍了一些常用的配置方法,如匹配不同类型的图片文件、设置输出路径等。通过本文的学习,读者可以快速掌握Webpack5处理图片资源的方法。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • FeatureRequestIsyourfeaturerequestrelatedtoaproblem?Please ... [详细]
  • Android开发实现的计时器功能示例
    本文分享了Android开发实现的计时器功能示例,包括效果图、布局和按钮的使用。通过使用Chronometer控件,可以实现计时器功能。该示例适用于Android平台,供开发者参考。 ... [详细]
  • HDU 2372 El Dorado(DP)的最长上升子序列长度求解方法
    本文介绍了解决HDU 2372 El Dorado问题的一种动态规划方法,通过循环k的方式求解最长上升子序列的长度。具体实现过程包括初始化dp数组、读取数列、计算最长上升子序列长度等步骤。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
author-avatar
mobiledu2502923963
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有