2013-11-14 66 views
0

我目前正在为数据集中的每个用户生成一个单独的字母的应用程序。信件内容通过vb.net应用程序进行管理,并将其RTF格式保存到数据库中。当创建该字母时,所有内容都将从数据库中提取出来,形成使用vb.net逻辑的字母。您可以连接Crystal Reports公式中的RTF字段

编译后,它作为参数发送给Crystal。这很好,将字段文本解释设置为RTF允许正确的RTF查看。 客户已决定他们将改为更改Crystal中的逻辑(如果编译文本的语句)。

因此,我所做的是创建一个空白数据集与一堆列,并用RTF填充这些列(按ID排序,这样的值将永远不会改变,除非段落被删除,并且没有这个选项)。这将允许我去{table.1} + {table.2}等建立一个RTF字符串...

这是问题所在。在公式中生成RTF字符串时(使用+或&),它只显示第一个RTF条目。如果我将公式转换为不解释,我可以看到用所有内容写出的条目的RTF,所以我知道它在那里。我也手动将公式字段中的RTF组合在一起,并具有相同的问题。


StringVar output;

输出:=输出&“{\ RTF1 \ ANSI \ ansicpg1252 \ deff0 {\ fonttbl {\ F0 \ fnil \ fcharset0 Times New Roman字体;}} \ viewkind4 \ UC1 \ PARD \ lang1033 \ F0 \ fs23这是一个第一次测试}“; 输出:=输出&“{\ rtf1 \ ansi \ ansicpg1252 \ deff0 {\ fonttbl {\ f0 \ fnil \ fcharset0 Times New Roman;}} \ viewkind4 \ uc1 \ pard \ lang1033 \ f0 \ fs23这是第二次测试\帕\帕}“;


输出

在这一点上我不确定是否有解决这个另一种方式比移动的所有文字,以独立的公式字段晶体本身,然后结合内。这意味着如果他们想改变文本,就必须在水晶内完成。我宁愿不走这条路,所以我正在寻找意见和建议。

回答

0

Crystal支持RTF,但它需要在RTF条目的第一次出现时完全形成。在我的问题中,它显示了两个单独的完整RTF条目。由于条目都有RTF ID标签,因此这是不可能的。如果您将上述文本复制到文本编辑器并将其保存为RTF,则会发生同样的问题。你只会得到第一行。这并不能解释为什么它作为一个参数而不是一个公式,但它可能是如何评估的,以及后来的(参数可能在未来会失去支持)。

要正确地将RTF传递给水晶,您将需要两个富文本框对象。一个是临时盒子,另一个是生成器盒子,只选择格式化文本,而不是整个RTF内容。这样的一个例子可以在以下网址找到:

http://moneybaron.org/2011/08/23/vb-net-merge-rtf-documents/

从一些黑客诸如从RTF串移除闭合支架或重建RTF表

除了是产品相关图片然而除去支架可能会导致不支持的配置重建可能会非常快速地变得麻烦。

希望这有助于!

相关问题