(此文档仅供参考!且不适用于v8及以上版本!)
问题
电子表格参数引用回写字段,回写保存数据后参数备选值不能立即更新(已在参数设置界面设置禁止缓存),需要重新打开报表才更新
原因
这个效果是正常的,参数控件在报表加载完成后已读取完参数的备选值,这时候数据库更新数据,不会再次触发参数备选值的SQL逻辑。
解决方案
可以通过宏来实现此效果。
在报表宏界面新建客户端模块。在弹出的新建模块对话框中,选择对象为spreadSheetReport、事件为onRender、并把下面宏代码复制到代码编辑区域。
类型 | 对象 | 事件 |
---|---|---|
ClientSide | spreadsheetReport | onRender |
function main(spreadsheetReport, isAjaxRefreshCallback) { for(var i=0;i<spreadsheetReport.params.length;i++){ var param=spreadsheetReport.params[i]; if(param.name=="区域"){ if(param&&spreadsheetReport.paramPanelObj){ spreadsheetReport.paramPanelObj.paramsInited[param.id]=false; } } } }
最终效果