Отсутствует набор данных поиска SSRS - PullRequest
0 голосов
/ 08 октября 2019

У меня есть набор данных, который выглядит следующим образом

Name              Spend
"First Aid"       2
"Healing Arts"    0
"Surgeon"         NULL

Затем у меня есть три отдельных текстовых поля, которые будут заполнены значением столбца, который соответствует имени.

Пример: showзначение spend в текстовом поле, если значение name равно First Aid, для этого я сделал следующее выражение

=Lookup(Fields!skill_name.Value, "First Aid", Fields!skill_spend.Value, "Skills")

Однако моя проблема заключается в том, что я получаю сообщение о том, что skill_name отсутствуетэто dataset, что не имеет смысла для меня, как сообщается в конце выражения (skills)

1 Ответ

2 голосов
/ 08 октября 2019

Я думаю, что вы, возможно, неправильно понимаете цель Lookup и как она используется. Назначение функции Lookup в некоторых отношениях схоже с JOIN в SQL. По сути, у вас будет два набора данных, каждый из которых имеет совпадающее поле с другим. В этом случае выражение будет совпадать в поле skill_name и искать значение skill_spend, а выражение будет выглядеть примерно так:

=Lookup(Fields!skill_name.Value, Fields!skill_name.Value, Fields!skill_spend.Value, "Skills")

Как показано в документации первая ссылка на skill_name - это поле, на которое вы ссылаетесь из текущего набора данных. Вторая ссылка относится к набору данных, из которого вы пытаетесь найти значение. Третье выражение - это поле, которое вы ищете, и набор данных должен быть тем, из которого вы пытаетесь найти значение, а не текущая область набора данных.

Lookup(source_expression, destination_expression, result_expression, dataset)

ИзНасколько я могу судить, у вас есть один набор данных, но отдельные текстовые поля, которые требуют правильного значения расходов. Я думаю, что следующее выражение будет работать.

= IIF(Fields!skill_name.Value = "First Aid", Fields!skill_spend.Value, Nothing)

Это выражение должно получить значение skill_spend, связанное только со строкой «Первая помощь», и оставить текстовое поле пустым в противном случае.

...