zoukankan      html  css  js  c++  java
  • ssrs 父组/子组 各自排序

    应客户需求,做报表,大约是要实现如图所示的功能。图片是三组(合计,手机,电脑)各自排名。在此功能的开发中,走了不少弯路,现在记下来,以备后需。

    如果只是单列排名(比如只要合计的排名),那么用父组和子组(reportservice构造出如下的矩阵结构,每个分组设置好排序依据【表达式】【虽然能设置多个排序表达式,但其余相当辅助排序,对重新编号没啥影响】在要排序的那列按以下黄色内容部分进行设置)。即可完成组内排序,各个父组按自己所在层级进行排序编号。此功能类似于sqlserver    rank() over(partition by parentCode  order by p2ton DESC) rowid。

    不过要完成多列各自组内、组间排名上面的方法还是不能满足,这里用到了迭代,如何

    设置见使用分组 Group 属性实现基于父子递归关系的汇总报表  。

    构造出如下的数据源:

    报表数据源脚本如下:

    接下来在报表里设置好每列内容即可,预览结果如下。

    自己有查过的相关技术点儿大约有以下内容,帮助不小:

    1.提供灵感,入口的地方(高大上的Microsoft Reporting Service 2012 报表课程案例展示),网址如下:

    http://www.360doc.com/content/17/0625/10/44728445_666358782.shtml

    2.  SSRS-使用分组 Group 属性实现基于父子递归关系的汇总报表  

    http://www.chawenti.com/articles/21319.html

    3.SSRS-在数据表中增加排序(此方法主要是通过reportservice自带函数RunningValue)

    如下:

        1>. 在表或矩阵中增加一列,并命名列头为“排名”

        2>.右键单元格-》打开“表达式”-》输入如下

          =RunningValue(  

           Fields!楼层.Value, //要排名的字段  

             count,//排名类型,直接计数  

            "场内场外"     //在哪个分组内对要排名的字段进行排名  

             )  

         3>.比如“年-月-日”的销售数据,如果是

     

                  =RunningValue(  

                  Fields!日.Value, //要排名的字段  

                 count,//排名类型,直接计数

                "月" //在哪个分组内对要排名的字段进行排名  

               )  

    则是对每个月内的日销售进行排名

    如果是 

     
    1. =RunningValue(  
    2.          Fields!日.Value, //要排名的字段  
    3.          count,//排名类型,直接计数  
    4.          "年" //在哪个分组内对要排名的字段进行排名  
    5. )  

    则是对每个年内的日销售进行排名

         注意:RunningValue只输出排序号,对度量值的排序需在表格或者矩阵中定义

     4>.ssrs 自定义函数 重新编号

    http://www.cnblogs.com/xqhppt/p/3376460.html

  • 相关阅读:
    记人生第一面之ThoughtWorks面试经历
    2016阿里笔试
    思特沃克学院学习方法总结
    敏捷软件开发
    express
    如何将项目部署到heroku并使用malb数据库
    渐进增强与平稳退化
    what is react?
    什么是Node.js
    面试1(转)
  • 原文地址:https://www.cnblogs.com/fanshaomin/p/7087041.html
Copyright © 2011-2022 走看看