У меня есть отчет SSRS 2012 с выражением, с которым я борюсь.Ошибка выражения при использовании LookupSet?
В моем отчете выполняется хранимая процедура. Каждая строка хранимой процедуры возвращает отчет о финансировании. Каждая запись о финансировании привязана к записи задачи. Каждая Задача может иметь одну или несколько записей Финансирования. Каждая запись Финансирования может иметь или не иметь связанную с ней Финансирующую компанию. Это означает, что мои данные выглядят так.
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.
Что я делаю неправильно? A-ha, я забыл Присоединиться!
=(Join(LookupSet(Fields!TaskID.Value, Fields!TaskID.Value, Fields!RCPCompanies.Value, "TaskReviewSummary"), ", "))
Unfortuntely, это приводит к следующим результатам:
Task ID RCPFundingCompany
Row1 Task 100 Intel, IBM, TI
Row2 Task 101 Intel,
Row3 Task 102 , , ,
Поскольку LookupSet создает массив (если я правильно понимаю), она собирает NULLs, а затем присоединиться к Объединяет их всех. Бу.
Что делать?