1

我需要我的表是这样的:假设它有两行。第一行有六列,第二行有两列(当然整行的长度是相同的)。我需要这个,因为我需要在下面对产品进行描述,并且它需要比其他列更多的空间所以从图形上看,它看起来像这样:

1col|2col|3col|4col|5col|6col|
1col     |2col                |

正在使用报告标记语言来编写此表。

现在这个表看起来像这样:

<para style="terp_default_1">[[repeatIn(o.order_line,'line')]]</para>
      <blockTable colWidths="180.0,70.0,80.0,70.0,50.0,85.0" style="Table5">
        <tr>
          <td>
            <para style="terp_default_9">[[ line.name ]] </para>
          </td>
          <td>
            <para style="terp_default_Centre_9">[[ ', '.join(map(lambda x: x.name, line.tax_id)) ]]</para>
          </td>
          <td>
            <para style="terp_default_Right_9">[[ formatLang(line.product_uos and line.product_uos_qty or line.product_uom_qty) ]] [[ line.product_uos and line.product_uos.name or line.product_uom.name ]]$
          </td>
          <td>
            <para style="terp_default_Right_9">[[ formatLang(line.price_unit) ]]</para>
          </td>
          <td>
            <para style="terp_default_Centre_9">[[ formatLang(line.discount, digits=get_digits(dp='Sale Price')) ]]</para>
          </td>
          <td>
            <para style="terp_default_Right_9">[[ formatLang(line.price_subtotal, digits=get_digits(dp='Sale Price')) ]] [[ o.pricelist_id.currency_id.symbol ]]</para>
          </td>
        </tr>
        <tr>
          <td>
            <para style="terp_default_9">[[ line.product_id.product_tmpl_id.description ]]</para>
          </td>
        </tr>
</blockTable>

我想应该有一种方法来定义特定的行(tr 标签)以具有特定的列数。就像现在一样,列的长度和数量在“blockTable”标签中定义。或者最好的方法是将 1 和 2 合并为一列,将 3、4、5 和 6 列合并为第二列。

更新:我添加了 html 标签,因为它可能与 rml 中的方法相似。

4

1 回答 1

4

我设法以此为例解决了这个问题: reportlab: setting colspan for td in rml

我需要指定:

<blockTableStyle><blockSpan start="1,1" stop="4,1"/></blockTableStyle>

这意味着从第二列到最后一列的第二行将合并为一个。

于 2013-01-07T10:06:29.993 回答