Jasper Server初探

Jasper Server初探

由于项目需要,今天终于下载了jasper server并成功安装。在快速阅读了user guide和adminguide后,简单的上传了一个报表并成功显示。下面简要记录下今天的收获。

首先是为什么需要报表服务器。

  1. 客户无法方便的开发、修改报表。由于以前的报表都是集成在业务系统中,每次的报表发布都要经历这几个阶段:
    • 上传报表文件;
    • 新建页面,将报表所需参数放置到页面中,并且做相应的数据校验(如果报表有参数)
    • 新建菜单链接,并配置权限让相关用户可见
  2. 部署代价大;
  3. 标准功能需开发。光展现报表还不够,客户经常需要将报表导出成各种格式(Excel,PDF等);或者需要一个仪表板,上面放置了客户一些常用的报表(DashBoard功能需要付费);再或者是输入参数的校验,报表文件的上传、存储等。再或者是菜单权限、数据权限;

其中原因一的第二个阶段是需要修改业务系统代码的。无论用户技术水平是否达到,修改生产系统代码都是有风险的!并且还需要重启服务器。一两个报表还好,如果每天都有新报表发布,就是一个非常大的工作量。用户肯定是无法接受这样的自定义报表服务的,那么也就无法将以后的报表开发工作转移给客户运维部门。


之前一直困扰我们的一个问题是,Jasper的报表服务器是否要收费?仔细查看相关资料后,发现其社区版是GPL的License,没有版权和费用问题,而且社区版还是开源的!具体请参阅:[1]JasperServer版本比较;[2]GPL


打消顾虑后,就可以开始安装了。

建议安装其windowsinstaller版本,主要是安装简单(中文windows7用户在安装到数据库时,可能出现错误并回滚的情况。这个时候把你的相关环境设置成英文即可。安装好之后改回来就没问题了)。其本身会安装一个数据库和一个tomcat,并以服务方式注册。

安装成功后,我们直接输入类似下面的地址即可:http://localhost:8088/jasperserver

Jasper Server初探_第1张图片

其默认的用户名密码是:jasperadmin/jasperadmin(社区版是这个,商业版还有更高级的账户)

登录后的首页是这样的:

Jasper Server初探_第2张图片

简单解释下页面结构。左侧的类似文件夹,也可理解成菜单。目前看来没什么用。但是商业版有一个“组织结构”的功能,每一个组织结构对应一个顶级文件夹。总的来说就是方便分类和权限控制。详细内容可以参考相关文档。右侧本来应该是一个Dashboard,但是社区版无法创建。

下面以一个发布新报表的流程来解释报表服务器的部分用法。

  1. 使用iReport设计一个报表并保存;
  2. 右键单击Jasper Server的文件夹,依次选择“添加资源”-“JasperReport”;
  3. 为新报表指定一个资源ID并上传本地jrxml文件;JasperServer将所有用户定义的内容都视为一个资源,比如数据源,属性文件,图片等;
  4. 切换到“控件和资源”标签,为报表添加资源文件和输入控制。输入控制其实就是报表接受的参数。输入控制功能很强大,你可以选择数据类型、数据范围、控件类型、提示方式等。这里需要注意的是,输入控制的id必须和报表的参数名称一致。进一步想,既然报表中定义了参数,为什么jasperserver不能直接读取参数定义,弹出相关控件呢?其官方文档中也对这种想法做了说明。其实就是报表中定义的参数信息,不足以进行输入控制。比如在报表设计器中,你无法指定参数的数据范围,展现形式。那再想一下,为什么jasper不在报表设计器中集成这些设置呢?我认为还涉及到数据权限的问题。比如同一个报表,我可以通过限制其参数值,达到控制数据权限的作用;
  5. 切换到“数据源”标签,为报表选择数据源;这里的数据源即报表数据的来源。每一个报表都可以配置不同的数据源,因为jrxml文件中并没有数据源的定义;
  6. 切换到“查询”标签。这里可以为报表重新指定查询语句,也可以使用报表文件自带的查询语句;

以下是相关页面截图: Jasper Server初探_第3张图片

Jasper Server初探_第4张图片

Jasper Server初探_第5张图片

Jasper Server初探_第6张图片

Jasper Server初探_第7张图片

Jasper Server初探_第8张图片

最后点击“提交”,一个报表就成功发布到服务器上!其他的比如授权访问的可以参考具体文档(在服务器安装目录的doc下有详细的pdf文档)。

我们可以看一下如何运行以及运行结果:

Jasper Server初探_第9张图片

Jasper Server初探_第10张图片

Jasper Server初探_第11张图片

可以看到,jasper server本身支持非常丰富的导出格式。

另外,其内部还有一个scheduler调度系统,可以定时将某些报表导出成指定格式,并通过邮件发送给相关人员。个人认为这也是一个非常贴心的功能。不过使用之前需要做些邮件服务器的配置(配置文件为js.quartz.properties)。

综上,jasperserver社区版还是解决了我们大部分需求,是一个可以交付用户使用的完整产品。其功能强大,即使是社区版。商业版更是具有DashBoard,组织机构,虚拟多数据源,实时报表设计器(不需要安装iReport)等高级功能。

你可能感兴趣的:(java,web)