Web应用集成类接口

1 简介

在Web应用集成方面UniEA Report提供了报表生成Action、Taglib以及报表权限控制等接口。

2 使用说明

2.1 报表生成

UniEAP Report为了适应不同的应用,提供了不同程度的集成方式:

  • Jsp、Js级别的集成;

  • Action和Taglib级别的集成;

  • 非基于Struts框架的集成。

    本文主要介绍Action和Taglib级别的集成。

2.1.1 Action

1.Report-EntryAction(com.neusoft.report.server.view.EntryReportAction)

如果报表中含有参数,则返回参数页面的Html代码并进入参数页面(Condition.jsp);如果报表中不包含参数,则执行Report-ResultAction。其它的参数定义参看Report-ResultAction。

2.Report-ResultAction(com.neusoft.report.server.view. ResultAction)

返回的结果是以Html形式生成的报表,并跳转到ClientShow.jsp中。

参数的填写及含义如下表格所示:

表格 6 Report-ResultAction参数定义

关键字 说明
reportId 报表的ID号 通过报表ID得到要创建的报表(必填值)。
newReport true,false 是否新创建报表,如果值为true,表示这是新报表,否则从缓存中读取。
cachedId 报表的缓存ID 通过它可以读取缓存中的报表,新创建报表时可不填。
nPage null,数值 当前报表显示的页号,如果值为null,显示第一页,新创建报表时可不填。
pageCount 数值 报表的总页数,新创建报表时可不填。
encode 字符串(true,false,空) true为用base64对中文进行解码,其它为不用base64进行解码(中文参数用base64进行解码)。
linage null或数值 每页显示多少行,All、-1表示全显示,如果不填写则该值是定义报表时的默认值。
报表参数 字符串 传送过来的参数名称及其值。如果没有参数可不填,如果有多个参数按照如下方式书写:参数1=china&参数2=Neusoft….。

例如:报表有两个参数 country=中国 和personName=小明

http://localhost:8080/unireport/Report-ResultAction.do?reportId=94b7d07d-a7f8-4745-adc2-d8731f80387a&newReport=true&linage=20&country=5Lit5Zu&personName=5bCP5piO &encode=true

这个URL的意思是新创建参数country=中国(‘中国’用base64编码后为5Lit5Zu)、personName=小明(‘小明’用base64编码后为‘5bCP5piO’)、报表的ID为94b7d07d-a7f8-4745-adc2-d8731f80387a的报表,每页显示20行。如何对中文进行base64编码请参考第7章7.1节。

【备注】在遇到checkbox类型的自定义预设值参数时,书写格式为&show=jack:;chen:;marry,中间用:;隔开。

【注意】如果想实现调用ResultAcion并且跳转到另一个Jsp文件中可这样写URL: http://localhost:8080/unireport/Report-ResultAction.do?reportId=94b7d07d-a7f8-4745-adc2-d8731f80387a&clientShow=othershow

其中othershow是在struts-config.xml文件中Report-ReusltAction对应的一个forward属性。

2.1.2 Taglib

为了方便使用,UniEAP Report提供了大量的Taglib。在使用UniEAP Report提供的Taglib时,需在Jsp文件中加上如下代码:

  <%@ taglib prefix="unieap-report" uri="/WEB-INF/taglib/unieap-report" %>

UniEAP Report提供的Taglib说明如下表格所示:

表格 7 UniEAP Report提供的Taglib说明

名称 说明 备注
Linage 每页显示多少行的下拉框 导出、打印、回填及翻页工具条等。
ExportToExcel 导出为xls 导出、打印、回填及翻页工具条等。
ExportToCSV 导出为csv 导出、打印、回填及翻页工具条等。
ExportToRtf 导出为rtf 导出、打印、回填及翻页工具条等。
ExportToPdf 导出为pdf 导出、打印、回填及翻页工具条等。
ExportToHtml 导出为html 导出、打印、回填及翻页工具条等。
ExportToOds 导出为ods 导出、打印、回填及翻页工具条等。
PrintReport 打印报表 导出、打印、回填及翻页工具条等。
ServerPrint 服务端连接池测试状态服务端报表打印 导出、打印、回填及翻页工具条等。
SaveReport 收藏报表 导出、打印、回填及翻页工具条等。
BackFillDB 回填如数据库 导出、打印、回填及翻页工具条等。
Pages 翻页 导出、打印、回填及翻页工具条等。
ReportRefresh 使用最新数据刷新当前报表 主要用于按变量缓存
Result 在页面中显示报表内容,包括JavaScript和css 用来显示报表的相关信息。
Report-Content 在页面中显示报表内容 用来显示报表的相关信息。
Report-JS 报表所用到的JavaScript 用来显示报表的相关信息。
Report-CSS 报表所用到的css 用来显示报表的相关信息。
ReportName 当前报表的名称 用来显示报表的相关信息。
Params 报表的参数页面 用来显示报表的相关信息。
BuildTree treeName =”(1)” kind=”(2)” permit=”(3) ” 树型结构显示 1)代表要生成的树的根节点名称。(2)代表树的种类,现在支持6种树:1-报表树(包括报表和所在的文件夹),2-报表文件夹树(只包括报表文件夹),3-报表结果文件夹树(只包括报表结果文件夹),4-报表结果树(包括报表结果和所在的文件夹),5-报表授权树(包括报表和所在的文件夹),6-报表结果授权树(包括报表结果和所在的文件夹)。(3)代表权限信息,也就是有构件拥有什么样的权限的树。其值由5位0、1数字组成。第一位表示执行,第二位表示查看,第三位表示修改,第四位表示删除,第五位表示增加。例如:“10000”表示构建拥有执行权限的树。“01111”表示构建拥有除了执行权限的树。

