2016-09-05 19 views
0

我正在尝试创建一个如图所示的布局的报表。每个字段的值都会在报告的整个宽度上加下划线。如果它占用多行,则每行都加下划线。第一行下面还有一个简短的评论,解释了该领域的含义(如括号中所示)。BIRT Report - 多行文字下划线为全宽

当我们使用JasperReports面对同样的问题时,我们必须为此创建一个自定义组件。有谁知道BIRT中的解决方案可能是什么样子? enter image description here

+0

我不认为这是可能的与BIRT。 – hvb

+0

是的,这就是我的想法,但我希望这可能是通过JavaScript或其他方式实现的...... – koszek

+0

您可以创建一个GridLayout或Table,并使边框或单元格螺栓。它看起来像一个带下划线的表单字段。 – Simulant

回答

0

我能想到的唯一方法就是计算自己的包装线,例如。将长文本转换为一系列单行。 假设您在脚本数据集中找到了一种方法,使用长文本作为输入。 然后,您可以使用表格项目在布局中渲染这些单行;使用底部边框来创建下划线(或者可能有一个顶部边框和高度为2pt的空的额外细节行以创建漂亮的线条间距)。

现在这个脚本数据集是怎么样的? 我认为当你研究BIRT的源代码时,你可能会在某处找到一个实用函数来计算给定字体和大小的给定文本的宽度(以任何单位)。也许这也是在java.awt内部或iText(com.lowagie.text)内的某处。

然后它可能从Java脚本内部调用此函数,并且 - 或多或少的逻辑 - 将其用作脚本数据集的基础。但我认为这需要几个小时才能完成编码。

如果你设法做到这一点,如果你在这里发布解决方案,它会很好。