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 на количество символов вам нужно.

Другие вопросы по тегам