历史版本27 :参数控件接口 返回文档
编辑时间:
内容长度:图片数:目录数:
修改原因:
1. 概述编辑
参数面板上添加控件实现参数查询时,当设计器中控件的配置项无法满足用户的需求时,用户可以使用 JavaScript 来开发功能,如修改控件样式、设置控件默认值、修改控件搜索逻辑、实现参数联动、实现参数查询等。
2. 接口编辑
2.1获取控件
对控件进行修改时,需要先获取到控件,那么如何使用 JavaScript 来获取到参数面板上的控件呢?
2.1.1 直接在参数面板中获取
直接在参数面板中使用 JavaScript 并获取控件,那么就可以直接使用:
this.options.form.getWidgetByName("widgetname")
注:如果是获取当前控件可以直接使用 this 替代。
2.1.2 在 Web 集成页面中获取
在web页面中获取 FineReport 报表里面的参数界面,那么就需要使用:
document.getElementById('reportFrame').contentWindow.contentPane.parameterEl.getWidgetByName('widgetname')
注:其中 reportFrame 是 Web 页面中嵌入 FineReport 报表的 iframe
2.1.3 在报表主体(单元格)获取
在报表主体即单元格中获取参数面板的控件需要使用:
contentPane.parameterEl.getWidgetByName("widgetname")
2.2 控件方法列表
获取到控件之后,需要对该控件进行再操作,可以获取其控件值,赋值,设置是否可见等等方法,如下列表:
注:其中 Widget 为获取到的控件。
方法 | 说明 |
---|---|
Widget.getValue() | 获取控件实际值 |
Widget.getText() | 获取控件的显示值 |
Widget.setValue() | 给参数控件赋值,不建议给填报控件赋实际值 注:如果用 setValue() 给下拉树赋值,需要添加一个 false 参数,即 setValue(value,false);value 为需要赋给下拉树的值。 |
Widget.setText() | 给参数控件赋显示值 |
Widget.reset() | 清空数据 |
Widget.isVisible(boolean) | 返回控件是否可见,返回 true 可见,false 不可见 |
Widget.setVisible(boolean) | 设置控件是否可见,参数为 true 可见,false 不可见 |
Widget.setEnable(boolean) | 设置控件是否可用,参数为 true 可用,false 不可用 |
Widget.isEnabled(boolean) | 返回控件是否可用,返回 true 可用,false 不可用 |
Widget.fireEvent("事件名称") | 设置控件触发指定名字的事件 |
Widget.options.allowBlank=false | 设置控件是否可为空,true 可为空,false 不可为空 |
3. 示例编辑
目录 | 文档 | 应用场景 |
---|---|---|
修改控件样式 | JS实现按钮文字竖排显示 | 显示在按钮上的文字可以竖排显示。 |
JS给参数控件添加水印文字 | 控件添加水印的接口,可以通过 JS 给控件添加水印。 | |
控件默认值 | JS实现下拉复选框默认全选 | 下拉框默认将全部选项选中。 |
JS实现复选按钮组控件默认全选 | 复选按钮自带的「支持全选」功能勾选后会出现会出现一个「全选」的按钮,若不希望出现此按钮可以添加 JS 实现全选。 | |
控件搜索 | JS实现下拉框自定义模糊搜索 | 下拉框下拉搜索选项时,文字不连续也能被匹配到,希望只匹配连续的内容。 |
参数联动 | JS实现动态选择列并查询值 | 当报表的数据列比较多时,可以动态选择需要的列并查询对应的值。 |
JS根据条件显示参数控件 | 部分参数控件在没满足条件时不显示,满足条件后再显示,如 A 下拉框选择了内容之后,B 下拉框才显示出来。 | |
JS 实现动态隐藏参数以及控制参数面板高度 | 参数控件较多时,这时候可以对一些不常用、不需要展现出来的的控件进行隐藏,当需要展示的时候再使其展示出来。 | |
JS实现弹窗后数据回填 | 当某个筛选框下拉项比较多时,可以将所有选项做成报表,点击报表中选项即选中。 | |
JS实现自定义按钮快速给参数赋指定范围值 | 周报、月报、季报、年报中有参数查询时,只需点击某个按钮,就能准确定位到合适的时间范围。 | |
JS实现参数控件赋值 | 参数界面中,当一个控件的值取决于另一个控件的值时,就可以通过 JS 条件判断实现。 | |
JS实现日期控件校验 | 通过 JS 对控件值做一些复杂校验,如结束日期不能大于开始日期、结束日期必须在开始日期后的某个时间段内。 | |
参数查询 | JS实现点击参数面板按钮显示或隐藏数据 | 当报表中列表数据太多时,可通过显示按钮隐藏明细数据只显示统计数据。 |
JS实现点击按钮切换Sheet页 | 填报预览时,当报表有多个 Sheet 时,可以通过参数面板上按钮跳转到指定的 Sheet 。 | |
JS实现无需点击查询按钮即可自动查询 | 不点击查询按钮,在控件中输入值后就能查询结果。 |