finereport集成的思路与遇见的问题
- 目的:通过集成,用户从自己的系统通过链接使用浏览器访问 FineReport 的服务器,从而在自己系统内调用 FineReport 的 Web 页面,来实际嵌入式集成。
- 思路:通过页面 iframe 集成方式,可以很好地把其他已经开发好的页面或者模板直接嵌入到 FineReport 的模板中,或者把 FineReport 模板嵌入到已有的 Web 页面中,只需要指定 iframe 的 src 属性即可,我们使用后者
<iframe id="reportFrame" width="900" height="400" src="/webroot/decision/view/report?viewlet=/doc/Primary/Parameter/Parameter.cpt
在有参数的情况下,可以使用 post 传参方式,这样 src 里不会出现具体的参数。传参的接口已经封装,在代码中引入接口,直接跨域调用即可:
<script type="text/javascript" src="/webroot/decision/view/report?op=emb&resource=finereport.js"></script>
具体看finereport官方文档:https://help.fanruan.com/finereport10.0/doc-view-918.html
- 由此引出来关于数据源的思考,当数据源改变时,我们是做一张新的模板还是有办法将数据源动态地传给模板呢?
- 另外,公司要求集成大屏,所以决策报表与数据决策系统是值得考虑的,数据决策系统是否也要集成,决策报表是放在iframe中还是放入
这里是进入决策系统的方法,决策系统是否集成问题仍待解决,详细内容参考官方文档:https://help.fanruan.com/finereport10.0/doc-view-4623.html
补充1:本地做好的报表放在%FR_HOME%\webapps\webroot\WEB-INF\reportlets目录下平台可以看到,然后进行目录节点配置才能显示在决策系统中
## 决策系统不集成,仅用iframe集成大屏
1.数据权限的设置:
## 决策系统集成了但不给用户看,仅运维使用
1.数据权限设置:使用官方的权限配置方法,分为角色,部门(若客户公司架构发生变化则需维护)
5. 数据权限设置:
-
同一张报表,不同的用户登录,看到的数据不同。两种方法
- 1.根据finereport的系统参数如$fine_username进行过滤
- 2.根据前端传参进行过滤
6. 数据源连接:
- 由于制作的报表模板需要导出到客户服务器上去,所以需要保证双方的数据库名称或定义要一致,确保模板导出后,连接不会出问题[外链图片转存中…(img-b9ae196f49ff40b280e911ce24ec8aa6.png)
7.公式函数
- JS实现无需点击查询按钮即可自动查询
_g().parameterCommit();
//给 _g().parameterCommit(); 代码中添加延迟函数:
setTimeout(function() {
_g().parameterCommit();
}, 500)
8.定时发送填报任务
填报推送
问题
- 行高:单元格默认勾选行高自动调整,可以在单元格属性中取消
- 列宽:由于开启了列宽自动调整,导致文本内容过长
1.文本超出隐藏 详情参考官方文档:https://help.fanruan.com/finereport/doc-view-227.html
2.单元格超过一定长度显示省略号(…),鼠标悬浮显示全部内容
详情参考官方文档:https://help.fanruan.com/finereport/doc-view-1832.htm
3.实际值为F显示为否:数据字典(自定义):单元格属性-形态,选择数据字典,类型设置:自定义
详情参考官方文档:https://help.fanruan.com/finereport/doc-view-219.html
名词释义 ||
远程设计:FineReport 报表正式工程一般都部署在远程服务器上,当需要对工程里面的模板进行设计修改时,可直接通过本地设计器连接到远程服务器上的工作目录进行模板设计。
web服务器:我司使用tomcat
大屏学习与模板实例文档教程
详细内容参考官方文档https://help.fanruan.com/finereport10.0/doc-view-4623.html
- 填报提交,数据如何发生改变,内置 FineDB 数据库或启用外接 FineDB 数据库待看
-
9.鼠标所在行变色
菜单栏点击「模板>模板 Web 属性>分页预览设置」,选择「为该模板单独设置」,然后添加「加载结束事件」,
contentPane.makeHighlight('red','mouseover');
10.JS实现鼠标点击行变色
添加事件:
菜单栏点击「模板>模板 Web 属性>分页预览设置」,选择「为该模板单独设置」,然后添加「加载结束事件」
contentPane.makeHighlight('red'); //使点击的行变成红色