BI 前端实践 18: 集成 DBD 功能及二次开发

实践目标

        润乾的DBD功能是开源的,前端Javascript和后端JAVA都提供源码,可以把它作为一个功能模块集成到自己的信息系统中。有个性化需求时,可以基于它做二次开发。通过本篇实践,学会集成它的方法、了解其主要代码及位置。

集成润乾DBD

        DBD中所展示的报表是润乾报表,不同于用设计器手工做出的报表(.rpx)DBD中是用润乾报表JAVA API动态生成的。集成DBD,必然也要集成润乾报表。

依赖文件

         润乾报表内置了tomcat服务器,安装润乾报表后,能看到WEB应用根目录…/report/web/webapps/demo/,把这个目录下除WEB-INF/web.xml以外的文件全部复制到自己的WEB应用中,然后再修改配置。润乾报表中心及DBD都包含在其中。这种方式比较偷懒,有些功能用不到时,会有些多余的文件,但在不熟悉之前,免去了详细了解、挑选文件的麻烦。

         一些主要的目录:

        配置文件大多在WEB-INF下;

        WEB-INF/lib下的raqsoftReport.jarguide.jar是润乾报表、多维分析/DBD的主要JAVA程序;

        raqsoft/guide/dbd2.0/下的cssimgjsjsp目录存放DBD功能的web文件。

修改配置

         润乾web.xml要和自己的web.xml合并,注意listenerfilterservlettaglib节点有顺序要求,需要按顺序逐步的合并,其中大多是润乾报表、报表中心的设置。直接涉及DBD功能的只有一个taglib文件,/WEB-INF/raqsoftAnalyse.tld中定义了DBDtagcom.raqsoft.guide.tag.LayoutDashboardTag2.java

  <taglib>

    <taglib-uri>/WEB-INF/raqsoftAnalyse.tld</taglib-uri>

    <taglib-location>/WEB-INF/raqsoftAnalyse.tld</taglib-location>

  </taglib>

 

         raqsoftConfig.xml是润乾环境的主要配置文件,DBD中用到的数据源就在这里定义,复制其中的一个数据源标签,配置成自己数据库(Mysql/Oracle等等)的数据源:

..

 

运行中的各类型文件

         DBD是大号的多维分析,所以也会涉及多维分析中用到的文件:

        xlsxtxtcsv等数据文件,默认目录WEB-INF/files/fileData/

        数据处理脚本文件dfx,默认目录WEB-INF/files/dfx/

        多维分析文件olap,默认目录WEB-INF/files/dfx/

        这些目录在二次开发时,可以针对不同用户做个性化的设置,如张三的数据文件目录通过JS API设置guideConf.fileDataFolderOnServer="users/fileData/zhangsan/",李四设置guideConf.fileDataFolderOnServer="users/fileData/lisi/"

        除此之外DBD还上传、管理了一些背景图片,默认目录是raqsoft/guide/dbd2.0/img/dbdStyleImage/

编写一个能管理DBDJSP主页

        预先制作好了一个简单.dbd”,在服务器上看到它再“WEB-INF\files\dbd”目录下,编写一个能够新建、编辑、发布预览DBDdbdIndex.jsp

..

         访问这个JSP,点击相关链接,能在新弹出的窗口里(也可以用iframe嵌入的窗口)实现这些操作。新建DBD,用的是olaptabs.jsp;编辑时也用它,通过参数把要编辑的dbd传进去,olaptabs.jsp?dbd=/简单.dbd;发布预览时,用另外一个jsp,也是通过参数把要预览的dbd传进去,finalView.jsp?dbd=/简单.dbd

..

给编辑页面增加一个清空按钮

         DBD编辑页面没有提供清空按钮,通过修改相应jsp,增加js方法实现它,点击后能一下清除所有图表:

..

         修改raqsoft/guide/dbd2.0/data.jsp,复制一个按钮,修改按钮名称,点击时触发clearDBD()函数:

..

         jsp最下方的js代码区域,定义clearDBD():

..

         这时再访问编辑页面,点击按钮,就直接清空所有报表了。

去掉发布页面的返回目录

         产品中的发布页面,顶端有返回目录的按钮。嵌入自己系统时,不需要顶端,可以修改finalView.jsp去掉它

..

         删掉下面的html代码块就可以了:
..

 

不同用户使用自己的DBD目录

         产品中默认的dbd都在WEB-INF/files/dbd/目录下,多用户系统使用时,混在一起互相干扰,就期望给每个登录用户设置一个自己的目录,在session里可以设置这个用户子目录:

..

         zhangsan子目录下只有张三.dbd

..

         在界面上打开服务器dbd时,就只能看到zhangsan目录下的dbd了。

..

源代码

         根据可能的集成需求,上面做了一些二次开发,更复杂的个性化改造,就需要对源代码有更深入的了解,下面了解主要代码的位置:

        DBD的几个界面jspraqsoft/guide/dbd2.0/jsp/目录下;

        DBD界面功能是用Javascript实现,主要文件都在raqsoft/guide/dbd2.0/js/目录下:

        dashboard.js,实现dbd模块的主要逻辑;

        dqlApi_d2.jsdqlreport_d2.jsquery_d2.jscommon_d2.jswhere_d2.js等是从多维分析模块拷贝过来的,根据DBD的功能需求稍作修改,可以理解为润乾DBD是基于润乾多维分析做二次开发的一个范例。推而广之,读者也可以基于润乾多维分析,二次开发出一种自己的DBD;或基于润乾DBD,稍作修改,也能开发出适应自己的DBD

 

        专属DBD模块的JAVA代码不多,它的JSP标签类com.raqsoft.guide.tag.LayoutDashboardTag2.java是复制多维分析的AnalyseTag.java,针对DBD需求稍作了些修改;

        com.raqsoft.guide.web.dbd.DDWData.java是处理数据的类;

        多维分析中的处理web请求的类ActionResultPage.java中增加了三个管理DBD背景图片的操作:

..


以下是广告时间

对润乾产品感兴趣的小伙伴,一定要知道软件还能这样卖哟性价比还不过瘾? 欢迎加入好多乾计划。
这里可以低价购买软件产品,让已经亲民的价格更加便宜!
这里可以销售产品获取佣金,赚满钱包成为土豪不再是梦!
这里还可以推荐分享抢红包,每次都是好几块钱的巨款哟!
来吧,现在就加入,拿起手机扫码,开始乾包之旅



嗯,还不太了解好多乾?
猛戳这里
玩转好多乾