我的MSSQL查询用下面的authcodes显示了雇员层次结构的数据
ManagerName EmployeeName AuthCode
Tim Peter csr2
Tim Peter sup
Tim Peter itil
Tim Colt csr2
Tim Colt sup
SSRS报告显示下面列出的结果,当我选择report parameter= Tim时,结果只显示顶部一行,而不显示后续AuthCodes,而查询显示所有
EmployeeName AuthCode
Peter csr2
Colt csr2
我希望数据显示如下(它应该连接员工的创作代码):
EmployeeName AuthCode
Peter csr2, sup, itil
Colt csr2, sup
有谁能建议我在SSRS中需要做些什么,以便数据显示所有带有逗号分隔值的作者代码?
发布于 2016-04-13 20:54:13
这应该是可行的:
=JOIN(LOOKUPSET(Fields!EmployeeName.Value, Fields!EmployeeName.Value, Fields!AuthCode.Value, "DataSet1"), ", ")
LookupSet基于EmployeeName获取所有的AuthCodes。
联接使用逗号分隔符将数组转换为字符串。
发布于 2019-11-22 06:43:49
汉诺威拳的一些补充:
如果需要区分连接+查找结果,则可以
转到报表的属性-> Code
制表符
在报表属性中添加一些VB代码
Public Shared Function RemoveDuplicates(m_Array As Object()) As String()
System.Array.Sort(m_Array)
Dim k As Integer = 0
For i As Integer = 0 To m_Array.Length - 1
If i > 0 AndAlso m_Array(i).Equals(m_Array(i - 1)) Then
Continue For
End If
m_Array(k) = m_Array(i)
k += 1
Next
Dim unique As [String]() = New [String](k - 1) {}
System.Array.Copy(m_Array, 0, unique, 0, k)
Return unique
End Function
并编辑单元格表达式:
=JOIN( Code.RemoveDuplicates( LOOKUPSET(Fields!EmployeeName.Value, Fields!EmployeeName.Value, Fields!AuthCode.Value, "DataSet1")), ", ")
https://stackoverflow.com/questions/36606236
复制相似问题