Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 13 Next »

可以将已经做好的报表集成到第三方系统中,报表是H5的,所以只需要在第三方系统中通过iframe嵌入报表链接即可.

iReport365提供了以下两种报表集成方式:

 

【一、用户名密码参数集成】

通过将用户名和密码作为参数放入报表链接中,实现即时登录和权限控制。

 

  1. 在报表设计器中,预览报表,获得报表的访问链接,例如:

    https://enterprise.ireport365.com/view/report.do?reportId=98062e02a4294eda86423f464485089e
  2. 在报表的访问链接中加入用户名及密码参数,例如:

    https://enterprise.ireport365.com/view/report.do?reportId=98062e02a4294eda86423f464485089e&username=demo&password=123456

    参数列表如下:

    参数名含义
    username用户的登录名
    password用户的登录密码,明文
    md5password用户的登录密码,使用md5加密的密文

    注:password和md5password只需提供其中一个即可

【二、AccessToken安全访问集成】

向报表服务器获得accessToken(访问码),通过Api生成包含加密认证的报表url,url过期时间为10分钟,大大提升系统安全性

  1. 创建授权应用,参考:应用授权
  2. 下载Api源码:
    iReport365Api.java
  3. 替换Api源码中的以下参数:

    Api源码参数描述
    host替换成相应的报表服务器地址,包含http,不能以 / 结尾
    appId授权应用的appId
    appSecret授权应用的安全码
  4. Api源码使用:

    API_v1: 第一版API接口(已废弃)
    API_v2: 第二版API接口

【与第三方用户系统集成】

如果需要与现有的用户系统集成,用户无需管理新的密码,可以启用iReport365报表平台的用户登录脚本,当用户登录时,执行管理员设定的脚本,比如使用SQL或WebService验证用户输入的密码。

  1. 平台管理-》系统设置-》用户登录脚本-》开启
  2. 设置用户登录脚本 (页面底部有脚本示例)

    脚本中支持的内置参数:

    参数名描述
    result返回值对象
    databaseService数据库操作对象
    webServiceHTTP请求操作对象
    ldapServiceLDAP操作对象
    request用户的请求
    outSystem.out


    databaseService对象方法

    方法原型描述

    public List query(String connectionName, String sql)

    通过指定的连接,执行指定的sql,并获得List的返回值

    public List query(String connectionName, String sql, List param)

    通过指定的连接,执行指定的sql,传入sql中需要的参数,并获得List的返回值


    webService对象方法

    方法原型描述

    public String get(String url)

    请求指定的url,并获得返回值


    ldapService对象方法

    方法原型描述

    public boolean auth(String host, String port, String type, String domain, String username, String password) 

    LDAP认证


    脚本示例:

    数据库验证用户名密码
    importPackage(java.util); 
    importPackage(org.apache.commons.codec.digest); 
    //获取用户登录时填写的用户名和密码 
    var username=request.getParameter("username"); 
    var password=request.getParameter("password"); 
    //将密码MD5加密 
    var md5Password = DigestUtils.md5Hex(password); 
    //用户库的连接名称
    var connectionName = "local dataset"; 
    var param = new ArrayList(); 
    param.add(username); 
    param.add(md5Password); 
    //查询用户库 
    var sql = "select username,password from users where username=? and password=?"; 
    var data = databaseService.query(connectionName, sql, param); 
    if(data.size() === 0){ 
    	result.setSuccess(false); 
    	result.setMessage("用户名或密码错误"); 
    }else{ 
    	result.setSuccess(true); 
    }

 

 

 

  • No labels