3

有没有办法在openerp6.0的rml模板中换行。我已经定义了一个列宽来获取openerp的销售订单模板中的产品名称。但是当添加没有空格的长名称时,它只是穿过rml模板中的列单独报告。任何人都可以为这个问题提出解决方案。

4

3 回答 3

3

我不认为这是开箱即用的支持。我建议您向要显示的对象添加一些方法,这些方法将提供包装到给定列长度的值(小心,如​​果您使用比例字体,这会变得非常棘手,最好坚持使用固定宽度)。

Python 标准库的textwrap模块可用于编写这些方法。

于 2012-04-24T07:07:52.470 回答
2

只需将单元格的内容包含在para标记中即可。这是一个例子:

<!DOCTYPE document SYSTEM "rml.dtd" >
<document filename="wraps.pdf">
  <template showBoundary="0">
    <pageTemplate id="main">
      <pageGraphics />
      <frame id="first" x1="150" y1="400" width="250" height="400" />
    </pageTemplate>
  </template>
  <stylesheet>
    <blockTableStyle id="blocktablestyle4">
      <!-- show a grid: this also comes in handy for debugging your tables.-->
      <lineStyle kind="GRID" colorName="green" thickness="1" start="0,0" stop="-1,-1" />
    </blockTableStyle>
    <paraStyle name="textstyle1" fontName="Helvetica" fontSize="9" textColor="blue" />
  </stylesheet>
  <story>
    <blockTable style="blocktablestyle4" colWidths="2cm,2cm">
      <tr>
        <td>cell A</td>
        <td>This doesn't wraps.</td>
      </tr>
      <tr>
        <td>cell C</td>
        <td>
          <para style="textstyle1">to see how it works. This is yet more long text to demonstrate wrapping through "para" tag.</para>
        </td>
      </tr>
    </blockTable>
  </story>
</document>
于 2012-04-25T16:30:40.220 回答
0

我建议您像这样使用 parawrap 标签:

<parawrap>[[o.name]]</parawrap>

当您显示对象的名称时使用此示例。

于 2014-05-13T10:37:32.703 回答