决策报表自动刷新要带上已经输入的查询条件,该怎么写

决策报表自动刷新要带上已经输入的查询条件,该怎么写目前自动刷新的语句是setInterval('location.reload();',300000); //新建一个定时器,它会每隔10000毫秒执行一次对页面的刷新

FineReport 指间沙 发布于 4 天前 (编辑于 4 天前
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共6回答
最佳回答
0
指间沙Lv6中级互助
发布于前天 10:59

setInterval(function() {

debugger;

    // 获取参数值

    var GDZT = _g().parameterEl.getWidgetByName('工单状态').getValue();

    var XT = _g().parameterEl.getWidgetByName('线名').getValue();

var LC = _g().parameterEl.getWidgetByName('流程名').getValue();

var RQ = _g().parameterEl.getWidgetByName('日期').getValue();

var RQ1 = _g().parameterEl.getWidgetByName('日期1').getValue();

var PM = _g().parameterEl.getWidgetByName('品名').getValue();

var LH = _g().parameterEl.getWidgetByName('料号').getValue();

var GDH = _g().parameterEl.getWidgetByName('工单号').getValue();

    // 基础 URL(无需编码参数名)

    const baseUrl = "报表路径";

    // 直接拼接参数名和值(仅编码值)

    const finalUrl = baseUrl 

        + "&工单状态=" + encodeURIComponent(GDZT) 

        + "&线名=" + encodeURIComponent(XT) 

        + "&流程名=" + encodeURIComponent(LC) 

         + "&日期=" + encodeURIComponent(RQ) 

          + "&日期1=" + encodeURIComponent(RQ1) 

            + "&品名=" + encodeURIComponent(PM) 

            + "&料号=" + encodeURIComponent(LH) 

        + "&工单号=" + encodeURIComponent(GDH) 

        + "&_t=" + Date.now(); // 防缓存

    // 跳转刷新

    window.location.href = finalUrl; 

}, 300000); // 每1分钟刷新

最佳回答
0
华莉星宸Lv7资深互助
发布于4 天前

setInterval(function() {

_g().parameterCommit();

}, 60000); // 60000 毫秒即 1 分钟

  • 指间沙 指间沙(提问者) 这个是自动查询吧,我要的是整个页面刷新,然后带上参数
    2025-04-25 17:05 
  • 指间沙 指间沙(提问者) 这个会不会
    清除过期会话
    2025-04-25 17:10 
  • 华莉星宸 华莉星宸 回复 指间沙(提问者) 页面刷新 参数就丢失了啊
    除非你新打开一个页面,把参数带上
    2025-04-25 17:12 
  • 指间沙 指间沙(提问者) 回复 华莉星宸 这种的话有例子吗
    2025-04-25 17:17 
最佳回答
0
豆豆小可爱Lv5中级互助
发布于4 天前(编辑于 4 天前

每个报表块配置自动刷新,也能实现吧

最佳回答
0
jokerGGLv5见习互助
发布于4 天前(编辑于 前天 08:52

按照你现在的刷新逻辑,直接给查询控件赋默认值,这样就会按照你给的默认值一直刷新

最佳回答
0
红足迹Lv3见习互助
发布于3 天前(编辑于 3 天前

我的方案可以参考一下,看能不能解决你的问题:

1、添加按钮“带参数创建新页面”,

image.png

点击事件里获取参数控件的值,传参全屏(不显示参数面板)重新在当前页面打开报表:

//按钮点击事件代码参考:
var P1 = this.options.form.getWidgetByName("P1").getValue();
var P2 = this.options.form.getWidgetByName("P2").getValue();

var URL = '/webroot/decision/view/report?viewlet=模板路径.frm&P1=' +
	P1 + '&P2=' + P2 + '&__pi__=false';
window.open(encodeURI(encodeURI(URL)),"_self");

2、为方便修改查询提交,在页面上添加个显示参数面板的超链接:

image.png

这样的话,通过按钮“带参数创建新页面”打开的报表就是带参数的报表,自动刷新应该能满足你的需求

最佳回答
0
用户Dc84Y6876972Lv4见习互助
发布于3 天前

如果报表块刷新功能无效,可以使用 定时更新一个复选框的值为1,sql里面使用 where 1=${R} ,定时更新数据集,页面数据会自动刷新,会话时间会同步更新

setInterval(function() {

this.options.form.getWidgetByName("R").setValue("1");

}, 10*1000); 

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