Python openerp RML,如何在新页面中继续打印表行?

Python openerp RML,如何在新页面中继续打印表行?,python,openerp,row,rml,xmltable,Python,Openerp,Row,Rml,Xmltable,我必须打印一个表格,根据其大小,它可能会占用多个页面。为此,我使用blockTable进行了一次repeatIn,它一行一行地打印行,但当它接近页面末尾时,openerp显示以下错误消息: “打印错误 您试图打印的文档包含一个不适合一页的表格行。请尝试将其拆分为较小的行,或与管理员联系。“ 如何解决这个问题 附言:我试过使用condPageBreak,但似乎这个标签不起作用 下面是我的代码: <?xml version="1.0"?> <document filename="t

我必须打印一个表格,根据其大小,它可能会占用多个页面。为此,我使用blockTable进行了一次repeatIn,它一行一行地打印行,但当它接近页面末尾时,openerp显示以下错误消息:

“打印错误 您试图打印的文档包含一个不适合一页的表格行。请尝试将其拆分为较小的行,或与管理员联系。“

如何解决这个问题

附言:我试过使用condPageBreak,但似乎这个标签不起作用

下面是我的代码:

<?xml version="1.0"?>
<document filename="test.pdf">
<template pageSize="(842.0,595.0)" title="Test" author="Martin Simon" allowSplitting="20">
<pageTemplate id="first"> <!-- 481 728 -->
  <frame id="first" x1="57.0" y1="57.0" width="750" height="500"/>
</pageTemplate>
</template>
<stylesheet>
<blockTableStyle id="Standard_Outline">
  <blockAlignment value="LEFT"/>
  <blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Tabla1">
  <blockAlignment value="LEFT"/>
  <blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Tabla2">
  <blockAlignment value="LEFT"/>
  <blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Tabla3">
  <blockAlignment value="LEFT"/>
  <blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Tabla5">
  <blockAlignment value="LEFT"/>
  <blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Tabla4">
  <blockAlignment value="LEFT"/>
  <blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Tabla6">
  <blockAlignment value="LEFT"/>
  <blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Tabla7">
  <blockAlignment value="LEFT"/>
  <blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Tabla8">
  <blockAlignment value="LEFT"/>
  <blockValign value="TOP"/>
  <blockFont name="Helvetica" size="8" />
  <lineStyle kind="LINEABOVE" colorName="#000000" start="0,0" stop="0,0"/>
  <lineStyle kind="LINEABOVE" colorName="#000000" start="1,0" stop="1,0"/>
</blockTableStyle>

<blockTableStyle id="Tabla9">
  <blockAlignment value="LEFT"/>
  <blockValign value="TOP"/>
  <lineStyle kind="GRID" colorName="#000000"  />
  <lineStyle kind="GRID" colorName="#000000"  />
</blockTableStyle>

<blockTableStyle id="Tabla10">
  <blockAlignment value="LEFT"/>
  <blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Tabla11">
  <blockAlignment value="LEFT"/>
  <blockValign value="TOP"/>
</blockTableStyle>
<initialize>
  <paraStyle name="all" alignment="justify"/>
</initialize>
<paraStyle name="P1" fontName="Helvetica" fontSize="14.0" leading="17"/>
<paraStyle name="P2" fontName="Helvetica" fontSize="12.0" leading="15"/>
<paraStyle name="P3" fontName="Helvetica" fontSize="8.0" leading="11" alignment="LEFT"/>
<paraStyle name="P5" fontName="Helvetica" fontSize="10.0" leading="13" alignment="LEFT"/>
<paraStyle name="P9" fontName="Helvetica" fontSize="7.0" leading="13" alignment="CENTER"/>
<paraStyle name="Standard" fontName="Helvetica"/>
<paraStyle name="Heading" fontName="Helvetica" fontSize="14.0" leading="17" spaceBefore="12.0"         spaceAfter="6.0"/>
<paraStyle name="Text body" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="List" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="Caption" fontName="Helvetica" fontSize="12.0" leading="15" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="Index" fontName="Helvetica"/>
<paraStyle name="Table Contents" fontName="Helvetica"/>
<images/>
</stylesheet>
<story>
<para style="P3">[[ repeatIn(objects,'partida') ]]</para>
<para style="P1">Registro de Contralor</para>
<para style="P3">
  <font color="white"> </font>
</para>
<para style="P3">
  <font color="white"> </font>
