Crystal reports 是否有方法检测带有“can grow”的字段标记何时截断了字段数据?

Crystal reports 是否有方法检测带有“can grow”的字段标记何时截断了字段数据?,crystal-reports,crystal-reports-2008,Crystal Reports,Crystal Reports 2008,我通常不使用crystal,但我已经花了近2天的时间寻找一种方法来实现这一点 问题是,我有许多行文本需要在报告中显示,但需要在8行之后剪掉,并显示“更多”提示,通知用户他们需要在线查看其余的详细信息。这最初是通过将数据存储为已按大小换行的单独行,并使用公式计算行数,并有条件地显示一个单独的“更多”字段来处理的。此后,他们增加了在文本中使用html的功能,但这使得当前的处理方式包装错误,并显示html标记 我编写了一个数据库函数,将文本合并到一个字段中,并使用HTML文本解释在其他7个不限制文本长

我通常不使用crystal,但我已经花了近2天的时间寻找一种方法来实现这一点

问题是,我有许多行文本需要在报告中显示,但需要在8行之后剪掉,并显示“更多”提示,通知用户他们需要在线查看其余的详细信息。这最初是通过将数据存储为已按大小换行的单独行,并使用公式计算行数,并有条件地显示一个单独的“更多”字段来处理的。此后,他们增加了在文本中使用html的功能,但这使得当前的处理方式包装错误,并显示html标记

我编写了一个数据库函数,将文本合并到一个字段中,并使用HTML文本解释在其他7个不限制文本长度的报告上正确显示它,最大行数对于限制文本大小非常有效,我只是不知道如何在需要时显示“更多”提示

如果您有任何建议,我们将不胜感激。

GrumpyGeek

如果您的数据库功能现在将文本合并到一个字段中,这是否意味着仍然以原始方式存储分隔行?如果是这样,为什么不添加另一个名为“行计数”的计算字段来计算旧的基于行的数据

因此,您仍然有新的组合HTML字段和这个新字段,您可以在“行计数>x”时使用它们来显示“更多”按钮

或者,另一种选择可能有效,但会有点敏感。也就是说,当字段长度超过x时,将触发显示“更多”按钮的公式。问题是html标记不会显示,大量使用它会使显示“更多”按钮之前所需的文本量发生偏差。换句话说,大量使用标记和标签的字段可能会比应该的更早地强制使用“更多”按钮。除非您可以通过某种方式使“行计数”计算字段排除标记或使长度计算也这样做

如果MSSQL或Crystal Reports可以运行正则表达式来去除标记,这将是可能的

如果以上这些都不起作用,我唯一能建议的就是研究UDF。Crystal允许您加载您编写的外部库。这些函数将读取您编写的函数,并显示在Crystal内部的函数列表中。如果您这样做,那么您可以轻松编写一个例程,剥离HTML并计算何时应该显示“更多”按钮


祝您好运。

理想情况下,DB字段会有一个属性返回其显示的行数。不幸的是,没有这样的财产

您可以尝试计算行尾字符的数量,例如回车符、换行符。如果它们大于7,则显示超链接。在HTML情况下,必须计算结束元素,例如

。您可以使用a来更容易地识别元素


可能最简单的方法是到DB计算行的长度,并将其作为另一个字段返回。使用此字段隐藏/显示超链接。

这样您就可以将文本字段标记为“Can Grow”=true和“Maximum number of lines=8”?是的,这很好,我只需要一种方法来检测注释被截断为8行,这样我就可以在旁边添加“more”提示。是的,原始数据未被触及,但是,由于html标记,原始的单词包装可能会非常混乱。最初的报告使用了行计数方法来触发“more”标签,但是在HTML中,它大部分时间都显示出来,几乎没有任何用处。我想我会尝试UDF方法,看看我能做些什么。谢谢你的帮助。是的,UDF非常强大,最有可能很好地解决这个问题。他们只是需要更多的工作。不客气。考虑到HTML可以使单个行换行,试图从数据中获取行数似乎不可靠。如果crystal有一个机制来指示增长限制已经被强制执行,并且数据被截断,那就太好了。我建议在存储HTML代码之前先剥离它。数据来自另一个系统,我们将其与我们的系统合并,并转发到其他系统,我甚至不确定这些系统是否能够处理HTML。如果我们这样做了,我就不用管报告了。。。我们将看看项目经理的决定。谢谢你的帮助。