# 帆软报表集成指南
# 集成方案介绍
# 页面集成&豆腐块集成
# 页面集成介绍
真实场景种会有业务系统嵌入详细报表,在登录业务系统后或访问报表页面时,将该报表有权限的用户名及密码发送到报表服务器进行认证,从而访问报表时不需要再次登录。
# 页面认证
- 详情参照:内嵌页面登录
# 页面&豆腐块嵌入
报表先把权限验证地址以 iframe 的方式嵌入,解决跨域问题,然后再在 iframe 中初始化表单登录事件,实现登录页面后不进行跳转,访问对应报表即可。
# 单点集成
# 注册企业微信应用信息
# 注册报表应用
移动端配置:选择上一步注册的微信应用信息
回调地址:http://www.finereport.com/webroot/decision
http://www.finereport.com/webroot/decision/login/weixin
http://www.finereport.com/webroot/decision/weixin
获取到对应的clientId、clientScret
# 单点插件安装
插件下载地址:http://download.glink.glkyun.com/glodon-gosp/tools/fine-plugin-com.tptj.course.hg.login.username-1.0.zip
若帆软报表插件安装功能异常
可将该文件解压放入./webapps/webroot/WEB-INF/plugins/下面
重启报表服务
# 创建表 fine_oidc_config
名称 | 类型(mysql) | 类型(sqlserver) | 备注 |
---|---|---|---|
id | int | int | ID类型(PRIMARY KEY)、主键 |
client_id | varchar(50) | nvarchar(50) | 客户端ID(注册报表应用获取) |
client_secret | varchar(255) | nvarchar(255) | 客户端密钥(注册报表应用获取) |
grant_type | varchar(255) | nvarchar(255) | grant_type(默认值:authorization_code) |
hr_title | varchar(255) | nvarchar(255) | hr_title(hr11_或者铁建其他) |
logout_uri | varchar(255) | nvarchar(255) | 登出地址 |
redirect_uri | varchar(255) | nvarchar(255) | 登录成功回调地址 |
response_type | varchar(255) | nvarchar(255) | response_type(默认值) |
scope | varchar(255) | nvarchar(255) | scope(默认值:openid) |
state | varchar(255) | nvarchar(255) | state(默认值:1) |
url | varchar(255) | nvarchar(255) | 平台认证地址 |
mysql:
CREATE TABLE `fine_oidc_config` (
`id` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
`client_id` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
`client_secret` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
`grant_type` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
`hr_title` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
`logout_uri` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
`redirect_uri` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
`response_type` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
`scope` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
`state` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
`url` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
sqlserver:
CREATE TABLE fine_oidc_config (
id bigint NOT NULL,
client_id nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL,
client_secret nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL,
grant_type nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL,
hr_title nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL,
logout_uri nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL,
redirect_uri nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL,
response_type nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL,
scope nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL,
state nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL,
url nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL,
CONSTRAINT pk_fine_oidc_config PRIMARY KEY (id)
);
2
3
4
5
6
7
8
9
10
11
12
13
14
15
创建表 fine_oidc_detail(登录并跳转某报表详细地址)
名称 | 类型(mysql) | 类型(sqlserver) | 备注 |
---|---|---|---|
id | varchar(50) | nvarchar(50) | id |
url | varchar(255) | nvarchar(255) | 跳转报表详情地址 |
mysql:
CREATE TABLE `fine_oidc_detail` (
`id` varchar(50) COLLATE utf8_bin NOT NULL,
`url` varchar(255) COLLATE utf8_bin DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin
2
3
4
5
sqlserver:
CREATE TABLE fine_oidc_detail (
id nvarchar(50) NOT NULL,
url nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL,
CONSTRAINT pk_fine_oidc_detail PRIMARY KEY (id)
);
2
3
4
5
# 单点配置
# 登录说明
# 管理页面登录
访问:http://www.finereport.com/webroot/decision
跳转至登录页,使用平台用户进行登录
登录完成
# 报表登录
企业微信多应用配置不同报表
访问:http://www.finereport.com/webroot/decision?clientId=finereport&clientType=weixin&viewId=2
viewId对应数据库表【fine_oidc_detail】的id值
登录完成
# 设计器登录
账号:admin转换后的账号 密码:原管理员账号密码
# 内嵌页面登录
账号密码:可使用管理员账号创建单独使用的新账号及密码提供嵌入使用
认证完成之后访问对应的报表页面即可
登录参照官方文档:https://help.fanruan.com/finereport/doc-view-879.html?source=4
登录成功之后即可访问详细报表页面
# 谷歌浏览器单点登录失败
- 参照:https://help.fanruan.com/finereport/doc-view-4027.html
# Safari浏览器跨域单点登录失败
- 参照:https://help.fanruan.com/finereport/doc-view-1756.html
# IE11 浏览器跨域单点登录失败
# 问题描述:
iframe 跨域单点登录在 IE11 浏览器上失败,谷歌浏览器上单点登录正常。
# 解决方案:
1)由于 IE11 没有 attachEvent 这个属性,需要添加一个 meta 标签来设置浏览器的默认兼容模式,通过在 html 的 head 标签中加入下面代码:
<meta http-equiv="X-UA-Compatible" content="IE=10" />
meta 标签用来设置浏览器的默认兼容模式为 IE10,这样就可以依旧使用 attachEvent 属性。
2)另外 IE11 浏览器需要将报表服务器的地址加入到受信任的站点中,如下图所示:
# 打通用户体系
将用户及组织信息同步进帆软系统
# 管理员账号与平台账号不一致
# 修改帆软报表db文件
路径:tomcat-linux/webapps/webroot/WEB-INF/embed/finedb/db.script
替换原管理员账号admin替换为当前铁建通登录管理员(eg:id=891569)
cd tomcat-linux/webapps/webroot/WEB-INF/embed/finedb/
vi db.script
:/%s/admin/891569/g
:wq!
2
3
4
# 修改数据库
[FINE_USER]表 将admin数据对应的信息全部改为891569
# 重启软报表即可
# 用户授权
采用原报表管理页面授权(前提:部署的报表系统无损或涉及到功能无损)