有没有办法在BIRT中将2个交叉表的列对齐到相同的大小?
我在报告中有2个交叉表,具有相同的尺寸但值不同,布局首选项设置为自动,因此单元格按单元格值对齐。 有没有办法将第二个交叉表单元格设置为第一个?
答案 0 :(得分:0)
我猜这很难。解决此问题的一种方法是查看是否可以组合两个数据集,然后对指示两者之间的参数进行分组。您可以使用分页设置来分割两者之间的交叉表。使用一些花哨的条件标签,你可以使它们看起来完全不同。这将确保列对齐。
另一种方法可能是两个使用Crosstab的onCreate脚本和函数onCreateCell()
/**
* Called when crosstab cell is being created.
*
* @param cellInst
* ICrosstabCellInstance
* @param reportContext
* IReportContext
*/
function onCreateCell( cellInst, reportContext )
{
}
从该单元格中,您可以获得样式信息,如填充,边框和颜色信息。我没有注意到直接的getWidth函数,但是,嘿,也许有类似的东西。
可能是这样的:
reportContext.getDesignHandle().findElement(cellInst.getCellID()).setProperty("width", "10mm");
您需要使用reportContext.setGlobalVariable()函数从第一个交叉表上下文和第二个交叉表上下文中获取该信息。搜索crossTab斑马线或交替行颜色以查找有关如何操纵交叉表中的单元格的示例。