在报表生成器中,将lookupset中的多个值拆分为多个列

vdzxcuhz  于 2021-08-09  发布在  Java
关注(0)|答案(1)|浏览(314)

我正在为报表生成器中的一个表达式而苦恼。我的数据集可以包含多个值。所以我用了lookupress和结果。到目前为止这是可行的。

=Join(LookupSet(Fields!SignalId.Value, Fields!SignalId.Value, Fields!r_configuration.Value, "RData"), ",")

结果

|Column 1 | Column 2|
----------|----------
|   1,2   |         |
|   1     |         |

现在我想把结果分成两半。例如,如果有多个值,则第一个条目应位于第1列,第二个条目应位于第2列

|Column 1 | Column 2|
----------|----------
|   1     |    2    |
|   1     |         |

我试过了

=LookupSet(Fields!SignalId.Value, Fields!SignalId.Value, Fields!r_configuration.Value, "RData")(0)

但这只在lookupset包含多个值时有效。如果只有一个值,我收到#错误。它试图放入一个iif(),isnothing(),但仍然得到了#错误。你知道怎么做到吗?
下面的方法不适用于neighter

=IIF(LookupSet(Fields!SignalId.Value, Fields!SignalId.Value, Fields!r_configuration.Value, "RDataset").Length > 1,LookupSet(Fields!SignalId.Value, Fields!SignalId.Value, Fields!r_configuration.Value, "RDataset")(0),Join(LookupSet(Fields!SignalId.Value, Fields!SignalId.Value, Fields!r_configuration.Value, "RDataset"),","))

干杯,亚历克斯

9wbgstp7

9wbgstp71#

看起来内置表达式不起作用。我添加了自定义代码。这总是有效的:-)

Public Function GetRitop(ByVal items as Object(), ByVal pos as Integer) As Object

if items Is Nothing Then
return ""
Else if items.Length = 1 And pos = 1 Then
return items(0)
Else if items.Length = 1 And pos = 2 Then
return ""
Else if items.Length = 2 And pos = 1 Then
return items(0)
else if items.Length = 2 And pos = 2
return items(1)
End if

End Function

细胞中的表达是

=Code.GetRitop(LookupSet(Fields!SignalId.Value, Fields!SignalId.Value, Fields!r_configuration.Value, "RDataset"),1)

其中1是数组位置

相关问题