以上标签的使用方法可参考/unieap/pages/report/jsp/ClientShow.jsp页面,在此页面中如果不需要某个功能,只需要删除相应标签即可。如不需要每页显示多少行的下拉框,仅需要删除标签即可,若去掉标签 即可去掉‘每页显示’的页面文字信息。

2.2 报表权限

UniEAP Report的权限管理主要用来控制报表访问权限,判断最终用户是否有权限访问某个报表或者报表目录,您可以选择不使用UniEAP Report的权限管理,而是在自己的业务中实现报表的权限控制。

2.2.1 报表权限开关

屏蔽或者启用报表的权限管理,是通过修改\WEB-INF\conf\unieap\report\report-

engine-config.properties文件实现的。您可以通过修改配置项com.neusoft.report.

engine.security.used为true或false来启用或关闭权限管理。

2.2.2 报表权限管理方案

报表的权限管理方案的使用步骤如下:

1.安全接口部分

安全接口的实现分为以下两个步骤:

(1)实现SecurityFactory接口和AppSecurity接口,参考第4章“报表权限类接口”;

(2)修改配置文件

修改\WEB-INF\conf\unieap\report\report-engine-config.properties中的com.neusoft.report.engine.security.factory项为您自己的实现类。

在UniEAP Report中,最终用户的访问信息获取也是通过AppSecurity获得的,报表引擎根据访问者的不同做了结果缓存,所以要求这里的访问者帐号必须是有效的。

在UniEAP Report中,当前访问者信息通常写入当前线程,在使用访问者信息时从当前线程中获得。建议您在实现AppSecurity时也使用这种方法。

2.资源授权部分

UniEAP Report默认只有超级用户才能进行资源授权,而且可对所有的资源进行授权。为了提供更灵活的授权方式,UniEAP Report提供了资源获取的接口,用户可根据需要组织授权的资源信息。与安全接口一样,首先实现com.neusoft.report.engine.

management.AuthorizableResource接口,然后在report-engine-config.properties文件中修改com.neusoft.report.engine.management.impl的配置信息。

AuthorizableResource接口定义如下:

package com.neusoft.report.engine.management;
import com.neusoft.report.engine.util.dto.Resource;
public interface AuthorizableResource{
    public Resource[] getAll(String userId);
    public Resource[] getAllResult(String userId);
}
  • public Resource[] getAll(String userId) 获取所有报表及文件夹;
  • public Resource[] getAllResult(String userId) 获取所有报表结果及文件夹。

    UniEAP Report系统本身并不对用户进行维护,左侧的用户信息需要您自己实现(如果与UniEAP集成则可采用UniEAP的用户树),因此需要您做以下工作:

    (1) 实现显示用户信息的Jsp页面

    在这个Jsp中,当点击一个用户时需要实现一下JavaScript方法:

<script language="JavaScript">
      function clickOnNode(Id,type,nodeType){
           var activeTab = parent.menutree;
           if(activeTab.displayPurviewInfo){
            activeTab.displayPurviewInfo({id:Id,type:type ,nodeType:nodeType})
           }
    }  </script>

(2) 修改securityIndex.jsp

其位置是/unieap/pages/report/jsp/security/securityIndex.jsp,要修改的部分是userTree.jsp,修改部分如下:

<iframe name="userTree" border="0" frameborder="0"
  width="17%" valign="top" height="100%"
  marginheight="0" marginwidth="0"  src="userTree.jsp" >
</iframe>

results matching ""

    No results matching ""

    results matching ""

      No results matching ""