填报报表里面的数据怎样再iframe父页面执行保存

保存提交按钮在父页面,iframe嵌套的填报报表,数据修改写好之后怎样点击保存提交按钮后保存报表里面的数据

FineReport 245337 发布于 昨天 17:22
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
技术支持--哈哈Lv4初级互助
发布于昨天 17:33
1. 父页面按钮设置

在父页面添加按钮控件,并为其添加「点击」事件,JavaScript代码如下:


// 获取iframe中的填报对象

var childFrame = document.getElementById("iframe的ID").contentWindow;

// 调用子页面的提交方法

childFrame._g().verifyAndWriteReport();
2. 子页面配置

确保子页面已正确设置填报属性:

  1. 进入子模板的「模板>报表填报属性」,添加内置SQL提交方式

  2. 绑定对应数据库表和字段填报属性设置

3. 提交后刷新(可选)

若需要在提交后刷新父页面,可在子页面添加「填报成功」事件:


window.parent.location.reload();  // 强制刷新父页面

// 或保留参数值刷新

window.parent._g().parameterCommit();
注意事项

最佳回答
0
snrtuemcLv8专家互助
发布于昨天 17:24(编辑于 昨天 17:25
方法一:父页面触发子页面提交
  1. 子模板设置在子模板中确保已正确设置填报提交按钮5

  2. 父页面调用代码


    // 获取iframe内的document对象

    var childDoc = document.getElementById("iframeId").contentWindow.document;

    // 触发子页面的提交按钮点击事件

    childDoc.getElementById("submitButtonId").click();
方法二:子模板关闭时自动提交
  1. 子模板JS代码


    // 监听窗口关闭事件

    window.onunload = function() {

    // 执行提交逻辑

    _g().parameterCommit();

    }

    {{JS实现关闭子页面时刷新父页面-1754.md}}
效果示例

提交效果5

注意事项

  1. 确保iframe的src属性包含op=write参数(如${servletURL}?reportlet=子模板.cpt&op=write)

  2. 跨域场景需特殊处理,参考跨域调用方案4

  • 245337 245337(提问者) 父页面是个html是可以的吗?
    2025-06-17 17:27 
  • 245337 245337(提问者) 跨域场景需特殊处理,参考跨域调用方案4 方案4 是啥?
    2025-06-17 17:28 
最佳回答
0
用户k6280494Lv6专家互助
发布于昨天 17:24(编辑于 昨天 17:25

//不校验直接提交

window.parent._g().writeReport(0);

//校验后提交

window.parent._g().verifyAndWriteReport();

  • 4关注人数
  • 28浏览人数
  • 最后回答于:昨天 17:33
    请选择关闭问题的原因
    确定 取消
    返回顶部