SSRS如何在表达式中使用多个条件——基于行值和字段名

SSRS how to use multiple criteria in expression - based on a row value and a field name

请看下图,我的数据集有两个进程,'logs processed'和'stacked at kilns'。

我需要取总 'stacked at kilns' 除以每个长度的总 'logs processed'。

例如,对于字段名称 5.4(数据集字段长度),我想将 2784/2283 分成 return 恢复的百分比。

我目前的表情是

=Sum(IIf(
(Fields!process.Value = "Logs Processed") AND (Fields!Length.Value=Fields!Length.Value)
    , Fields!cubes.Value
    , Nothing)
  , "Wetmill_to_Kiln")

但是这个 return 是进程为 'Logs Processed' 的所有长度的值,而不仅仅是长度 5.4,如示例所示。

所以每个长度字段都是动态创建的(3.3,3.6,3.9 .... 6,6.3,6.6) 我想获得每个长度字段的 'stacked at kiln'/'logs processed' 的总数。

一如既往地感谢任何帮助

底部图像中我想要的输出示例。

当前输出:

期望的输出:


*****根据 TPHE 更新*********

我在列组中创建了一个文本框。此 return 是该组的值,但我如何引用该文本框的值。

如果我使用 ReportItems!tbxSource.Value 之类的东西,当文本框是跨列组动态创建时,我如何引用它的值?那么该文本框名称有多个实例吗?

参照图片如何从绿色<>的文本框中获取白色<>的值

谢谢,

由于您使用的是列组,因此您可以将表达式放入组内的文本框中,它只会对每列中捕获的数据执行。因此,如果您的 Logs processed 行的代码类似于 Sum(Logs),您的 Stacked at Kiln 行的代码类似于 Sum(Stacked),那么您的恢复行的表达式代码将为 Sum(Stacked)/Sum(Logs)。关键是要保证在列组内。

所以我要做的是在列组上创建两个变量。一种叫做 kilntotal,一种叫做 logtotal。变量值等于此表达式的结果:

=sum(iif(Fields!process.Value="logs",cdbl(Fields!cubes.Value),cdbl(`0)))`

=sum(iif(Fields!process.Value="kiln",cdbl(Fields!cubes.Value),cdbl(0)))

然后我在恢复 % 行的逻辑中使用这些变量:

=Variables!kilntotal.Value/Variables!logtotal.Value

感谢您的投入和时间。