【发布时间】:2012-10-02 22:33:51
【问题描述】:
我想为我在 OpenERP 中的一些报告添加边栏或标题。 ReportLab user manual (PDF) 描述了<frame> 和<nextFrame> 标签。 OpenERP 是否完全支持它们?我已经完成了一些工作,但一帧只是流入下一帧,因此需要超过一页的报告最终会出现重叠的文本。
【问题讨论】:
标签: openerp reportlab page-layout
我想为我在 OpenERP 中的一些报告添加边栏或标题。 ReportLab user manual (PDF) 描述了<frame> 和<nextFrame> 标签。 OpenERP 是否完全支持它们?我已经完成了一些工作,但一帧只是流入下一帧,因此需要超过一页的报告最终会出现重叠的文本。
【问题讨论】:
标签: openerp reportlab page-layout
在大量挖掘代码之后,我的框架在 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 标记。公司表头只能使用一个页面模板,但每个报表可以定义多个页面模板。
如果您想在其他框架之一中放置内容,请使用 setNextFrame 和 nextFrame。
<setNextFrame name="upper_right"/>
<nextFrame/>
您不必按顺序使用框架。您可以切换到列表中较早的帧,它不会开始新页面。
有关更改标头的更多详细信息,请参阅documentation 或user-defined headers 上的问题。
【讨论】: