最新历史版本 :根据参数查看不同报表 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 版本

报表服务器版本
功能变更
11.0-

1.2 应用场景

查询数据时,一般是根据参数值的不同展现不同的数据。但此处希望根据参数值的不同跳转到不同的模板,如下图所示:

1600867953828389.gif

1.3 实现思路

使用三张模板: 子模板1、子模板2、参数模板 实现。

1)准备好 子模板1、子模板2 并保存至相应路径。

2)新建模板,参数面板设置两个下拉框控件和一个查询按钮。

  • 两个下拉框控件分别设置数据字典,其中一个下拉框的数据字典设置为「订单」表中的「订单ID」,另一个下拉框的数据字典自定义为两个子模板。

  • 查询按钮设置点击事件,点击后跳转到选择的表,并传递订单ID。

2. 示例编辑

2.1 准备子模板

1)子模板1:%FR_HOME%\webroot\WEB-INF\reportlets\doc\Advanced\Father1.cpt

或点击下载模板并保存到对应路径:Father1.cpt

2)子模板2:%FR_HOME%\webroot\WEB-INF\reportlets\doc\Advanced\Son.cpt

或点击下载模板并保存到对应路径:Son.cpt

2.2 设计参数模板

1)点击菜单栏「文件>新建普通报表」,如下图所示:

新建普通报表.png

2)点击参数面板的编辑按钮,进入参数面板编辑界面,向参数面板中拖入两个标签控件,两个下拉框控件和一个查询按钮。如下图所示:

控件拖入参数面板.png

3)选中右侧的「label0」,点击「属性」,设置控件值为字符串「订单ID:」;同理,设置「label1」的控件值为字符串「查看表:」。

如下图所示:

标签重命名.png

4)选中右侧的「comBox0」,点击「属性」,设置控件名称为「orderID」;同理,设置「comBox1」的控件名称为「cptName」。

如下图所示:

下拉框控件重命名.png

5)选中右侧的「orderID」,点击「属性」,点击数据字典旁的「... 」按钮,设置数据字典,类型设置为「数据库表」,数据库为「FRDemo」,选择数据库表为「订单」,实际值和显示值都为「订单ID」。如下图所示:

orderID设置数据字典.png

6)选中右侧的「cptName」,点击「属性」,点击数据字典旁的「... 」按钮,设置数据字典,类型设置为「自定义」,实际值为报表路径,Father1.cpt 对应显示值为:订单,Son.cpt 对应显示值为:订单明细。如下图所示:

cptName设置数据字典.png

7)选中右侧的「formSubmit0」,点击「事件」,点击「+」按钮,设置查询按钮点击事件,如下图所示:

查询按钮点击事件.png

JS 代码如下:

var orderID = this.options.form.getWidgetByName("orderID").getValue();    
var cptName = this.options.form.getWidgetByName("cptName").getValue();
window.location = "${servletURL}?viewlet=" + cptName + "&ID="+ orderID;

注1:子报表名称包含中文时第三行代码需要使用 encodeURI() 转码函数,代码如下:

window.location = "${servletURL}?viewlet=" + encodeURI(cptName) + "&ID=" + orderID;

注2:如果子报表为填报报表,需要在第三行代码的 cptName 后增加 "&op=write",代码如下:

window.location = "${servletURL}?viewlet=" + cptName + "&op=write" + "&ID=" + orderID;

注3:如果希望在新窗口打开,第三行代码修改如下:

window.open("${servletURL}?viewlet=" + cptName + "&ID=" + orderID,"_blank")

2.2 效果预览

2.2.1 PC 端

保存模板,点击「分页预览」,效果如 1.2 节所示。

2.2.2 移动端

不支持移动端。

3. 下载模板编辑

已完成模板可参见:%FR_HOME%\webroot\WEB-INF\reportlets\doc\Parameter\根据参数查看不同报表.cpt

点击下载已完成模板:根据参数查看不同报表.cpt