我通常不会使用水晶,但我花了将近2天的时间来寻找一种方法。
问题是我需要在报告上显示多行文字,但需要在8行后切断并显示“更多”提示,告知用户他们需要查看其余的细节在线。这最初是通过将数据存储为已经包装到大小的单个行并使用公式计算行并有条件地显示单独的“更多”字段来处理的。他们已经添加了在文本中使用html的功能,但这使得当前的处理方式不正确并显示html标记。
我编写了一个数据库函数,将文本合并到一个字段中,并使用HTML文本解释在其他7个不限制文本长度的报表上正确显示,最大行数对于限制文本大小非常有用,我无法弄清楚如何在需要时显示“更多”提示。
任何建议都将不胜感激。
答案 0 :(得分:0)
GrumpyGeek,
如果您的数据库功能现在将文本合并到一个字段中,这是否意味着原始方式(分隔线)仍然存储?如果是这样,为什么不添加另一个名为“line-count”的计算字段来计算旧的基于行的数据?
因此,您仍然可以使用新的组合HTML字段和这个新字段,可用于在'行数>时显示'更多'按钮X'?
或者,另一个选项可能会起作用,但会有点敏感。这是为了使字段长度超过x时显示更多按钮触发的公式。问题是没有显示html标记,并且大量使用它会在显示“更多”按钮之前扭曲所需的文本量。换句话说,使用大量标记(和标记)的字段可能会比应该更早地强制“更多”按钮。除非你能以某种方式使你的'行数'计算字段排除标记或使长度计算相同。
如果MSSQL或Crystal Reports可以运行正则表达式去除标记,则可以这样做。
如果上述内容无效,我唯一可以建议的是研究UDF。 Crystal允许您加载您编写的外部库。这些将读取您编写的函数并在Crystal内部的函数列表中显示它们。如果你这样做,那么你可以轻松编写一个剥离HTML的例程,并计算何时应该显示更多按钮。
祝你好运。
答案 1 :(得分:0)
理想情况下,DB字段的属性会返回其显示的行数。不幸的是,没有这样的财产。
您可以尝试计算行结束字符数(例如回车符,换行符)。如果他们是> 7然后显示超链接。在HTML情况下,您必须计算结束元素(例如
)。您可以使用RegEx UFL来更轻松地识别元素。
最简单的路线可能是DB计算行数并将其作为另一个字段返回。使用此字段隐藏/显示超链接。