javascript - Birt - 如何在rowcreate上操作行单元格

标签 javascript birt

我是 Birt 脚本编写新手,需要一些脚本方面的帮助。 如果它们包含相同的数据,我想在行创建时合并表行中的单元格。 例如这个表

 ------- ------- -------
|  id1  |   2   |   4   |
 ------- ------- -------
|  id2  |   5   |   5   |
 ------- ------- -------

应该看起来像

 ------- ------- -------
|  id1  |   2   |   4   |
 ------- ------- -------
|  id2  |       5       |
 ------- ------- -------

我找到了一些示例,现在我可以根据行数据 onrowcreate 更改行背景:

if (this.getRowData().getExpressionValue(1) == "id1")
this.getStyle().backgroundColor = "red";

if (this.getRowData().getExpressionValue(1) == "id2")
this.getStyle().backgroundColor = "blue"; 

另一个例子展示了如何在工厂之前合并表头中的单元格:

importPackage( Packages.org.eclipse.birt.report.model.api );
elementFactory = reportContext.getDesignHandle().getElementFactory();
var mytable = reportContext.getDesignHandle().findElement("mytable");
var myheader = mytable.getHeader( ).get( 0 );
tcell = myheader.getCells( ).get( 1 ).drop();
tcell = myheader.getCells( ).get( 0 );
tcell.setColumnSpan(2);
tcell.setRowSpan(1);

两个示例都工作正常,但我需要在合并单元格之前检查单元格中是否有相同的数据,我可以执行类似于 beforeFactory 脚本 onrowcreate 的操作,或者可能有不同的方法。

谢谢!

最佳答案

创建表格后,就无法合并单元格,因此需要在 beforeFactory 事件中完成此操作,但这对您不起作用,因为它会在看到您的数据集之前运行。

根据表的复杂程度,创建 2 个详细信息行可能是有意义的,其中一行包含合并列,另一行不包含合并列。然后您可以根据行中的数据动态隐藏您不想使用的明细行。

关于javascript - Birt - 如何在rowcreate上操作行单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15985218/

相关文章:

javascript - NodeJS 信号量模块 : how does it work?

javascript - 检测用户何时使用 jQuery 滚动到 div 的底部

javascript - 如何用外部图片生成 "screenshot"的html div?

java - BIRT 以编程方式从 CSV 数据源获取数据

java - 如何在Birt设计器中使用POJO数据集制作主从关系(子报告)?

javascript - Twitter 如何管理要删除的推文?

javascript - 未捕获的语法错误 : Unexpected token u with Ajax post

java - 从数据库获取字符串后如何在BIRT中将其转换为整数?

java - BIRT 两个阶段,报告生成和演示

java - BIRT。在动态组的组页眉/页脚中显示当前分组值