report或者bi,有没有嵌入网页的iframe通信?

要把finebi或者report的内容集成到页面系统上,比如地图模块,我在bi或者report点击操作,他能把参数传到网页上,联动网页其他部分

FineReport ADAS 发布于 7 天前
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共4回答
最佳回答
0
华莉星宸Lv7资深互助
发布于7 天前(编辑于 7 天前

你这个估计不行~

都是不同的系统页面,无法联动

------------------

建议联系官方咨询一下

https://service.fanruan.com/support

最佳回答
0
用户k6280494Lv6资深互助
发布于7 天前(编辑于 7 天前
最佳回答
0
FR-LeonLv4初级互助
发布于7 天前
一、基础嵌入方式
  1. 报表/BI内容嵌入网页使用iframe直接嵌入模板,示例代码:


    <iframe id="reportFrame" width="900" height="400"

    src="/webroot/decision/view/report?viewlet=/doc/Primary/Parameter/Parameter.cpt"></iframe>

    (来源:1)

  2. 跨域问题处理若遇到跨域报错,需在决策平台关闭「点击劫持攻击防护」开关:跨域设置

二、参数双向通信方案1. 网页→报表传参
  • URL传参:通过拼接URL参数实现初始传参

    <iframe src="/webroot/decision/view/report?report=doc/Parameter/MultiValue.cpt&area=华东&city=无锡"></iframe>

    URL传参效果

  • POST传参(推荐用于中文参数):


    // 获取URL参数并编码中文

    var paras = encodeURIComponent(location.search.split("&"));

    document.getElementById('reportFrame').src += "&" + paras;
2. 报表→网页通信

通过JS API调用父页面方法:


// 在报表中触发网页事件

parent.window.handleReportEvent = function(params) {

console.log("接收报表参数:", params);

};



// 网页中调用报表方法(如提交填报)

document.getElementById('reportFrame').contentWindow._g().writeReport();
三、高级交互建议
  1. 隐藏参数面板:通过提到的隐藏参数面板方法保持界面简洁

  2. 滚动条优化:参考中的iframe滚动条解决方案滚动条优化

实现流程图:网页事件 → 调用iframe报表方法 → 报表处理 → 回调父页面函数 → 更新其他模块通过此流程可实现地图模块与其他网页组件的联动。

最佳回答
0
iQianLv4初级互助
发布于7 天前(编辑于 7 天前

你是要把报表嵌入到另一个系统中吧?

这样的话,需要借助前端操作来实现两个系统的联动。

1、首先要需要前端开发人员在A系统里写一个js 的方法供帆软调用。

2、帆软报表里操作,用js触发A系统前端的方法(iframe的话,是调用父页面)的js方法,同时传参给前端(参数双方商议)

3、前端接受到报表的调用,再去触发其他模块的联动

这个是多方合作的结果,报表自身无法实现的

  • 5关注人数
  • 42浏览人数
  • 最后回答于:7 天前
    请选择关闭问题的原因
    确定 取消
    返回顶部