繁体   English   中英

水晶报表切弦

[英]Crystal Reports cut of string

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

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

我要做的是检查字符串对于字段而言是否太长。 如果是这样,请在最后切割字符串,然后将末尾替换为...

我该如何以及在哪里做? 代码看起来如何?

我正在使用Crystal Reports 2011。

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

下面的公式应会给您预期的结果。 (仅适用于等宽字体 。)

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调整为所需的字符数即可。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM