Объяснение вложенных SSRS IIF/CStr

Может ли кто-нибудь сообщить мне, означает ли приведенный ниже оператор IIF вывод любого значения, начинающегося с 4, пожалуйста?

=IIF(LEFT(CStr(Fields!CLOCK_NUMBER.Value),1)="4",Fields!JOB_NO.Value, "")


person H Hastings-Stroud    schedule 13.03.2019    source источник
comment
Привет! Добро пожаловать в StackOverflow! Прочтите Как задать хороший вопрос? и О каких темах я могу здесь спросить? в Справочном центре.   -  person Vlad    schedule 13.03.2019
comment
Тьфу - я единственный, кто устал от всех этих ^^^^ хромых комментариев MCVE и близких избирателей?   -  person Hannover Fist    schedule 13.03.2019


Ответы (2)


Краткий ответ: да.

Начиная с середины и работая наружу, это выражение делает следующее.

  1. Получить значение поля CLOCK_NUMBER
  2. Преобразуйте это в строку (функция CSTR)
  3. Возьмите 1-й символ (функция LEFT с 1 в качестве параметра секунд)
  4. Если равно "4", вернуть значение, которое находится в JOB_NO
  5. В противном случае вернуть пустую строку

Если по какой-то причине это не работает, попробуйте перед возвратом преобразовать job_no в строку, чтобы убедиться, что вы всегда возвращаете строку (в случае, если JOB_NO является числовым). Вы можете просто обернуть job_no в CSTR следующим образом CSTR(Fields!JOB_NO.Value)

person Alan Schofield    schedule 13.03.2019

Переводится в..."попытаться" преобразовать собственное значение поля CLOCK_NUMBERS's в строку и взять ЛЕВУЮ (1) старшую значащую цифру (цифры), и если это значение равно "4", то вернуть значение JOB_NO полей. иначе вернуть пустую строку.

Итак, если первая цифра 4, то вернуть JOB_NO.

person Ross Bush    schedule 13.03.2019