Crystal Reports剪切字符串

时间:2018-01-24 14:32:18

标签: string crystal-reports crystal-reports-2011

我是Crystal Reports的新手,我正在寻找一种方法来切断字符串,如果字符串太长并用...替换结尾

所以我使用Crystal Reports生成Word或PDF文件。现在的问题是我的文本字段对于长字符串来说太小了。

我想要做的是检查该字段的字符串是否太长。如果是,请在最后,处剪切字符串,并将结尾替换为...

我该怎么做?代码怎么样?

我正在使用Crystal Reports 2011。

1 个答案:

答案 0 :(得分:0)

一种方法是使用Len - ,Left - ,Instr - 和Instrrev - 函数。

以下公式应该为您提供预期的结果。 (仅适用于monospaced font。)

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调整为您需要的字符数。