【问题标题】:Does the OpenERP version of ReportLab's RML support frames?ReportLab 的 RML 的 OpenERP 版本是否支持框架?
【发布时间】:2012-10-02 22:33:51
【问题描述】:

我想为我在 OpenERP 中的一些报告添加边栏或标题。 ReportLab user manual (PDF) 描述了<frame><nextFrame> 标签。 OpenERP 是否完全支持它们?我已经完成了一些工作,但一帧只是流入下一帧,因此需要超过一页的报告最终会出现重叠的文本。

【问题讨论】:

    标签: openerp reportlab page-layout


    【解决方案1】:

    在大量挖掘代码之后,我的框架在 OpenERP 5.0 中工作。我必须找到的关键特性是框架定义的last="true" 属性。这意味着框架应该假定它是页面上的最后一个框架。任何溢出的文本都将流向新页面的第一帧,而不是当前页面的下一帧。我最终在我的所有框架上都设置了它。要查看带有框架的示例,这里有一些来自我们balance sheet report 的 sn-ps。

    <template 
        pageSize="(8.5in,11in)" 
        title="Test" 
        author="Zaber Technologies Inc." 
        allowSplitting="20">
      <pageTemplate id="first">
        <frame 
            id="first" 
            x1="1.3cm" 
            y1="0.2cm" 
            height="27.5cm" 
            width="14.0cm" 
            last="true"/>
        <frame 
            id="upper_right" 
            x1="14.1cm" 
            y1="21.53cm" 
            height="5.2cm" 
            width="5.0cm" 
            last="true"/>
      </pageTemplate>
    </template>
    

    此部分指定您的页面布局。默认情况下,文本将从列表的第一帧开始。 y1 是与页面底部的距离。您可以在两个地方指定页面模板:在报表本身内,或在公司配置中定义的标题内。如果使用页眉,则报表的第一页模板将被页眉的页面模板替换,因此报表的模板可以只是一个pageTemplate 标记,其中包含一个空的frame 标记。公司表头只能使用一个页面模板,但每个报表可以定义多个页面模板。

    如果您想在其他框架之一中放置内容,请使用 setNextFramenextFrame

    <setNextFrame name="upper_right"/>
    <nextFrame/>
    

    您不必按顺序使用框架。您可以切换到列表中较早的帧,它不会开始新页面。

    有关更改标头的更多详细信息,请参阅documentationuser-defined headers 上的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-06
      • 2020-02-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-25
      相关资源
      最近更新 更多