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

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

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

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

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

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

0
Michael Tot Korsgaard 8 Окт 2019 в 18:43

1 ответ

Лучший ответ

Я думаю, вы неправильно понимаете цель 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, связанное только со строкой «первой помощью», и оставить пустой в текстовом поле иначе.

2
Steve-o169 8 Окт 2019 в 19:56