Asp.net 使用SQL server reporting service在单个报表中使用两个数据集

Asp.net 使用SQL server reporting service在单个报表中使用两个数据集,asp.net,sql-server,dataset,ssrs-2008,reportingservices-2005,Asp.net,Sql Server,Dataset,Ssrs 2008,Reportingservices 2005,我需要显示具有不同条件的同一组数据的报告 我需要显示按地区、国家和用户类型分组注册的用户数,我使用了向下钻取功能来显示这一点,并且工作正常。此外,报告的数据是两个日期之间注册的用户数。除此之外,我还必须在一个单独的列中显示系统中的总用户数(两个日期之间的用户数),使用相同的向下搜索,即按地区、国家和用户类型划分的总用户数 所以我的结果将和最初一样愚蠢 Region - Country - New Reg - Total Reg - User Type 1 - UserType2 +

我需要显示具有不同条件的同一组数据的报告

  • 我需要显示按地区、国家和用户类型分组注册的用户数,我使用了向下钻取功能来显示这一点,并且工作正常。此外,报告的数据是两个日期之间注册的用户数。除此之外,我还必须在一个单独的列中显示系统中的总用户数(两个日期之间的用户数),使用相同的向下搜索,即按地区、国家和用户类型划分的总用户数
  • 所以我的结果将和最初一样愚蠢

       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
    
    一旦该地区扩大,情况将是这样

       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
    

    有没有一种方法可以这样显示我的报告,我试过使用两个数据集,一个是有条件的数据集,另一个是无条件的数据集,但它不起作用,它总是为所有总reg列显示Regiosted用户总数

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

    首先,将查询设置为生成一个数据集,如下所示:

    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”的新表。然后右键单击表格行,进入“添加组>行组>父组”。在分组依据中选择“国家”,然后单击确定。然后,重复此过程并选择“区域”。不过,这次请勾选“添加组标题”框。这将在原始行上方插入另一行

    现在,对于每个字段(“NewReg”、“TotalReg”等),单击上面的新行并再次选择该字段。这将自动向单元格中添加一个总和(字段名)值。这将把所有单独的行总计相加,并在运行报告时显示一个按区域分组的新行

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

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


    现在只需进行格式化等操作并进行整理。

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

    首先,将查询设置为生成一个数据集,如下所示:

    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”的新表。然后右键单击表格行,进入“添加组>行组>父组”。在分组依据中选择“国家”,然后单击确定。然后,重复此过程并选择“区域”。不过,这次请勾选“添加组标题”框。这将在原始行上方插入另一行

    现在,对于每个字段(“NewReg”、“TotalReg”等),单击上面的新行并再次选择该字段。这将自动向单元格中添加一个总和(字段名)值。这将把所有单独的行总计相加,并在运行报告时显示一个按区域分组的新行

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

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


    现在剩下的就是格式化和整理了。

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

    =Sum(IIF(Fields!RegisteredOn.Value  >Parameters!FromDate.Value and  Fields!RegisteredOn.Value  < Parameters!EndDate.Value , 1,0))
    
    =Sum(IIF(字段!RegisteredOn.Value>参数!FromDate.Value和字段!RegisteredOn.Value
    我已经解决了这个问题,从DB中获取所有记录,并使用下面的表达式过滤记录以收集新的注册表计数

    =Sum(IIF(Fields!RegisteredOn.Value  >Parameters!FromDate.Value and  Fields!RegisteredOn.Value  < Parameters!EndDate.Value , 1,0))
    
    =Sum(IIF(字段!RegisteredOn.Value>参数!FromDate.Value和字段!RegisteredOn.Value
    在这种情况下,我无法使用两个数据集,因此我从DB中获取所有记录并检查表达式语句的条件在这种情况下,我无法使用两个数据集,因此我从DB中获取所有记录并检查表达式语句的条件