1. 描述
在实际项目中,使用决策报表的时候,有时会用到在决策报表参数面板获取报表控件的值,那么该如何实现呢?
2. 思路
使用js获取报表主体的控件值:
<span style="color:#334356"><span style="color:#1bc1a1"><img data-cke-saved-src="http://help.finereport.com/js/clipboard/clippy.png" src="http://help.finereport.com/js/clipboard/clippy.png" alt="Copy to clipboard" class="clippy" /><code>_g().getWidgetByName(<span style="color:#dd1144">"area"</span>).getValue(); <span style="color:#999988"><em>//获取报表主体控件area的控件值</em></span></code></span></span>
3. 操作步骤
1)新建决策报表,将body的布局方式修改为绝对布局:
2)将标签控件和文本控件拖入报表主体,标签控件的控件值修改为:地区是::
3)将文本控件的控件名称修改为area:
4)将参数界面拖入报表主体,并添加一个按钮控件,按钮名称改为:获取报表主体控件值:
5)选中按钮按钮,添加点击事件:
具体js代码如下:
<span style="color:#334356"><span style="color:#1bc1a1"><img data-cke-saved-src="http://help.finereport.com/js/clipboard/clippy.png" src="http://help.finereport.com/js/clipboard/clippy.png" alt="Copy to clipboard" class="clippy" /><code><span style="color:teal">var</span> label = _g().getWidgetByName(<span style="color:#dd1144">"label0"</span>).getValue(); <span style="color:#999988"><em>//获取标签控件label0的控件值 </em></span>
<span style="color:teal">var</span> area = _g().getWidgetByName(<span style="color:#dd1144">"area"</span>).getValue(); <span style="color:#999988"><em>//获取文本控件area的控件值 </em></span>
alert(label + area);</code></span></span>
6)点击参数面板空白处,把点击查询前不显示报表内容的勾选去掉:
7)保存并预览就可以看到如上效果图。
4. 预览效果
4.1 PC端预览效果
4.2 移动端预览效果
1)APP预览效果
2)H5预览效果
5. 已完成模板
模板效果在线查看请点击:JS实现在报表参数界面获取控件的值.frm
已完成的模板,可参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\JS\表单JS实例\26-JS实现在报表参数界面获取控件的值.frm