BIRT PDF报告:固定桌面高度?

时间:2010-05-06 10:50:50

标签: pdf reporting birt tabular

我正在尝试在单个A4固定布局页面中显示一个表格来显示产品(行)。 我设法添加一个带有标题/细节/页脚部分的表格,但我无法为细节部分设置最小高度(例如150mm)。 如果我在细节行上设置150mm高度,则每行将具有150mm高度。 虽然我想,每行都有一个最小的高度(如果某些列的内容被包装,可能在几行上。)

        +---------+--------+--------------+
Tbl Hdr | col1    | col2   |   col3       |
        +---------+--------+--------------+
Tbl Dtl | [val1]  | [val2] | [val3]       |
        +---------+--------+--------------+
        |                                 |  <-should have a variable heigth
        +---------+--------+--------------+
Tbl Ftr |         |        |     Total    |
        +---------+--------+--------------+

如果细节行上的设置不是高度,则页脚会出现在细节行的正下方,而不是粘在页面的底部。

我希望这是有道理的(如果不是我可以提供更多细节)。 任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

BIRT报告使用自动布局引擎来优化当前上下文的内容。这旨在使报告看起来尽可能好,无论显示/屏幕如何。事实上,它旨在最小化,如果不消除你想要保留的空白空间。

您可以考虑做的一件事是添加第二个细节行。然后,您可以将此详细信息行赋予固定高度,并使其消耗剩余的空白。或者,将第二个表放在母版页的页脚中,该页将呈现所需的数据并将其绑定到页面底部。这样做的好处是无论页面类型(字母,A4等等)都坚持页面底部。

答案 1 :(得分:1)

另一种选择,当有一个页脚没有切断它时:

我有一个客户想要一个固定的桌面尺寸,具有固定的行高。它最终显示了10行。

为了绕过自动格式化程序:

创建变量var rowCount = 0; reportContext.setGlobalVariable("rowCount",rowCount);Initialize脚本中。

在您的提取脚本中,在rowCount++;之前添加return(true);。 然后,将if(!lineDataSet.fetch())语句更改为以下内容:

if(!lineDataSet.fetch()){
    if(rowCount % 10 >0){
        row["column1"] = "";
        rowCount++;
        return(true);
    }
    return(false);
}

当您需要创建虚假数据以填充表格(例如缺少日期)时,这在许多情况下都很方便