Отчет SSRS показывает пробел в текстовых полях для значений NULL, но вместо этого я хочу пустую строку

У меня есть сетка с большим количеством строк и столбцов для отображения данных для отчета.

Каждая ячейка в сетке представлена ​​​​текстовым полем, и я пытаюсь показать пустую или пустую строку в своих текстовых полях, чтобы представлять значения NULL вместо пробела по умолчанию. Причина в том, что каждое значение текстового поля было подчеркнуто, чтобы показать пользователю, что это ссылка, по которой он может щелкнуть. Пробел в ячейке теперь представляет собой символ подчеркивания, и замена пробела пробелом или пустой строкой должна решить проблему.

Ответы на stackoverflow предлагают установить для видимости текстового поля значение false, но я не хочу этого делать, потому что это скроет ячейку в сетке, и я хочу показать ячейки (пустая ячейка с границами).

Вот код, который я использую, чтобы попытаться заменить Nothing пустой строкой, но он не работает:

=IIf(IsNothing(Fields!HattyAppsLateOver60.Value),"",Fields!HattyAppsLateOver60.Value)

Я пробовал использовать метод Trim(), но он тоже не работает.

Есть ли способ глобально отображать пробелы как пустую строку или есть ли метод, который я мог бы использовать в своем выражении для решения моей проблемы?


person DDA    schedule 05.02.2014    source источник


Ответы (2)


Я бы использовал что-то вроде следующего выражения для управления свойством TextDecoration:

=IIf(Поля!HattyAppsLateOver60.Value ‹> "", "Подчеркнутый", "По умолчанию")

person Mike Honey    schedule 06.02.2014
comment
Спасибо, Майк! Я тоже думал об этом, но надеялся, что вместо этого будет способ удалить пробел. Я хотел упомянуть в качестве примечания более общий способ доступа к значению текстового поля. Мне пришлось обновить более 100 текстовых полей, каждое из которых использовало другое поле, и использование следующего выражения позволило мне выполнить быстрый поиск и замену. =IIf(Me.Value ‹› ,Underline,Default) Это выражение также будет полезно в случае, если выражение для Value будет изменено в будущем. - person DDA; 06.02.2014
comment
На самом деле Me.Value может быть ненадежным. Похоже, это не работает в SSRS2012, и это также было проблемой в прошлом, как указано в этом сообщении здесь: social.msdn.microsoft.com/Forums/sqlserver/en-US/ (предполагается для работы в SSRS2005 и SSRS2008R2) - person DDA; 07.02.2014
comment
Еще раз спасибо за вашу помощь. В итоге я не использовал Me.Value, потому что SSRS2012, похоже, его не понимает. Это может быть какая-то новая ошибка, введенная Microsoft, как это произошло между версиями SSRS 2005 и 2008 годов. - person DDA; 07.02.2014

Можете ли вы просто изменить свой запрос, чтобы он имел что-то вроде:

выберите поле1, поле2, объединение (поле3, ''), поле4 из таблицы myTable, где условие = истина

Функция объединения принимает несколько параметров и возвращает первое ненулевое значение. Таким образом, вы можете сделать что-то вроде Coalesce(field1, field2, field3, '') с завершением пустой строкой, чтобы убедиться, что вы гарантируете, что хотя бы один из параметров имеет значение, отличное от NULL.

person brian pleshek    schedule 27.03.2015
comment
Я также делаю это в SQL, чтобы удалить пробелы, поскольку функция обрезки не работает с ним: REPLACE(cd.[Description], NCHAR(0x00A0), '') - person brian pleshek; 27.03.2015