1. 概述
1.1 应用场景
点击柱形图的柱子跳转到不同报表。
地图中设置多个区域名称,点击不同的区域跳转到不同的报表。
点击饼图不同的块,跳转到不同的 cpt 。
示例效果如下所示:
1.2 实现思路
图表属性面板添加JavaScript类型的超级链接,通过设置系列参数,链接到指定的报表,如下图所示:
2. 示例
2.1 设计主表
2.1.1 准备数据
新建普通报表,添加内置数据集,如下图所示:
2.1.2 绑定数据
合并一片单元格,右键选择插入图表>饼图>等弧度玫瑰图,数据来源为数据集数据,数据配置如下图所示:
2.2 设计子表:利润分析
2.2.1 准备数据
新建普通报表,新建数据集 ds1,SQL 语句为:SELECT * FROM 利润分析
2.2.2 设计报表
合并一片区域单元格为 A1,插入柱形图,绑定图表数据,保存报表,重命名为 利润分析.cpt,如下图所示:
2.3 设计子表:销售情况
2.3.1 准备数据
新建普通报表,新建数据集 ds1,SQL 语句为:SELECT * FROM 销量
2.3.2 设计报表
合并一片区域单元格为 A1,插入多层饼图,绑定图表数据,保存报表,重命名为销售情况.cpt,如下图所示:
2.4 主表添加超链
2.4.1系列名传参
打开主表,在「特效>交互属性」中,添加「超级链接>JavaScript」,如下图所示:
在 JavaScript 窗口右上角的参数界面添加一个参数series,参数值选择系列名称,如下图所示:
注:若是要根据饼图的分类名判断,则将系列参数值设置为分类名即可。
JavaScript 代码如下:
if(series=='财务部') /*判断系列名称为财务部*/
{
var URL='/webroot/decision/view/report?viewlet=doc/Chart/利润分析.cpt';
window.open(encodeURI(encodeURI(URL))); //在新标签页打开报表
}
if(series=='销售部')
{
var URL='/webroot/decision/view/report?viewlet=doc/Chart/销售情况.cpt';
window.open(encodeURI(encodeURI(URL)));
}
如需要在对话框中打开链接,可如下修改 JavaScript 代码:
var url = '';
if (series == '财务部') /*判断系列名称为财务部*/ {
url = '/webroot/decision/view/report?viewlet=doc/Chart/利润分析.cpt';
}
if (series == '销售部') {
url = '/webroot/decision/view/report?viewlet=doc/Chart/销售情况.cpt';
}
FR.doHyperlinkByGet({url:url,feature:'width=700,height=450,',title:'主页',target:'_dialog'}); //在对话框打开报表
2.4.2 系列名+分类名同时传参
例如:如果主表是柱形图,分类名是日期,系列名是不同指标
根据系列名打开不同子表时候,同时希望把分类名的日期也作为参数传入子表,可以如下写法:
if(series=='报到人数')
{
var URL='/webroot/decision/view/report?viewlet=WorkBook2.cpt&starttime='+starttime+'';
window.open(encodeURI(encodeURI(URL))); //在新标签页打开报表
}
注意引号要内外保持一致,“ ”与‘ ’都可以,但不一致会报错。
2.4.3 系列名+主表参数直接传参
例如:如果主表是柱形图,参数面板有开始日期、结束日期筛选,分类名是日期,系列名是不同指标
根据系列名打开不同子表,同时希望把参数面板的开始日期、结束日期也作为参数传入子表,可以如下写法:
注意引号要内外保持一致,“ ”与‘ ’都可以,但不一致会报错。
2.5 效果预览
保存主报表,点击分页预览,点击相应的系列,跳转效果如下所示:
注:不支持移动端。
3. 模板下载
已完成模板参见:
%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Chart\各部门反馈情况.cpt
%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Chart\利润分析.cpt
%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Chart\销售情况.cpt
点击下载模板: