如何根据RDLC报告中同一tablix中第二组的条件获取单元格值

How to get a value of cell based on condition from 2nd group in same tablix in RDLC report

提问人:Hassnain 提问时间:5/31/2022 最后编辑:Hassnain 更新时间:5/31/2022 访问量:348

问:

我正在处理RDLC报告,我有一个非常具体的客户要求在报告末尾打印摘要。 请参考下图清楚理解:

Report Summary

报告摘要基于两个组生成:资源(否)和任务工资类型。 第 1 个 tablix 组 = 否。 第 2 个 tablix 组 = 任务工资类型。

我需要为每个资源生成一个平均值,其中:平均值 = 总成本/数量(其中任务工资类型 = 每小时任务工资

因此,我正在努力提取任务工资类型 = 每小时任务工资的数量值,并将其显示在每个组的总列中。

我怎样才能做到这一点?

目前我已经编写了这个表达式来实现结果,但它抛出了一个错误,如上图所示

=Sum(CDec(Fields!Total_Cost.Value), "Resource_No1")/Sum(IIF(UCase(Fields!WT_TaskWageType.Value)="HOURLY TASK WAGE", CDec(Fields!Quantity.Value), 1), "Resource_No1")

最后,我的 RDLC tablix 图像如下所示,其中我有两组

Summay Tablix

如何解决此错误?

报告服务 SSRS-2012 RDLC SSRS-Tablix 动态 RDLC 生成

评论


答:

1赞 Alan Schofield 5/31/2022 #1

我看不出你的表达式有太多问题,所以我会尝试简化事情并构建表达式的每个部分,直到你得到一个错误。

不过有两点......

  1. 您不需要指定范围,因为文本框似乎已在正确的范围内(它位于Resource_No1组的行中)。"Resource_No1"
  2. 此外,当任务工资类型与您的标准不匹配时,您似乎正在添加到您的总金额中。我猜你应该使用或在那里代替。10nothing

你可以先尝试一下,如果这不起作用,请慢慢建立表达式的每个部分。

=Sum(Fields!Total_Cost.Value)
 /
Sum(IIF(UCase(Fields!WT_TaskWageType.Value)="HOURLY TASK WAGE",
    Fields!Quantity.Value,
    Nothing)
   )

如果仍然出现错误,请尝试仅返回表达式的第二部分,看看得到什么。

我只是在类似的设置上尝试过这个,它按预期工作。

评论

0赞 Hassnain 5/31/2022
在理想情况下可以完美工作,但当分母中的总和为 0 时就会中断。如何处理?我尝试了多种方法,但在每种情况下,它都会抛出一个 #Error。
0赞 Alan Schofield 6/1/2022
您可以通过检查表达式的两个部分的分母为 0 直接在表达式中处理此问题,但阅读起来很混乱。一种更简单的方法是向报表添加一个简单的函数。有很多关于如何做到这一点的例子(5分钟的工作),这里有一个你可以看看。看看 24 票的答案,而不是被接受的答案......stackoverflow.com/questions/10432714/......
0赞 Hassnain 6/1/2022
完美,我已经能够计算出我想要的结果。