历史版本7 :视图树展开 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 问题描述编辑

我们有时希望可以在页面左边显示视图树,右边显示子模板,根据动态树节点的不同,动态的显示子模板,如下图:

2. 解决方案编辑

报表分为左右两个部分,左边定义个视图树,右边使用网页框显示子表。
给视图树添加点击事件,将选择的值传递给网页框中的子模板。

3. 示例编辑

3.1 子模板准备
该示例中准备了一张子模板,模板数据集为FRDemo库里的“雇员”和“公司部门”数据集,如下图:

222

定义了一个参数para,默认值设为“123”
select 职务,姓名,地区,手机 from 雇员,公司部门 where 雇员.职务=公司部门.部门名称 and 公司部门.部门ID=${para}
表示根据para参数值查询出公司部门数据表对应的部门名称,然后使用该参数过滤职务字段,即只显示职务为部门名称的数据。根据参数选出对应职务的员工:

已完成模板请参照%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Primary\widgetReport\Son.cpt
3.2 主模板的设置
  • 视图树控件设置
首先添加添加模板数据集,SQL为:SELECT * FROM [公司部门]
在模板中添加一个视图树控件,构建树,构建方式选择自动构建,此不做详细介绍,具体定义方法可参考下拉树控件自动构建示例文档。完成之后如下图:
  • 属性设置
设置视图树类型为单选视图树,如下图:
设置只返回叶子节点,并使其返回数据为当前选中数据,而不是层次路径。
  • 点击事件设置
给视图树添加点击事件,如下图:
js代码如下:
var b = this.getValue();   var url = "/WebReport/ReportServer?reportlet=doc/Primary/widgetreport/son.cpt&__showtoolbar__=false";     FR.doHyperlinkByPost(url,{para:b},'REPORT');  
注:其中的REPORT就是网页框的控件名,doHyperlinkByPost中网页框名字必须大写。
注:视图树返回的值类型为数组,直接用index获取值就行,不需要使用split函数。
  • doHyperlinkByPost(url, para, target, feature)
para参数为json格式,target表示要打开url的窗口,如上,即表示在REPORT网页框中打开,还可以在feature参数中设置窗口属性,比如说打开窗口的大小,则表示为doHyperlinkByPost(url, para, target, "600,600,")
类似于doHyperlinkByPost(url, para, target, feature)使用post方式传递模板,还可以使用get方式传递,其接口为doHyperlinkByGet(url, para, target, feature),也可以使用doHyperlinkByGet4Reportlet(url,para,target,featrue)方法。
  • 网页框控件设置
已完成模板请参照%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Primary\widgetReport\father.cpt
3.3 效果查看
在主模板中点击数据分析预览,就可以看到效果了。

模板在线效果查看请点击father.cpt