页码的{RML测试

时间:2016-01-07 14:05:30

标签: openerp openerp-7 rml

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

1 个答案:

答案 0 :(得分:1)

我找到了另一种方法。 检查RML中的pageNumber不是一个好主意。 如果我做对了,那么pageNumber将作为最后一步处理。 (对于PageCount也是如此,因为在构建文档结束之前您无法了解pageCount) 即使你使用pageNumber调用python函数,它也会被作为String处理。我可以想象这是同样的道理。 我帮助自己<setNextTemplate name="pageTemplate id"/>

  1. 取消选中设置&gt;中的添加RML标题行动&gt;报告&gt; &#34;您的报告&#34;
  2. 更改您的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>
    

  3. 第x页的某个位置添加<setNextTemplate name="pageTemplate id"/><setNextTemplate name="pageTemplate id"/> <nextFrame/>更改第x + 1页的页面模板

  4. <setNextTemplate name="pageTemplate id"/>只是定义下一页的pageTemplate <nextFrame/>另外结束当前页面。

    编辑(多公司标题):我忘了我们有多个公司标题。我仍然使用这种方法。我只是复制每个公司的.rml并硬编码不同的公司徽标。然后在每个公司(数据库)的报告设置页面中,我指定了正确的.rml文件。 我非常多余,但我没有找到更好的解决方案。

    VG Chris