帆软report有一个按钮,需要根据页面查询完后的一些值来控制是否可以点击

这个按钮在顶部的查询参数位置(不是查询参数),我单独在查询区域做了一个点击按钮,用来提交当前页面数据;想在满足图二3个入参条件的情况下,按钮可以点击.我在模板web页面的填报页面的加载结束事件里写了图二的js,可以实现这个需求,但是现在有个问题,在页面全部加载完后,这个按钮没有按理想化的控制,需要再次点击一下查询才可以实现,求教各位大佬,如何省去第二次点击查询按钮的这一步操作

ztbm和cqzt 这两个字段是当前页面查询的sql返回结果里边的   

FineReport 帆软用户TUBHZVRtz3 发布于 2025-2-25 14:55 (编辑于 2025-2-25 14:56)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
Z4u3z1Lv6专家互助
发布于2025-2-25 14:58

_g().parameterCommit(); 在JS里面找个合适的位置加一个这个

  • 帆软用户TUBHZVRtz3 帆软用户TUBHZVRtz3(提问者) 您的意思是 在判断完条件以后 再执行一次查询提交js
    2025-02-25 14:59 
  • Z4u3z1 Z4u3z1 回复 帆软用户TUBHZVRtz3(提问者) 是的
    2025-02-25 15:00 
  • Z4u3z1 Z4u3z1 回复 帆软用户TUBHZVRtz3(提问者) 应该是ztbm和cqzt这两个值没获取到,你把它放到function里面写JS获取
    2025-02-25 15:02 
  • 帆软用户TUBHZVRtz3 帆软用户TUBHZVRtz3(提问者) 回复 Z4u3z1 确实是 ,我一开始想过这个问题 ,我使用alert 弹出这几个字段都为null,只有当页面显示完整了以后,我再次点击查询,弹出的这2个值才有 我用js获取控件值试试吧
    2025-02-25 15:05 
  • 帆软用户TUBHZVRtz3 帆软用户TUBHZVRtz3(提问者) 回复 Z4u3z1 这两个控件的控件名称分别是"状态编码"和"是否超期状态" 我获取的js如下
    var ztbm1=contentPane.parameterEl.getWidgetByName("状态编码").getValue();
    var cqzt1=contentPane.parameterEl.getWidgetByName("是否超期状态").getValue();
    alert('ztbm1',ztbm1);
    alert('cqzt1',cqzt1);
    弹出的2个框 都不显示值,值显示都为空,再次点击查询 也不显示值
    2025-02-25 15:11 
最佳回答
0
snrtuemcLv8专家互助
发布于2025-2-25 14:59

这个勾去掉

image.png

  • 帆软用户TUBHZVRtz3 帆软用户TUBHZVRtz3(提问者) 好的 我先试试
    2025-02-25 15:01 
  • 帆软用户TUBHZVRtz3 帆软用户TUBHZVRtz3(提问者) 刚看了一下,我这边一直是不勾选的
    2025-02-25 15:11 
  • snrtuemc snrtuemc 回复 帆软用户TUBHZVRtz3(提问者) 那就你的js外面套一个延迟函数
    setTimeout(function() {
    你的js语句
    }, 1000);//1000毫秒等于一秒,自己根据需要修改时间
    2025-02-25 15:13 
  • 帆软用户TUBHZVRtz3 帆软用户TUBHZVRtz3(提问者) 回复 snrtuemc 这个延迟函数 没有解决这个需求,当页面加载结束后,页面数据还是瞬间出现, 再次点击查询 按设置的5秒后 提交按钮才会执行 == 还是需要重复点击查询实现
    2025-02-25 15:20 
  • snrtuemc snrtuemc 回复 帆软用户TUBHZVRtz3(提问者) 那就随便一个控件,初始化事件,
    setTimeout(function() {
    _g().parameterCommit();
    }, 800);
    2025-02-25 15:21 
最佳回答
0
帆软用户TUBHZVRtz3Lv2见习互助
发布于2025-2-25 16:26

附上我的代码: 调用两次查询 就可以代替手动再点一次查询效果了

_g().parameterCommit();

setTimeout(function() {

if (ztbm === '' || ztbm === null || ztbm === undefined) {

//不隐藏查询按钮  但不允许点击

contentPane.parameterEl.getWidgetByName("报表提交").setEnable(false);

} else {

//ztbm存在  不为空 

if (ztbm === "待提交" && dqRole.includes("联络员") && cqzt == "yes" || ztbm === "已退回" && dqRole.includes("联络员") && cqzt == "yes") { //显示提交按钮

contentPane.parameterEl.getWidgetByName("报表提交").setVisible(true);

contentPane.parameterEl.getWidgetByName("报表提交").setEnable(true);

} else {

contentPane.parameterEl.getWidgetByName("报表提交").setEnable(false);

}

}

_g().parameterCommit();

}, 800);

  • 1关注人数
  • 65浏览人数
  • 最后回答于:2025-2-25 16:26
    请选择关闭问题的原因
    确定 取消
    返回顶部