JS使用填报页面的控件查询

编辑
  • 文档创建者:cherishdqy
  • 浏览次数:7495次
  • 编辑次数:11次
  • 最近更新:Kevin-s 于 2019-06-22
  • 1. 描述

    在设计报表的过程中,有部分需求需要使用填报控件来实现查询的功能,如下面的示例下拉框选择地区后列表自动过滤显示所选地区的数据,该如何实现?


    2. 思路

    在参数界面设置隐藏的地区下拉框控件,在填报的下拉框控件的编辑后事件中将当前控件的值赋值给参数界面的地区控件,并执行查询。


    3. 操作步骤

    3.1 新建数据集

    新建数据集 ds1 为:SELECT * FROM 销量 where 1=1 ${if(len(area)==0,"","and 地区='" + area + "'")} 


    3.2 设计模板

    将数据集的字段拖入单元格中,并添加一个选择地区的下拉框,如下图:

    选择模板>模板 Web 属性>填报页面设置,取消勾选“未提交离开提示”,并勾选“直接显示控件”,如下图所示:



    3.3 设置参数界面

    参数界面中添加一个下拉框控件,控件名为 area,并设置控件不可见。


    点击参数界面空白处,不勾选“点击查询前不显示报表内容”。


    将鼠标放到参数面板的下边框出现双向箭头,按住鼠标左键拖动至顶端,将参数面板的高度设置为 0。

    注:当参数面板中有控件时,预览报表默认会显示一个向下的三角按钮,可通过 JS 隐藏参数界面向上向下的三角按钮。


    3.4 设置填报控件

    右键单元格中添加的下拉框控件,点击控件设置,设置下拉框控件名为 area。

    设置下拉框数据字典为销量表中的地区字段。

    点击事件编辑,添加编辑后事件,并输入下面的 JavaScript 代码:


    /*获取单元格C2选择的地区控件的值*/
    var area1=contentPane.getWidgetByName("area").getValue();
    /*获取参数面板中的文本控件*/
    var area2=contentPane.parameterEl.getWidgetByName("area");
    /*给参数界面中的文本控件赋值*/
    area2.setValue(area1);
    /*执行查询*/
    _g().parameterCommit();


    4. 预览效果

    4.1 PC 端预览效果



    4.2 移动端预览效果

    注:此 JS 不支持移动端使用


    5. 已完成模板

    模板效果在线查看请点击:JS 使用填报页面的控件查询.cpt

    已完成的模板,可参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\JS\填报预览JS实例\33-JS使用填报页面的控件查询.cpt

    点击下载模板


    附件列表


    主题: 二次开发
    标签: 暂无标签 编辑/添加标签
    如果您认为本文档还有待完善,请编辑

    文档内容仅供参考,如果你需要获取更多帮助,付费/准付费客户请咨询帆软技术支持
    关于技术问题,您还可以前往帆软社区,点击顶部搜索框旁边的提问按钮
    若您还有其他非技术类问题,可以联系帆软传说哥(qq:1745114201

    此页面有帮助吗?只是浏览 [ 去社区提问 ]