帆软报表控件嵌入式部署+MongoDB程序数据源

帆软报表控件很强大,组内刚刚购买,正在熟悉和学习过程中。
摘要由CSDN通过智能技术生成

帆软报表控件

这里写图片描述

官方嵌入式部署流程

嵌入式部署流程

拷贝文件
  • 简单粗暴式的话,直接将相关目录全部拷贝到自己项目的WEB-INF目录下;看了一下,差不多有两三百兆的样子;
  • 精细化操作的话,选择性拷贝;
  • 拷贝的jar包包括6个fr的jar包,1个fr的plugin的jar包;(与官方文档有不相符的地方);
  • 拷贝的目录包括plugins目录(报表控件的插件目录),reportlets目录(将来存放报表的目录),resources目录(资源文件目录);
web.xml配置

在项目的web.xml中配置报表控件的servlet及servlet-mapping。

部署过程遇到的问题

  • 组内的项目是Maven项目,是通过pom.xml管理项目的jar包依赖的,也就是没有在项目目录下保留lib目录;这样就导致报表控件所需的jar包无法直接拷贝到程序目录下,而创建lib的话与maven项目会有所冲突;
  • 目录拷贝的选择性;帆软官方文档让把reportlets、resources、plugins目录完整拷贝到项目目录下。查看了一下对应目录,reportlets目录下有很多的演示报表cpt文件,plugins是安装的插件文件,resources下面有很多配置文件以及地图文件……
  • 项目使用SpringMVC,直接使用前置的Dispatcher进行所有请求的分发;这样的话,报表控件的servlet就会被忽略掉;
  • ……

部署问题处理

  • 关于项目依赖jar包的处理,采用的方式是搭建maven私服,使用的是nexus;这样仅需要在组内项目中配置maven仓库地址即可,对项目的冲击最小。(在Nexus中进行第三方jar包的管理);
  • 从报表控件要拷贝的目录中删除项目不需要的文件,reportlets下的示例报表全部清理掉,plugins下目前仅保留与web页面自适应相关的插件,resources目录下把地图相关的资源全部清理掉,别的配置文件目前没有深究暂且保留;
  • 在web.xml中目前先把报表控件的ReportServer的servlet前置,后面再研究相关的处理吧;

程序数据源

之所以要用到程序数据源,是因为组内的项目使用的数据库是mongodb,而帆软的mongodb插件支持的查询深度还不够,所以采用程序数据源的方式来处理。
帆软报表控件程序数据源的写法说白了比较简单,就是实现AbstractTableData这个抽象类,然后实现其中的4个抽象方法即可。
但是使用起来不是很顺畅,原因在于:
- 首先要在在IDE中写程序数据源的代码;
- 然后编译对应的代码生成class文件;
- 将class文件拷贝到帆软报表设计器对应的classes目录下;
- 打开报表设计器选择程序数据源(class文件)进行报表设计;
- 设计完成的报表拷贝到项目的reportlets目录下;
可以看到,需要不停地在IDE和报表设计器之间切换,还需要在资源管理器中移动文件。可能这是目前嵌入式部署不得不面对的问题,如果是独立部署的话,可能就仅仅需要将classes文件拷贝到帆软报表设计器对应目录下即可。

测试程序数据源可行性

在项目中写了一个数据源,如下:

public class TestDemo extends AbstractTableData {
   

    private String[] columnNames;
    private Object[][] rowData;

    public TestDemo() {
        String[] columnNames = {
  "Name", "Score"};
        Object[][] datas = {
  {
  "Alex", new Integer(15)}, {
  "Helly", new Integer(22)}, {
  "Bobby", new Integer(99)}};
        this.columnNames = columnNames;
        this.rowData = datas;
    }

    @Override
    public int getColumnCount() throws Tab
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值