帆软图表钻取钻回
黎明至暗 2024-10-02 17:33:01 阅读 99
这是工作记录,是一个刚接触帆软的新人,所以如有不对,请直接指出,在这祝大家前途坦荡,一马平川,事业有成。
这一次记录的内容是帆软的图表钻取和钻回,操作基本上跟帆软的帮助文档大差不差,我也写了一篇“帆软图表多层钻取”。这就是一个两层的钻取和钻回,无需特意弄一个返回按钮。
图表钻取钻回
(一)、方式一
1、sql数据集准备
1.1、第一层sql数据集
select
T1.v_rate_code_dec 房价大类,
-- T1.v_rate_code_dec2 房价二级分类,
sum(T1.n_room_rate) 房租收入
from f_room_report_day_sum T1
where T1.v_rate_code_dec is not null
and T1.n_business_date between ${开始日期} and ${结束日期}
${if(len(酒店星级) == 0,"","and T1.v_star_dec in ('" +酒店星级+ "')")}
${if(len(酒店品牌) == 0,"","and T1.v_brand_dec in ('" +酒店品牌+ "')")}
${if(len(酒店档次) == 0,"","and T1.v_hotel_level_dec in ('" +酒店档次+ "')")}
${if(len(酒店功能) == 0,"","and T1.v_hotel_type_dec in ('" +酒店功能+ "')")}
${if(len(行政级别) == 0,"","and T1.v_if_publish_complay in ('" +行政级别+ "')")}
${if(len(酒店名称) == 0,"","and T1.v_hotel_code in ('" +酒店名称+ "')")}
group by 房价大类-- ,房价二级分类
第一层需要展示的系列名是“房价大类”,对应需要展示的值是“房租收入”。这个就正常sql语句,就注释与第一层数据无关的其他层字段就行。比如:第一层展示的数据有“饮品”,“食品”,“海鲜”等。
1.2、第二层sql数据集
select
-- T1.v_rate_code_dec 房价大类,
T1.v_rate_code_dec2 房价二级分类,
sum(T1.n_room_rate) 房租收入
from f_room_report_day_sum T1
where T1.v_rate_code_dec is not null
and T1.n_business_date between ${开始日期} and ${结束日期}
${if(len(rate_code_dec) == 0,"","and v_rate_code_dec in ('" + rate_code_dec + "')")}
${if(len(酒店星级) == 0,"","and T1.v_star_dec in ('" +酒店星级+ "')")}
${if(len(酒店品牌) == 0,"","and T1.v_brand_dec in ('" +酒店品牌+ "')")}
${if(len(酒店档次) == 0,"","and T1.v_hotel_level_dec in ('" +酒店档次+ "')")}
${if(len(酒店功能) == 0,"","and T1.v_hotel_type_dec in ('" +酒店功能+ "')")}
${if(len(行政级别) == 0,"","and T1.v_if_publish_complay in ('" +行政级别+ "')")}
${if(len(酒店名称) == 0,"","and T1.v_hotel_code in ('" +酒店名称+ "')")}
group by -- 房价大类,
房价二级分类
第二层需要展示的系列名是“房价二级分类”,对应需要展示的值是“房租收入”。这一层就注释与第二层数据无关的其他层字段,然后再加一个参数来判断钻取的是第一层数据的哪个下级。比如:第二层要展示的是“饮品”的下级,有“牛奶”,“可乐”,“矿泉水”等。
2、图表设置
2.1、图表样式
说一下这个是带我的人做的,我做的是第二种方式,至于为什么样式这里是分开的两个环形图,因为在分类名那里输入了一个等号“=”,然后就出现。
2.2、图表数据设置
数据设置这里首先是数据来源选择“单元格数据”,之后就是公式填写了,不过因为我这个是饼图,所以分类名可以跳过不填,只需要在系列名和值这两个地方填写就行。
注意:因为我没搞过柱状图的自身钻取钻回,所以这个填写方式我就按多层钻取的思路来写了,如果是柱状图的话,可能是直接把饼图系列名的公式移动到柱状图分类名的位置,然后柱状图的系列名要么自己手动填写,要么就是继续公式,只不过公式的目标需要重新用其他的数据字段,这个数据字段还要跟分类名和值的数据字段有关联。
这里系列名用的公式:=if(len($rate_code_dec) = 0,fj_ds1.select(房价大类),fj_ds2.select(房价二级分类))。
这里值用的公式:=if(len($rate_code_dec) = 0,fj_ds1.select(房租收入),fj_ds2.select(房租收入))。
2.3、图表特效设置
参数是${rate_code_dec},对应的值的公式为:=if(len($rate_code_dec) = 0,series,"")。
3、效果图
在第二层点击的环形图后会直接返回到第一层。
(二)、方法二
1、sql数据集准备
原先sql数据集
select
T1.v_hoteltype_dec 注册渠道大类,
T1.v_extend_hotel_name 注册渠道酒店,
count(1) 本日新会员数量
from d_member_info T1
where -- T1.v_extend_hotel_code Not In('YJJR01') and
date(T1.d_create_date)= '${日期}'
group by 注册渠道大类,
注册渠道酒店
修改后的sql数据集
select
if('${month}' = "",T1.v_hoteltype_dec,T1.v_extend_hotel_name) 注册渠道类型,
count(1) 本日新会员数量
from d_member_info T1
where -- T1.v_extend_hotel_code Not In('YJJR01') and
date(T1.d_create_date)= '${日期}'
${if(len(month) == 0,"","and v_hoteltype_dec in ('" + month + "')")}
group by 注册渠道类型
主要修改的思路就是把原先的“注册渠道大类”和“注册渠道酒店”整合成“注册渠道类型”,添加一个参数来判断需要使用层级,在筛选的区域加上参数的筛选确保层级的状态
2、图表设置
2.1、图表样式
2.2、图表数据设置
这种方式的就是在sql数据集里面设置好层级的展示,然后图表数据设置的数据来源选择“数据集数据”,数据集选择修改后的数据集;因为是饼图,所以分类这里不用填;系列名就直接用数据集的“注册渠道类型”字段;值用数据集的“本日新会员数量”;汇总方式选择“求和”。
2.3、图表特效设置
参数是${month},对应的值的公式为:=if(LEN($month) = 0,series,"")。
3、效果图
在第二层点击的环形图后会直接返回到第一层。
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。