【问题标题】:BIRT PDF report : fixed table heigth?BIRT PDF 报告:固定表格高度?
【发布时间】:2010-05-06 10:50:49
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: pdf reporting birt tabular


    【解决方案1】:

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

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

    【讨论】:

    • 感谢您的回答。我选择了您提供的第一个解决方案。我还必须使固定高度行仅在 rownum 大于 3(任意值...)之后才可见,以避免不必要的分页符。不是很好的解决方案,但我不能再花时间在这上面了......再次感谢您的帮助。
    【解决方案2】:

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

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

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多