【问题标题】:Using two datasets in a single report using SQL server reporting service使用 SQL Server 报告服务在单个报告中使用两个数据集
【发布时间】:2011-11-11 07:46:21
【问题描述】:

我需要展示不同条件下同一组数据的报告。

  1. 我需要显示按地区、国家和用户类型分组注册的用户数,我使用了向下钻取功能来显示这一点,并且工作正常。此外,报告的数据是两个日期之间注册的用户数。除此之外,我必须使用相同的向下钻取显示系统中的总用户数,即在单独的列中按地区、国家和用户类型的总用户数以及每个计数(两个日期之间的用户数)

这样我的结果就会像下面那样

   Region  - Country - New Reg - Total Reg - User Type 1 - UserType2

 + Region1              2          10         1    5        1    5

 + Region2              3           7         2    4        1    3

随着区域的扩大,它会像

  Region  - Country - New Reg - Total Reg - User Type 1 - UserType2

 + Region1              2          10         1    5        1    5
            country1    1           2         1    2        -    -

            country2    1           8         1    8        -    -


 + Region2              3           7         2    4        1    3

有没有一种方法可以像这样显示我的报告,我尝试了两个数据集,一个有条件数据,另一个有非条件数据,但它不起作用,它总是将注册用户总数占总数注册列

【问题讨论】:

  • 在这种情况下,我无法使用两个数据集,所以我从数据库中取出所有记录并在表达式语句上检查条件

标签: asp.net sql-server dataset ssrs-2008 reportingservices-2005


【解决方案1】:

我已经解决了这个问题,方法是从数据库中获取所有记录并使用以下表达式过滤记录以收集新的注册计数

=Sum(IIF(Fields!RegisteredOn.Value  >Parameters!FromDate.Value and  Fields!RegisteredOn.Value  < Parameters!EndDate.Value , 1,0))

【讨论】:

    【解决方案2】:

    除非我弄错了,否则您是在尝试创建具有不同分组级别的可扩展表吗?幸运的是,如果您知道在哪里查找,这可以在 SSRS 中轻松完成。您示例中的总数似乎与用户列中的不匹配,所以我可能误解了这个问题。

    对于初学者,请设置您的查询以生成如下所示的单个数据集:

    Region  Country      New Reg - Total Reg -  User Type 1 - User Type 2
    Region1 country1    1              2            1   
    Region1 country2    1              8            1   
    Region2 country3    2              4            1              1
    Region2 country4    1              3            1   
    

    现在您已经知道了,您想设置一个包含字段“NewReg”、“TotalReg”、“UserType1”和“UserType2”的新表。然后右键单击表格行,然后转到“添加组 > 行组 > 父组”。在 Group by 中选择“Country”,然后单击“确定”。然后,重复此过程并选择“区域”。但是,这一次,勾选“添加组标题”框。这将在原来的上方插入另一行。

    现在,对于您的每个字段(“NewReg”、“TotalReg”等),单击上方的新行并再次选择该字段。这将自动将 Sum(FieldName) 值添加到单元格中。这会将所有单独的行总计加在一起,并在您运行报告时显示一个按地区分组的新行。

    这应该会为您提供正确聚合数据所需的表格,因此您需要做的就是按需管理显示/隐藏详细信息行。

    为此,请选择您的详细信息行(原始行)并右键单击“行可见性”。将此设置为“隐藏”。现在,选择包含“区域”的单元格,并使用属性记下其 ID(现在,假设它称为“区域”)。单击返回到您的详细信息行并查看属性窗口。在底部,您会看到“可见性”设置。在那里,将“InitialToggleState”设置为 False,将“ToggleItem”设置为您的区域组单元格的名称(即“Region”)。

    现在剩下的就是进行格式化等整理。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-03
      相关资源
      最近更新 更多