Crystal Reports вырезать из строки
Я новичок в Crystal Reports и ищу способ обрезать строку, если строка слишком длинная, и заменить конец на ...
Поэтому я использую Crystal Reports для создания файлов Word или PDF. Проблема в том, что у меня есть текстовое поле, которое слишком мало для длинных строк.
Я хочу проверить, не слишком ли длинна строка для поля. Если это так, обрежьте строку в конце ,
и заменить конец на ...
,
Как и где я могу это сделать? Как будет выглядеть код?
Я использую Crystal Reports 2011.
1 ответ
Одним из способов является использование Len
-, Left
-, Instr
- а также Instrrev
-функции.
Следующая формула должна дать вам ожидаемый результат. (Работает только с моноширинным шрифтом.)
NumberVar MaxLen := 200;
If Len({MyTable.MyColumn}) > MaxLen Then
//Length is > MaxLen
If Instr(Left({MyTable.MyColumn}, MaxLen),",")>0 Then
//comma (,) found in first 200 chars -> cut at last comma
Left({MyTable.MyColumn}, Instrrev(Left({MyTable.MyColumn}, MaxLen), ",")-1) & "..."
Else
//NO comma (,) found in first 200 chars -> cut after char 197
Left({MyTable.MyColumn}, MaxLen-3) & "..."
Else
//Length is <= 200 -> use the whole text
{MyTable.MyColumn}
В этом примере максимальная длина составляет 200 символов.
Просто настройте переменную MaxLen
на количество символов вам нужно.