2014-11-04 57 views
0

我必須打印一張可能佔用多個頁面的表格,具體取決於它的大小。對於這一點,我做了一個打印行逐一但是,當它接近頁面的最後一個blockTable一個repeatIn,OpenERP的顯示以下錯誤消息:openerp RML,如何繼續在新頁面中打印表格行?

"Print error The document you are trying to print contains a table row that does not fit on one page. Please try to split it in smaller rows or contact your administrator."

如何解決這個問題?

P.S .:我試着用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> 
+0

這可能會幫助(https://www.odoo.com/forum/help-1/question/if-prodcut-information-is-too-long-當時RML-PDF報告,有-問題-37241) – 2014-11-05 04:14:13

+0

我試着用這個鏈接(增加一個限制字符串的值和行高度)和錯誤仍然存​​在: 「LayoutError:可流動與單元格(0,0)包含 「與單元格(0,0)包含\ n'<段落在0x7f94103df368> Factura'「(738.0 x 1206.0)在頁面2上u'first'(738.0 x 488.0 *) u'first' 「 – 2014-11-05 13:57:09

+0

我發現錯誤在哪裏! blockTable在td標籤內,看起來RML不允許你分割td內的blockTable行。然後我把blockTable放到另一個外部表的td中,問題就解決了。 – 2014-11-05 14:49:46

回答

0

我發現在那裏有錯誤! 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>