我是Crystal Reports的新手,我正在寻找一种方法来切断字符串,如果字符串太长并用...
替换结尾
所以我使用Crystal Reports生成Word或PDF文件。现在的问题是我的文本字段对于长字符串来说太小了。
我想要做的是检查该字段的字符串是否太长。如果是,请在最后,
处剪切字符串,并将结尾替换为...
。
我该怎么做?代码怎么样?
我正在使用Crystal Reports 2011。
答案 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
调整为您需要的字符数。