反馈已提交

网络繁忙

JS实现参数控件赋值

  • 文档创建者:lu123
  • 历史版本:20
  • 最近更新:Carly 于 2023-02-23
  • 1. 概述

    1.1 版本

    报表服务器版本
    功能变更
    11.0-

    1.2 问题描述

    参数界面中,往往需要在一个控件中动态的控制其他控件的值,如下图,当 username 有值时,state 自动变为 1,当 username 无值时,state 自动变为 2。

    222

    1.2 实现思路

    可以通过 JavaScript 脚本获取到需要的控件,从而获得控件的值及给控件赋值。

    2. 操作步骤

    我们制作一个简单的例子实现上图效果。

    2.1 准备模板

    1)新建模板,点击「菜单模板-模板参数」,添加两个模板参数:username 和 state,如下图所示:

    222

    2)打开参数面板,在右侧的控件设置中,点击全部添加按钮,如下图所示:
    image.png

    3)控件会自动添加到参数面板中,如下图参数面板所示,如下图所示:

    222

    4)将两个未定义的控件分别设置为「下拉框控件」和「单选按钮组控件」,如下图所示:

    222

    5)选择下拉框控件 username,设置数据字典,类型设置选择自定义,实际值和显示值都为:jerny,anna,merry,如下图所示:

    image.png

    6)选择单选按钮组控件 state,设置数据字典,类型设置选择自定义,实际值和显示值都为:1,2 。如下图所示:

    image.png

    2.2 添加事件

    选择下拉框控件 username,添加编辑后事件,如下图所示:

    image.png

    JavaScript 代码如下:

    var state = this.options.form.getWidgetByName("state");
    var username = this.options.form.getWidgetByName("username").getValue();
    if(!username) {
        state.setValue(2);
    } else {
        state.setValue(1);
    }

    注1:该段代码是用来对 state 参数置数,当 username 为空时,!username 为真,此时将 state 置数为 2;否则当 username 有值时,将 state 置数为 1。

    注2:移动端需要 将 3.2 中的 JavaScript 代码添加到编辑结束事件中。为了 PC 端和移动端可以在一个模板中实现一样的效果,可以同时添加编辑后和编辑结束事件,JS 代码一样。

    注3:若下拉框需要多选,需要将username赋值语句调整为数组形式,例如this.options.form.getWidgetByName('treeComboBox2').setValue([['02'],['05']]);

    2.3 预览效果

    2.3.1 PC 端

    保存模板,点击「分页预览」,PC 端效果如下所示:

    222

    2.3.2 移动端

    App 及 HTML5 效果如下图所示:

    222

    3. 模板下载

    已完成的模板可参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\JS\参数界面JS实例\15-JS实现参数控件赋值.cpt

    点击下载模板:15-JS实现参数控件赋值.cpt

    附件列表


    主题: 参数应用
    已经是第一篇
    已经是最后一篇
    • 有帮助
    • 没帮助
    • 只是浏览
    中文(简体)

    鼠标选中内容,快速反馈问题

    鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

    不再提示

    10s后关闭

    联系我们
    在线支持
    获取专业技术支持,快速帮助您解决问题
    工作日9:00-12:00,13:30-17:30在线
    页面反馈
    针对当前网页的建议、问题反馈
    售前咨询
    采购需求/获取报价/预约演示
    或拨打: 400-811-8890 转1
    qr
    热线电话
    咨询/故障救援热线:400-811-8890转2
    总裁办24H投诉:17312781526
    提交页面反馈
    仅适用于当前网页的意见收集,帆软产品问题请在 问答板块提问前往服务平台 获取技术支持