情景:一个决策报表中有三个参数控件,本报表显示的是总结后的报表块,但是业务方面需要用到另一种形式的报表块,在参数面板中添加导出空件,根据此时的参数值进行明细导出。
一开始的思路有点错误。想的是将两个报表块放在一个决策报表中,但是帆软对决策报表的导出支持不是很够,而且要做到选择对单个报表块导出,需要用到JQUERY,本人不是很熟悉,只能转变一种思路。
解决方案:
帆软对于普通报表.cpt的支持较好。将需要导出的报表块单独做成一个普通报表文件,通过决策报表中控件的点击事件实现传参下载。
点击事件的代码如下:
var ware = this.options.form.getWidgetByName("warehouse")
var seller = this.options.form.getWidgetByName("sellername")
var charge = this.options.form.getWidgetByName("charger")
console.log(ware.getValue())
console.log(seller.getValue())
console.log(charge.getValue())
window.open(encodeURI('/webroot/decision/view/report?viewlet=库存相关/料品寄售明细.cpt&warehouse='+ware.getValue()+'&SellerName='+seller.getValue()+'&BusinessPeople='+charge.getValue())+'&format=excel')
注意:我在这出了一个问题,只是绕开了,并没有找到原因。warehosue sellername charger 是三个全局参数绑定了三个参数控件,本来打算用全局参数对js事件进行传参,但是,点击导出按钮时,三个参数的值无法拿到,很费解。最后通过直接获取参数面板控件的值才解决功能需求的。