</para>
<blockTable colWidths="74.0,408.0" style="Tabla1">
  <tr>
    <td>
      <para style="P3">Período:</para>
    </td>
    <td>
   <para style="P5">[[ partida.period_id.name ]]</para>
    </td>
  </tr>
  <tr>
    <td>
      <para style="P3">Moneda:</para>
    </td>
    <td>
      <para style="P5">[[ partida.currency_id.name ]]</para>
    </td>
  </tr>
  <tr>
    <td>
      <para style="P3">Misión:</para>
    </td>
    <td>
      <para style="P5">[[ partida.company_id.name ]]</para>
    </td>
  </tr>
</blockTable>
<para style="P3">
  <font color="white"></font>
</para>
<blockTable style="Tabla2">
  <tr>
    <td>
      <para style="P3">Líneas de contralor</para>
    </td>
  </tr>
  <tr>
    <td>
      <blockTable colWidths="80,60,105,105,80,60,60,80,80" style="Tabla9">
    <tr>
    <td><para style="P9">Factura</para></td>
    <td><para style="P9">Fecha de pago</para></td>
    <td><para style="P9">Cód./Obj. del gasto</para></td>
    <td><para style="P9">Partida descripción</para></td>
    <td><para style="P9">Factura original</para></td>
    <td><para style="P9">Ingreso</para></td>
    <td><para style="P9">Egreso</para></td>
    <td><para style="P9">Ref. de pago</para></td>
    <td><para style="P9">Diario</para></td>
    </tr>
   </blockTable>
<section>
       <para style="P3">[[ repeatIn(partida.contralor_ids,'contralor_id') ]]</para>
   <blockTable colWidths="80,60,105,105,80,60,60,80,80" style="Tabla9">
        <tr>
          <td>
            <para style="P9">[[ contralor_id.invoice_id.number ]]</para>
          </td>
          <td>
            <para style="P9">[[formatLang(contralor_id.fecha_pago,date=True)[:2] ]]/[[ formatLang(contralor_id.fecha_pago,date=True)[3:5] ]]/[[ formatLang(contralor_id.fecha_pago,date=True)[6:10] ]]</para>
          </td>
          <td>
            <para style="P9">[[ contralor_id.product_id.name ]]</para>
          </td>
          <td>
            <para style="P9">[[ contralor_id.partida_id.name ]]</para>
          </td>
          <td>
            <para style="P9">[[ contralor_id.invoice_original_id.number ]]</para>
          </td>
          <td>
            <para style="P9">[[ ('%.2f' % contralor_id.ingreso).replace('.', ',') ]]</para>
          </td>
          <td>
            <para style="P9">[[ ('%.2f' % contralor_id.egreso).replace('.', ',') ]]</para>
          </td>
          <td>
            <para style="P9">[[ contralor_id.ref_pago ]]</para>
          </td>
          <td>
            <para style="P9">[[ contralor_id.journal_id.name ]]</para>
          </td>
        </tr>
      </blockTable>
</section>
    </td>
    <td>
    </td>
  </tr>
</blockTable>
</story>
</document>

