历史版本10 :JS实现使用填报页面的控件查询 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 描述编辑

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

222


2. 思路编辑

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


3. 操作步骤编辑

3.1 新建数据集

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


3.2 设计模板

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

222

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

222


3.3 设置参数界面

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

222

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

222

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

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


3.4 设置填报控件

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

222

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

222

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

222

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


4. 预览效果编辑

4.1 PC 端预览效果

222


4.2 移动端预览效果

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


5. 已完成模板编辑

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

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

点击下载模板