我想在OpenERP的某些报告中添加侧边栏或标题。 ReportLab user manual (PDF)描述了<frame>
和<nextFrame>
代码。他们是否完全支持OpenERP?我已经有了一些工作要做,但是一个框架只是流入下一个框架,因此一个占用多个页面的报告最终会出现重叠文本。
答案 0 :(得分:1)
在代码中挖掘了一堆后,我在OpenERP 5.0中使用了框架。我必须找到的关键功能是帧定义的last="true"
属性。这意味着框架应该假设它是页面上的最后一帧。任何溢出它的文本都将流向新页面的第一帧,而不是当前页面的下一帧。我最终在所有框架上都设置了它。要查看包含框架的示例,请参阅我们的balance sheet report。
<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上的问题。