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
感谢您的投入和时间。
请看下图,我的数据集有两个进程,'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
感谢您的投入和时间。