【发布时间】:2014-11-12 23:59:54
【问题描述】:
我有一份 SSRS 2012 报告,其中包含我正在努力解决的问题。
我的报告通过存储过程运行。存储过程中的每一行都返回一个 Funding 记录。每个资助记录都附加到任务记录。每个任务可以有一个或多个资金记录。每个资助记录可能有也可能没有与之关联的资助公司。 这意味着我的数据看起来像这样。
TaskID | FundingID | RCPFundingCompany
100 1000 Intel
100 1001 IBM
100 1002 TI
101 1003 Intel
101 1004 <null>
101 1005 <null>
102 1006 <null>
RDL 显示按 TaskID 分组的详细信息行,有效地为每个 TaskID 显示一行。所有这些工作正常。我想要完成的是让 FundingCompany 在报告的一个单元格中显示为逗号分隔的列表,如下所示:
Task ID RCPFundingCompany
Row1 Task 100 Intel, IBM, TI
Row2 Task 101 Intel
Row3 Task 102
我的第一个想法是使用 LookupSet 函数将这些值连接到每行的单个单元格中。 所以,我使用这个表达式:
=LookupSet(Fields!TaskID.Value, Fields!TaskID.Value, Fields!RCPCompanies.Value, "TaskReviewSummary")
当我预览我的报告时,我收到了这个错误:
Warning 1 [rsInvalidExpressionDataType] The Value expression used in textrun ‘Textbox10.Paragraphs[0].TextRuns[0]’ returned a data type that is not valid.
我做错了什么? 啊哈,我忘记加入了!
=(Join(LookupSet(Fields!TaskID.Value, Fields!TaskID.Value, Fields!RCPCompanies.Value, "TaskReviewSummary"), ", "))
不幸的是,这会导致以下结果:
Task ID RCPFundingCompany
Row1 Task 100 Intel, IBM, TI
Row2 Task 101 Intel,
Row3 Task 102 , , ,
因为 LookupSet 正在创建一个数组(如果我理解正确的话),它会收集 NULL,然后连接将它们全部连接起来。嘘。
怎么办?
【问题讨论】: