锐浪报表 Grid++Report 打印“跨页”文本,解决“文字被中间截断”问题
一、问题提出
二、解决问题
1、报表设计中尽量少用RTF框,改用其它替代方式使用MemoBox。原因:
(1)RTF框的绘制是Windows内部实现的,不同版本的Windows有区别。因为是Windows内部绘制,RTF文本展现的缺陷锐浪报表无法进行改善。我发现通过在RTF框做的报表,在不同的电脑中,出现格式有很大的差异。
(2)RTF文本格式在Word中显示的效果与Grid++Report内部经常有很大的区别。
(3)RTF文本包含有表格,且内容跨页显示,Grid++Rpoert 没法正确显示这样的内容,在内容换页处会出现内容显示不全或部分内容丢失的情况。
2、通过MemoBox的自由表格(FreeGrid)来实现。当需要有格式的文字,建议使用综合文字框的HTML标签功能。
3、要实现长篇幅文字跨页显示,必须满足以下几点要求:
(1)必须将部件框的“可伸展”属性设为“是”。 因为内容是动态的,每份具体的文章其长度可能有长有短,应该设置部件框及其所在报表节的“可伸展”属性为“是”,让程序自动计算出文章的长度。找到自动截断的地方。
(2)部件框框所在的报表节的“可伸展”属性也要设为“是”。(如“ReportHeader” )这样才能避免文字跨页截断的问题。
(3)“文字格式”属性类别下的“文字对齐”属性的垂直对齐必须为上端,通常设置为“左上”(中上也可)。
(4)开启HTML标签功能,即“支持HTML标签”属性没有设为“是”。
(5)如果文章的篇幅特别长,可以拆分为多部分,且每部分放在不同的报表节(如报表头与报表尾)中,这样不仅方便编辑排版,也能得到更好的运行性能。
(6)如果一页下部出现很长的空白且后续内容换到新页上输出,应该设置报表节的“保持同页”属性设为“是”。
(7)为了防止文字换页时出现从中间截断的情况,应该将“行间距”或“字间距”属性的值设为大于0,如“ 6”或“20”。这样,给控件截断的空间。
(8)当文字内容超过一页,必须用综合文字框来实现,中间可以插入动态数据域。
三、体会
通过不断的探索,问题终于解决。
上述体会,写出仅供参考。