代码之家  ›  专栏  ›  技术社区  ›  Elizabeth

SSRS汇总多个数据集和子报告中的值

  •  0
  • Elizabeth  · 技术社区  · 7 年前

    我需要创建第三个总计表或矩阵,从每个数据集和子报表返回一个字段。

    看起来是这样的(开始)

    enter image description here

    首先,我构建了一个表,并添加了一列,用以下值来测试这一点。(这在总计行中)每个元素单独在各自的行中。

    =ReportItems!tps_actual4.Value + ReportItems!Textbox1230.Value
    

    tps_实际值4来自一个数据集。 Textbox1230来自不同的数据集。

    出现的第一个错误是:

    "The value for the DataSetName property is missing"
    

    如果我把代码改成这样

    =First(ReportItems!tps_actual4.Value, "Master_Data_Set") + First(ReportItems!Textbox1230.Value, "Secondary_Data")
    

    我得到另一个错误,如下所示:

    The value expression for the textrun ''.. uses an aggregate function on a report item. Aggregate functions can be used only on report items contained in page headers and footers. 
    

    我们在这里没有引用任何一个数据集。我不知道如何解决这个问题。

    第二个问题是关于 Textbox1230 当有六行数据时,返回6次。我如何在逻辑中指定要添加的case语句 文本框1230

    非常感谢。

    Grand Total         column1 column2  
    Dataset1 Values        a      x  
    Dataset2 Values        b      y       … and so on
    Subreport Values       c      x  
    Grand Total Sums    a+b+c   x+y+z    
    

    上面是一个excel示例,希望它有助于理解——列将继续显示来自一个数据集的第一行数据。第二个值来自另一个etc,总计将这些值相加,得到总计。

    1 回复  |  直到 7 年前
        1
  •  2
  •   Strawberryshrub    7 年前

    你唯一能做的就是从不同的表格中获取所有的总数,并将这些值汇总到一个单独的表格中。但是您不能从子报表中获取值,这只适用于实际报表中的数据集。如果您还想对子报表值求和,我建议使用@junketsus解决方案。

    'Tablix 1 total
    =Sum(Fields!TestValue.Value, "Dataset1")  'This expression is in Textbox1
    
    'Tablix 2 total
    =Sum(Fields!TestValue2.Value, "Dataset2")  'This expression is in Textbox2
    

    现在添加第三个tablix。在第一个文本框中写入以下表达式:

    =ReportItems!Textbox1.Value  
    

    在第二个文本框中:

    =ReportItems!Textbox2.Value 
    

    =ReportItems!Textbox1.Value + ReportItems!Textbox2.Value
    

    第三个tablix的结果如下所示:

    Dataset1 Total Value     11111
    Dataset2 Total Value     22222
    Overall Total            33333
    
    推荐文章