• 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

  • 相关阅读:
    bzoj 1026
    mysql索引面试题
    Mybatis基础,动态sql (mybatis中的重点)
    Mybatis基础,利用mybatis实现复杂查询,多对一,一对多
    Mybatis基础:注解开发,面向接口(引出三个面向的区别)
    Mybatis基础,limit分页,和RowsBounds分页,分页插件
    Mybatis基础,日志工厂
    Mybatis基础一,生命周期,和作用域,resultMap(结果集映射)
    Mybatis配置解析三,typeAliases(别名),setting(设置)
    浅谈JPA
  • 原文地址:https://www.cnblogs.com/fanshaomin/p/7087041.html
Copyright © 2020-2023  润新知