帆软报表之 控件示例 -5
控件示例
单选按钮组控制实现是否显示全部
1. 描述
FR可以实现通过单选按钮组控件实现,控制模板的显示内容是否显示全部或者只显示一部分。
2. 示例
以下我们用FRDemo数据库中的公司部门表作为数据源,通过单选按钮组实现当选择是,查询部门ID的时候,除了显示自己本身之外,还要显示其上级部门的信息,选择否的时候,只显示自己本身。
2.1 定义数据集
增加数据库查询ds1:SELECT * FROM 公司部门 where 1=1 ${if (p2 == '0',"and 部门ID = '" + p1 + "'","and 部门ID = '" + p1 + "' or 上级ID='" + p1 + "'")}。
注:部门ID = '" + p1 + "' or 上级ID='" + p1 + "'的意思是当p2不为0时,则显示部门ID以及上级ID。
2.2 添加参数面板
1)控件设置
在参数面板将2个参数生成2个控件,其中p1指向文本框,p2指向单选按钮组,如下图:
![0](https://img2020.cnblogs.com/blog/1446192/202201/1446192-20220105152428105-957276959.jpg)
2)控件数据字典
文本框不需要设置数据字典,单选按钮组的数据字典自定义,如下图:
![0](https://img2020.cnblogs.com/blog/1446192/202201/1446192-20220105152428449-141914937.jpg)
2.3 报表主体设置
![0](https://img2020.cnblogs.com/blog/1446192/202201/1446192-20220105152428038-1375213655.jpg)
2.4 效果查看
1)当选择不显示上级ID,即单选按钮组选择false,查询结果如下:
![0](https://img2020.cnblogs.com/blog/1446192/202201/1446192-20220105152428116-1125658618.jpg)
2)当选择显示上级ID,即单选按钮组选择true,查询结果如下:
![0](https://img2020.cnblogs.com/blog/1446192/202201/1446192-20220105152428266-662905236.jpg)
视图树超链
1. 描述编辑
我们有时希望可以在页面左边显示视图树,右边显示子模板,根据动态树节点的不同,动态的显示子模板,如下图:
![0](https://img2020.cnblogs.com/blog/1446192/202201/1446192-20220105152428408-2047127899.jpg)
2. 解决方案
报表分为左右两个部分,左边定义个视图树,右边使用网页框显示子表。
给视图树添加点击事件,将选择的值传递给网页框中的子模板。
3. 示例
3.1 子模板准备
该示例中准备了一张子模板,定义内置数据集,如下图:
![0](https://img2020.cnblogs.com/blog/1446192/202201/1446192-20220105152428470-2131284615.jpg)
设置报表样式,如下图:
![0](https://img2020.cnblogs.com/blog/1446192/202201/1446192-20220105152428174-656950719.jpg)
双击A2单元格,给A2增加过滤条件,公式为sql("FRDemo", "select 部门名称 from 公司部门 where 部门ID='" + para + "'", 1)
![0](https://img2020.cnblogs.com/blog/1446192/202201/1446192-20220105152428409-1026543700.jpg)
已完成模板请参照%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Primary\widgetReport\视图树超链子报表.cpt
3.2 主模板的设置
1)视图树控件设置
首先添加添加模板数据集,SQL为:SELECT * FROM 公司部门。
在模板中添加一个视图树控件,构建树,构建方式选择自动构建,此不做详细介绍,具体定义方法可参考下拉树控件自动构建示例文档。完成之后如下图:
![0](https://img2020.cnblogs.com/blog/1446192/202201/1446192-20220105152428438-1010701347.jpg)
2)属性设置
设置视图树类型为单选视图树,如下图:
![0](https://img2020.cnblogs.com/blog/1446192/202201/1446192-20220105152428301-83493051.jpg)
设置只返回叶子节点,并使其返回数据为当前选中数据,而不是层次路径。
3)点击事件设置
给视图树添加点击事件,如下图:
![0](https://img2020.cnblogs.com/blog/1446192/202201/1446192-20220105152428536-1218075171.jpg)
js代码如下:
- var b = this.getValue();
- var url = "?viewlet=doc/Primary/widgetReport/%e8%a7%86%e5%9b%be%e6%a0%91%e8%b6%85%e9%93%be%e5%ad%90%e6%8a%a5%e8%a1%a8.cpt&__showtoolbar__=false";
- FR.doHyperlinkByPost(url,{para:b},'REPORT');
注:其中的REPORT就是网页框的控件名,doHyperlinkByPost中网页框名字必须大写。
注:视图树返回的值类型为数组
4)FR.doHyperlinkByPost(url,config,target,feature)
url必填,为url或json超链定义,config表示要传递的参数,target表示超链子页的打开位置,如上,即表示在REPORT网页框中打开,还可以在feature参数中设置窗口属性,比如说打开窗口的大小,则表示为FR.doHyperlinkByPost(url,config,target "600,600,")
类似于FR.doHyperlinkByPost(url,config,target,feature)使用post方式传递模板,还可以使用get方式传递,其接口为FR.doHyperlinkByGet(url,config,target,feature),也可以使用FR.doHyperlinkByGet4Reportlet(url,config,target,feature)方法。
注:target和feature属性在移动端无效。
5)网页框控件设置
![0](https://img2020.cnblogs.com/blog/1446192/202201/1446192-20220105152428414-373458780.jpg)
3.3 效果查看
在主模板中点击数据分析预览,就可以看到效果了。
模板在线效果查看请点击father.cpt
已完成模板请参照%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Primary\widgetReport\视图树超链主报表.cpt
拥有自信,努力奋斗,保持乐观积极地情绪,逆着阳光,成功就在前方。自己选择的路,放弃者绝不会成功,成功者绝不放弃。