页面树结构
转至元数据结尾
转至元数据起始

正在查看旧版本。 查看 当前版本.

与当前比较 查看页面历史

« 前一个 版本 10 当前 »

(此文档仅供参考!)

问题说明

电子表格参数引用回写字段,回写保存数据后参数备选值不能立即更新,需要重新打开报表才更新


原因

这个效果是正常的,参数控件在报表加载完成后已读取完参数的备选值,这时候数据库更新数据,不会再次触发参数备选值的SQL逻辑。

解决方案

可以通过宏来实现此效果。

1、如果参数未设置默认值,回写刷新仅刷新备选值即可,则通过步骤一方案可实现此效果。

2、如果参数设置默认值,回写刷新需同时刷新备选值与默认值,则需通过步骤一和步骤二方案实现此效果。


步骤一:在报表宏界面新建客户端模块。在弹出的新建模块对话框中,选择对象为spreadSheetReport、事件为onRender、并把下面宏代码复制到代码编辑区域。

类型对象事件
ClientSidespreadsheetReportonRender
 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;
            }
    }
}
}

最终效果

步骤二:在报表宏界面新建客户端模块。在弹出的新建模块对话框中,选择对象为spreadSheetReport、事件为onWriteBackSavedData,并把下面宏代码复制到代码编辑区域。

类型对象事件
ClientSidespreadsheetReport

onWriteBackSavedData

function main(spreadsheetReport, succeeded) {
    //刷新默认值
    // 参数id,需要指定
    var paramId = 'OutputParameter.Iff8080810179ca5bca5b30790179cb64c40c5182.回写刷新';
    var ret = util.remoteInvoke('ParameterPanelService', 'getParamStandbyValue', [spreadsheetReport.paramPanelObj.clientId, paramId]);
    if (ret.retCode === 0 && ret.result && ret.result.length > 0) {
        var value = ret.result[0];
        // 传入参数:参数id、参数真实值、参数显示值
        spreadsheetReport.setParamValue(paramId, value[0], value[1]);

   说明:示例代码中的参数ID实在数据集中获取的,如图:

 

  最终效果,就可以实现参数默认值也刷新

 

Viewtracker License Missing

There is a problem with the license of the Viewtracker addon. Please check if you have a valid license.

授权码细节

  • 无标签