Moin Moin, 我正在使用Openerp 7,并使用rml创建了pdf。 问题是:我需要页码,但只需要从第二页开始。 我尝试了一些rml if子句语句,但是第1页一直打印,而得到printet的东西非常奇怪。
<header>
<pageTemplate id="second">
<frame id="second" x1="2.2cm" y1="2.5cm" width="16.9cm" height="22.3cm"/>
<pageGraphics>
<image file="images/isatech_water_header_medium.jpg" x="0.0cm" y="24.4cm" width="19.0cm" height="6.0cm"/>
<image file="images/isatech_water_footer.jpg" x="0.0cm" y="-0.5cm" width="16.9cm" height="2.6cm"/>
</pageGraphics>
</pageTemplate>
<pageTemplate id="first">
<frame id="first" x1="2.2cm" y1="2.5cm" width="16.9cm" height="22.3cm"/>
<pageGraphics>
<image file="images/isatech_water_header.jpg" x="0.0cm" y="24.4cm" width="19.0cm" height="6.0cm"/>
<image file="images/isatech_water_footer.jpg" x="0.0cm" y="-0.5cm" width="16.9cm" height="2.6cm"/>
[[ <pageNumber/> != '1' and <drawCentredString x="10cm" y="0.3cm"><pageNumber/></drawCentredString> ]]
</pageGraphics>
</pageTemplate>
</header>
pdf上印刷的内容是:
]] 1(2,3,...)
pageTemplate第二个用于在第1页之后打印不同的标题。我希望在页码之后得到那个straigt。
我真的不知道为什么代码的行为和他一样。也欢迎不同的解决方案。
mfg Chris
答案 0 :(得分:1)
我找到了另一种方法。
检查RML中的pageNumber不是一个好主意。
如果我做对了,那么pageNumber将作为最后一步处理。 (对于PageCount也是如此,因为在构建文档结束之前您无法了解pageCount)
即使你使用pageNumber调用python函数,它也会被作为String处理。我可以想象这是同样的道理。
我帮助自己<setNextTemplate name="pageTemplate id"/>
更改您的RML文件并定义不同的pageTemplates
<template title="Sales Order" author="OpenERP S.A.(sales@openerp.com)" allowSplitting="20" showBoundary="0">
<pageTemplate id="first">
<frame id="first" x1="2.2cm" y1="2.5cm" width="16.9cm" height="22.3cm"/>
<pageGraphics>
<image file="images/header_page_1.jpg" x="0.8cm" y="24.7cm" width="16,9cm" height="4cm"/>
<image file="images/footer_page_1.jpg" x="0.4cm" y="-0.4cm" width="16.9cm" height="2.3cm"/>
</pageGraphics>
</pageTemplate>
<pageTemplate id="second">
<frame id="first" x1="2.2cm" y1="2.5cm" width="16.9cm" height="22.3cm"/>
<pageGraphics>
<image file="images/header_page_2.jpg" x="0.8cm" y="24.7cm" width="16,9cm" height="4cm"/>
<image file="images/header_page_2.jpg" x="0.4cm" y="-0.4cm" width="16.9cm" height="2.3cm"/>
</pageGraphics>
</pageTemplate>
第x页的某个位置添加<setNextTemplate name="pageTemplate id"/>
或<setNextTemplate name="pageTemplate id"/>
<nextFrame/>
更改第x + 1页的页面模板
<setNextTemplate name="pageTemplate id"/>
只是定义下一页的pageTemplate
<nextFrame/>
另外结束当前页面。
编辑(多公司标题):我忘了我们有多个公司标题。我仍然使用这种方法。我只是复制每个公司的.rml并硬编码不同的公司徽标。然后在每个公司(数据库)的报告设置页面中,我指定了正确的.rml文件。 我非常多余,但我没有找到更好的解决方案。
VG Chris