我正在报表构建器中为表达式苦苦挣扎。我的数据集可以包含多个值。因此,我使用LookupSet并加入了结果。到目前为止有效。
=Join(LookupSet(Fields!SignalId.Value, Fields!SignalId.Value, Fields!r_configuration.Value, "RData"), ",")
结果
|Column 1 | Column 2|
----------|----------
| 1,2 | |
| 1 | |
现在我想分割结果。例如,如果有多个值,则第一个条目应在column1中,第二个条目应在column2
|Column 1 | Column 2|
----------|----------
| 1 | 2 |
| 1 | |
我尝试过
=LookupSet(Fields!SignalId.Value, Fields!SignalId.Value, Fields!r_configuration.Value, "RData")(0)
但是仅当lookupset包含多个值时,这才有效。如果只有一个值,我会收到#Error。它尝试放置一个IIF(),isNothing(),但仍然收到#Error。任何想法如何实现这一目标?
以下内容无法正常工作
=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"),","))
欢呼亚历克斯
看起来没有任何内容可与内置表达式一起使用。我添加了自定义代码。这始终有效:-)
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是数组位置