2

我正在尝试在单个 A4 固定布局页面中显示一个表格来显示产品(行)。我设法添加了一个带有页眉/细节/页脚部分的表格,但我无法为细节部分设置最小高度(例如 150 毫米)。如果我在详细信息行上设置 150 毫米的高度,那么每一行都将具有 150 毫米的高度。而我希望,每一行都有一个最小的高度(如果某些列的内容被包装,则可以在几行上)。

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

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

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

4

2 回答 2

1

BIRT 报告使用自动布局引擎来优化当前上下文的内容。这旨在使报告看起来尽可能好,无论显示/屏幕如何。事实上,它的目的是尽量减少如果不消除您试图保留的verywhitespace。

您可以考虑做的一件事是添加第二个详细信息行。然后,您可以给这个详细信息行一个固定的高度,并让它消耗剩余的空白。或者,在母版页的页脚中放置第二个表格,该表格将呈现您想要的数据并将其绑定到页面底部。这样做的好处是无论页面类型如何(letter、A4 等),都可以贴在页面底部。

于 2010-05-07T14:14:00.070 回答
1

另一种选择是,当有页脚时不会剪切它:

我有一个客户想要一个固定的表格大小,一个固定的行高。它最终显示了 10 行。

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

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

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

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

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

于 2013-12-03T13:38:21.293 回答