开篇介绍
需求:以城市维度根据订单渠道和订单来源分析统计当月累计订单数据。渠道分A,B。订单来源分1,2,3,4。
以后业务扩张了,城市,渠道,订单来源还可能增加,所以可以把渠道和订单来源做成动态列,城市做成动态行。千万别把数据写死在表。万一再加一个订单类型统计分析,也方便维护。主要是在SSRS层新增一个列分组就行。有代码复用的味道在里面。
案例实现
数据清洗后的案例数据,红色方框的列是要分析的城市竖维,渠道横维,来源横维如图所示:
打开SSDT新建报表服务器项目,添加新报表,跟着报表导向一步步操作,如图所示。
选择数据源---》设计查询---》选择报表类型---》设计矩阵
选择数据源
设计查询
查询语句给出需要的字段。
报表类型
选择矩阵(矩阵类型的报表才可以设置动态行动态列)
设计矩阵
Period_id,CityId,AreaName对应行。
ChannelType 对应列。
其他要分析的数据字段对应详细信息。
设计矩阵窗体左下角有个启用明细复选框(图片未截出来),选中之后呈现的报表将是钻取形式的报表,此案例已勾选。
完成向导
根据自己喜好,调整报表样式。
预览效果
钻取的+号展开,展现明细如图所示:
总结
SSRS报表的设计内容,展现方式等,其实有很多内容技巧在里面。复杂的涉及到代码引用,报表逻辑跳转等等。简单的涉及指示器,警戒值等等。当然一般需求并不需要代码辅助。
此案例只是展示SSRS钻取方式的实现。数据量大的话,在SSRS做钻取是不明智的,性能肯定特别慢。钻取的实现一般是在SSAS中处理后的结果。
理解SSRS钻取实现方式,看行组,列组各个组属性的可见性上的设置。组之间父子关系,如图所示:
根组的组属性中的可见性栏在报表最初运行时,选中显示即可,如图所示:
子组matrix1_AreaName的组属性中的可见性栏有一个勾选框可以通过此报表项切换显示,选中并且下拉框选中其父组matrix1_Period_id的Period_id字段。依次类推设置,如图所示:
这样设置就可实现钻取功能。
介绍个公众号“IT海贼船”,觉得主题内容都不错,是个认真做内容的公众号。喜欢的可以关注下。
海贼船内容(绝对干货)
A.职业规划,工作,面试经验分享。
B.每周不定期更新相关案例项目详解文章。
C.视频文档资源共享。
D.励志英文听力素材,每夜轻听。
黑胡子:“ 人的梦想,永远不会结束!”