Crystal 报告字符串被截断
Crystal Reports cut of string
我是 Crystal 报告的新手,我正在寻找一种方法来切断字符串(如果字符串太长)并将结尾替换为 ...
所以我正在使用 Crystal 报告生成 Word 或 PDF 文件。现在的问题是我有一个文本字段对于长字符串来说太小了。
我想做的是检查字符串对于字段来说是否太长。如果是,则将最后 ,
处的字符串剪掉,并将结尾替换为 ...
.
我如何以及在哪里可以做到这一点?代码会是什么样子?
我正在使用 Crystal 2011 年报告。
一种方法是使用 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
调整为您需要的字符数即可。
我是 Crystal 报告的新手,我正在寻找一种方法来切断字符串(如果字符串太长)并将结尾替换为 ...
所以我正在使用 Crystal 报告生成 Word 或 PDF 文件。现在的问题是我有一个文本字段对于长字符串来说太小了。
我想做的是检查字符串对于字段来说是否太长。如果是,则将最后 ,
处的字符串剪掉,并将结尾替换为 ...
.
我如何以及在哪里可以做到这一点?代码会是什么样子?
我正在使用 Crystal 2011 年报告。
一种方法是使用 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
调整为您需要的字符数即可。