По умолчанию, когда содержимое текстового поля в SSRS переполняет ширину текстового поля, текстовое поле будет расти вертикально, чтобы разместить его содержимое. Эта функция может быть отключена, установив для свойства «CanGrow» текстовое поле «False».Обрезать содержимое текстового поля эллипсисом в SSRS
Однако это резко отсекает контент, что не является идеальным.
Я ищу способ четко показать пользователю, что текст слишком широк, чтобы соответствовать текстовому полю. В прошлом, я использую простое выражение, чтобы добавить многоточие «...», когда длина строки текста была выше некоторого фиксированного числа:
=Iif(Len(Fields!CustomerName.Value) > 25,
Left(Fields!CustomerName.Value,23) + "...",
Fields!CustomerName.Value)
Но это не очень хорошо работает, когда клиент имена содержат смесь заглавных букв, строчных букв, знаков препинания и других вещей, которые делают отдельные ширины пикселей символов сильно варьирующимися.
В идеале, некоторое свойство для элемента управления текстовыми полями позволит разработчику отчета добавлять эллипсис всякий раз, когда текст не помещается в текстовое поле.
Есть ли у кого-нибудь предложения относительно более элегантного подхода к этому?
Хорошая работа, но этот алгоритм не учитывает эллипсы при измерении обрезанного текста. Теоретически можно обрезать текст до чего-то под максимальной шириной, но когда добавляются эллипсы, он возвращается. Я думаю, вам нужно 'w = TextWidth (Left (str, l) + suffix)' внутри вашего цикла 'For'. –
Вы абсолютно правы, спасибо. Я отредактировал код соответственно. – Dan
Вау, это волшебство, в котором я использую Stack Overflow for. – Nathan