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

温馨提示

提示:本文档的示例代码仅适用于本文档中的示例报表/场景。若实际报表/场景与示例代码无法完全适配(如使用功能不一致,或多个宏代码冲突等),需根据实际需求开发代码。

示例说明

 有时候我们在使用参数时,即想要实现多选,但在有些参数值过多的情况下,我们又想要可以实现模糊查询以方便进行快捷查询,输入时用英文逗号隔开效果如下图所示:

设置方法

  1. 在资源定制中,创建一张灵活分析(带参数);
  2. 选中灵活分析,右键选择 编辑宏 进入报表宏界面。
  3. 在报表宏界面新建客户端模块,在弹出的新建模块对话框中选择对象为simpleReport;事件为onRender;并把下面宏代码复制到代码区域。 

宏类型

类型

对象

事件

ClientSide

simpleReport

onRender

宏代码


function main(simpleReport, simpleReportContext) {
    var paramPanel = simpleReport.paramPanelObj; //获取参数面板
    if (paramPanel) { //修改面板指定参数的点击事件
        paramPanel.old_setParamValue = paramPanel.setParamValue;
        paramPanel.setParamValue = function(paramId, value, alias, clientId, isInner) {
            var disValue = value;
            if (value != "" && value != null) {
                var valueArray = value.split(","); //逗号分割
                
                //处理参数实际的部分
                if (valueArray.length > 1) {
                    value = valueArray[0] + "%' or T11.CompanyName like";
                    for (var i = 1; i < valueArray.length - 1; i++) {
                        value = value + "'%" + valueArray[i] + "%' or T11.CompanyName like";
                    }
                    value = value + "'%" + valueArray[valueArray.length - 1];
     //             alert(value);
                }
            }
            paramPanel.old_setParamValue(paramId, value, alias, clientId, isInner);
            
            //重新处理一下显示值
            var pTag = paramPanel.getParamTagByParamId(paramId);
            if (pTag) {
                paramPanel.setParamCtrlValue(pTag, disValue , alias);
            }
        };
    }
}

注意:作为多选模糊查询的参数的数据类型要选择“其他类型”,并且在宏代码中,要将下方红色框的字段改成自己使用的参数字段。

  • 无标签