如何让报表页面超级链接的动态参数被参数面板接受到

image.png

如图,点击了排序之后的这个px字段的值如何被获取

FineReport yzmMArmb1895213 发布于 2024-10-30 16:27
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
snrtuemcLv8专家互助
发布于2024-10-30 16:33(编辑于 2024-10-30 16:35)

这个直接动态参数不支持的

需要写js才可以,代码参考下面

============

js代码给参数赋值

$.ajax({

url: '/webroot/decision/view/form?op=fr_dialog&cmd=parameters_d',

type: 'POST',

data: {

"参数名1":参数值1,

                 "参数名2":参数值2

},

headers: {

sessionID: _g().currentSessionID

},

complete: function(res, status) {

if (window.FR && FR.Chart && FR.Chart.WebUtils) {

FR.Chart.WebUtils.clearCharts();

}

_g().gotoPage(contentPane.currentPageIndex); //回到当前页

}

});

contentPane.parameterEl.getWidgetByName("控件名").setValue("你的值");

  • yzmMArmb1895213 yzmMArmb1895213(提问者) 可以举个例子吗,最终希望达到的目标希望自定义的导出按钮导出的数据也根据页面选择的字段来排序 比如现在点击gmv之后,页面数据按gmv排序了,但是导出的是初始化时候的样子
    2024-10-30 16:37 
  • snrtuemc snrtuemc 回复 yzmMArmb1895213(提问者) 这个没办法,导出只能到处初始化加载的数据样式,除非两个模板,一个预览,一个到处。。
    2024-10-30 16:38 
  • yzmMArmb1895213 yzmMArmb1895213(提问者) 回复 snrtuemc 现在就是两个模版,但是我获取不到变化后的px,一直是默认排序,点了gmv之后没能让px值变化
    2024-10-30 16:41 
  • snrtuemc snrtuemc 回复 yzmMArmb1895213(提问者) 这个没办法,导出只能是初始化的样式,你两个模板,需要导出模板一开始就是你要样式才可以
    2024-10-30 16:43 
  • yzmMArmb1895213 yzmMArmb1895213(提问者) 回复 snrtuemc 我想的是在预览页面点击了字段的排序之后就将排序字段赋值给控件区,然后将这个参数传到导出页面,这样导出页面的px初始值就是排序字段了,但是我没能让控件区获取到这个排序值
    2024-10-30 16:49 
最佳回答
0
华莉星宸Lv7资深互助
发布于2024-10-30 16:34

用js  给控件赋值

image.png

最佳回答
0
azsLv6见习互助
发布于2024-10-30 17:29

看了下需求,我们不需要把参数结果传到参数面板,我们可以使用js直接获取报表单元格数据,把动态参数放到对应单元格即可。

具体实现(模板web属性自定义事件按钮,实现excel自定义导出):

//1.获取单元格数据

var field = _g().getCellValue("A1", null);//需要排序的字段

var sort = _g().getCellValue("B1", null);//排序的顺序

//2.自定义excel导出

var url = ("${servletURL}?viewlet=xxx.cpt&op=write"); //需要导出的报表路径

var config = {

"field": field,

"sort": sort,

format: "excel",

extype: "simple"

};

FR.doHyperlinkByPost(url, config);

  • yzmMArmb1895213 yzmMArmb1895213(提问者) 但是选择哪个字段排序是不确定的,页面有多个字段可以排序
    2024-10-30 17:37 
  • azs azs 回复 yzmMArmb1895213(提问者) 用公式拼接吧,这样只需要传输一个长的排序字符串就行了
    2024-10-30 17:42 
  • azs azs 回复 yzmMArmb1895213(提问者) 动态参数点击时,结果直接是"gmv asc"或"gmv desc",单元格公式获取if(len($px)<>0,$px,),然后拼接就行了
    2024-10-30 17:46 
  • 4关注人数
  • 158浏览人数
  • 最后回答于:2024-10-30 17:29
    请选择关闭问题的原因
    确定 取消
    返回顶部