[[repeatIn(对象,'partida')]]
反向登记
佩里奥多:
[[partida.period\u id.name]]
莫奈达:
[[partida.currency\u id.name]]
米西河:
[[partida.company\u id.name]]
LÃneas de contralor
Factura
菲查德帕戈酒店
Cód./Obj。德尔加斯托
描述方
原稿
英格里斯
白鹭
参考德帕戈
迪亚里奥
[[repeatIn(partida.contralor\u id,'contralor\u id')]]
[[contralor\U id.发票\U id.编号]]
[[formatLang(contracolor\u id.fecha\u pago,date=True)[:2]]/[formatLang(contracolor\u id.fecha\u pago,date=True)[3:5]]/[formatLang(contracolor\u id.fecha\u pago,date=True)[6:10]]
[[contralor\u id.product\u id.name]]
[[contralor\u id.partida\u id.name]]
[[contralor\u id.发票\u原件\u id.编号]]
[[('%.2f'%contralor_id.Ingreo).替换('.',',')]]
[[('%.2f'%contralor\U id.EGERSO).替换('.',')]]
[[contralor_id.ref_pago]]
[[contralor\u id.journal\u id.name]]

我找到了错误所在!!blockTable在一个td标记中,似乎RML不允许您拆分td中的blockTable行。然后我将blockTable从另一个外部表的td中取出,问题就解决了

这是我的固定代码:

<?xml version="1.0"?>
<document filename="test.pdf">
<template pageSize="(842.0,595.0)" title="Test" author="Martin Simon" allowSplitting="20">
<pageTemplate id="first"> <!-- 481 728 -->
  <frame id="first" x1="57.0" y1="57.0" width="750" height="500"/>
</pageTemplate>
</template>
<stylesheet>
<blockTableStyle id="Standard_Outline">
  <blockAlignment value="LEFT"/>
  <blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Tabla1">
  <blockAlignment value="LEFT"/>
  <blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Tabla2">
  <blockAlignment value="LEFT"/>
  <blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Tabla3">
  <blockAlignment value="LEFT"/>
  <blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Tabla5">
  <blockAlignment value="LEFT"/>
  <blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Tabla4">
  <blockAlignment value="LEFT"/>
  <blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Tabla6">
  <blockAlignment value="LEFT"/>
  <blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Tabla7">
  <blockAlignment value="LEFT"/>
  <blockLeftPadding length="15"/>
  <blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Tabla8">
  <blockAlignment value="LEFT"/>
  <blockValign value="TOP"/>
  <blockFont name="Helvetica" size="8" />
  <lineStyle kind="LINEABOVE" colorName="#000000" start="0,0" stop="0,0"/>
  <lineStyle kind="LINEABOVE" colorName="#000000" start="1,0" stop="1,0"/>
</blockTableStyle>

<blockTableStyle id="Tabla9">
  <blockAlignment value="LEFT"/>
  <blockValign value="TOP"/>
  <lineStyle kind="GRID" colorName="#000000"  />
  <lineStyle kind="GRID" colorName="#000000"  />
</blockTableStyle>

<blockTableStyle id="Tabla10">
  <blockAlignment value="LEFT"/>
  <blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Tabla11">
  <blockAlignment value="LEFT"/>
  <blockValign value="TOP"/>
</blockTableStyle>
<initialize>
  <paraStyle name="all" alignment="justify"/>
</initialize>
<paraStyle name="P1" fontName="Helvetica" fontSize="14.0" leading="17"/>
<paraStyle name="P2" fontName="Helvetica" fontSize="12.0" leading="15"/>
<paraStyle name="P3" fontName="Helvetica" fontSize="8.0" leading="11" alignment="LEFT"/>
<paraStyle name="P5" fontName="Helvetica" fontSize="10.0" leading="13" alignment="LEFT"/>
<paraStyle name="P9" fontName="Helvetica" fontSize="7.0" leading="13" alignment="CENTER"/>
<paraStyle name="Standard" fontName="Helvetica"/>
<paraStyle name="Heading" fontName="Helvetica" fontSize="14.0" leading="17" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="Text body" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="List" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="Caption" fontName="Helvetica" fontSize="12.0" leading="15" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="Index" fontName="Helvetica"/>
<paraStyle name="Table Contents" fontName="Helvetica"/>
<images/>
</stylesheet>
<story>
<para style="P3">[[ repeatIn(objects,'partida') ]]</para>
<para style="P1">Registro de Contralor</para>
<para style="P3">
  <font color="white"> </font>
</para>
<para style="P3">
  <font color="white"> </font>
</para>
<blockTable>
<tr>
<td>
<blockTable colWidths="105.0,350.0" style="Tabla1">
  <tr>
    <td>
      <para style="P3">Período:</para>
    </td>
    <td>
   <para style="P5">[[ partida.period_id.name ]]</para>
    </td>
  </tr>
  <tr>
    <td>
      <para style="P3">Moneda:</para>
    </td>
    <td>
      <para style="P5">[[ partida.currency_id.name ]]</para>
    </td>
  </tr>
  <tr>
    <td>
      <para style="P3">Misión:</para>
    </td>
    <td>
      <para style="P5">[[ partida.company_id.name ]]</para>
    </td>
  </tr>
  <tr>
<td>
   <para style="P3">Líneas de contralor</para>
</td>
<td>
   <para></para>
</td>
  </tr>
</blockTable>
</td>
<td>
</td>
</tr>
</blockTable>
<para style="P3">
  <font color="white"></font>
</para>
      <blockTable rowHeights="30" repeatRows="1" colWidths="80,60,105,105,80,60,60,80,80" style="Tabla9">
    <tr>
    <td><para style="P9">Factura</para></td>
    <td><para style="P9">Fecha de pago</para></td>
    <td><para style="P9">Cód./Obj. del gasto</para></td>
    <td><para style="P9">Partida descripción</para></td>
    <td><para style="P9">Factura original</para></td>
    <td><para style="P9">Ingreso</para></td>
    <td><para style="P9">Egreso</para></td>
    <td><para style="P9">Ref. de pago</para></td>
    <td><para style="P9">Diario</para></td>
    </tr>
   </blockTable>
<section>
       <para style="P3">[[ repeatIn(partida.contralor_ids,'contralor_id') ]]</para>
   <blockTable colWidths="80,60,105,105,80,60,60,80,80" style="Tabla9">
        <tr>
          <td>
            <para style="P9">[[ contralor_id.invoice_id.number ]]</para>
          </td>
          <td>
            <para style="P9">[[ formatLang(contralor_id.fecha_pago,date=True)[:2] ]]/[[ formatLang(contralor_id.fecha_pago,date=True)[3:5] ]]/[[ formatLang(contralor_id.fecha_pago,date=True)[6:10] ]]</para>
          </td>
          <td>
            <para style="P9">[[  len(contralor_id.product_id.name) > 100 and contralor_id.product_id.name[:100] + ' ...' or contralor_id.product_id.name ]]</para>
          </td> 
          <td>
            <para style="P9">[[  len(contralor_id.partida_id.name) > 100 and contralor_id.partida_id.name[:100] + ' ...' or contralor_id.partida_id.name ]]</para>
          </td>
          <td>
            <para style="P9">[[ contralor_id.invoice_original_id.number ]]</para>
          </td>
          <td>
            <para style="P9">[[ ('%.2f' % contralor_id.ingreso).replace('.', ',') ]]</para>
          </td>
          <td>
            <para style="P9">[[ ('%.2f' % contralor_id.egreso).replace('.', ',') ]]</para>
          </td>
          <td>
            <para style="P9">[[ len(contralor_id.ref_pago) > 100 and contralor_id.ref_pago[:100] + ' ...' or contralor_id.ref_pago ]]</para>
          </td>
          <td>
            <para style="P9">[[ len(contralor_id.journal_id.name) > 100 and     contralor_id.journal_id.name[:100] + ' ...' or contralor_id.journal_id.name ]]</para>
          </td>
        </tr>
      </blockTable>
</section>
</story>
</document>

[[repeatIn(对象,'partida')]]
反向登记
佩里奥多:
[[partida.period\u id.name]]
莫奈达:
[[partida.currency\u id.name]]
米西河:
[[partida.company\u id.name]]
LÃneas de contralor
Factura
菲查德帕戈酒店
Cód./Obj。德尔加斯托
描述方
原稿
英格里斯
白鹭
参考德帕戈
迪亚里奥
[[repeatIn(partida.contralor\u id,'contralor\u id')]]
[[contralor\U id.发票\U id.编号]]
[[formatLang(contracolor\u id.fecha\u pago,date=True)[:2]]/[formatLang(contracolor\u id.fecha\u pago,date=True)[3:5]]/[formatLang(contracolor\u id.fecha\u pago,date=True)[6:10]]
[[len(contralor\u id.product\u id.name)>100和contralor\u id.product\u id.name[:100]+'…'或contralor\u id.product\u id.name]]
[[len(contralor\u id.partida\u id.name)>100和contralor\u id.partida\u id.name[:100]+“…”或contralor\u id.partida\u id.name]]
[[contralor\u id.发票\u原件\u id.编号]]
[[('%.2f'%contralor_id.Ingreo).替换('.',',')]]
[[('%.2f'%contralor\U id.EGERSO).替换('.',')]]
[[len(反面标识参考页面)>100和反面标识参考页面[:100]+'…'或反面标识参考页面]]
[[len(contralor\u id.journal\u id.name)>100和contralor\u id.journal\u id.name[:100]+“…”或contralor\u id.journal\u id.name]]

这可能会有帮助(),我尝试使用此链接(为字符串的值和行高添加限制),但错误仍然存在:“LayoutError:Flowable with cell(0,0)containing”with cell(0,0)containing\n'Factura'(738.0 x 1206.0)太大,在第2页模板u'first'的框架u'first'(738.0 x 488.0*)中,我发现了错误所在!!blockTable位于td标记内,似乎RML不允许您拆分td内的blockTable行。然后我将blockTable从另一个外部表的td中取出,问题得到解决。请更新您的答案,以供进一步参考。