2013-01-07 76 views
1

我需要我的表格是这样的: 让我们说它有两行。第一行有六列,第二行有两列(但整个行的长度当然是相同的)。我需要这个,因为我需要把下面一款产品的描述,它需要更多的空间比列的其余部分,以便图形它是这样的:RML - 具有不同列数和长度的表格行

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中的方法类似。

+0

您可以使用2个表格。表头第一个表格和第二个表格打印记录。 –

+0

我知道。一切正常与标题。所有这些列不是标题的一部分。我举了两行的例子,但也许我应该提到这些行需要依次重复,具体取决于产品编号。这就是为什么你不能使用不同的表格,因为它会输出整个第一个表格,然后输出另一个表格,但不会像应该那样进行组合。 – Andrius

回答

4

我设法解决使用此作为一个例子这样的问题: reportlab: setting colspan for td in rml

我需要在指定:

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

这意味着,第二行中从第二塔王建宇,山西高等学校最后一个将是合并为一个。

相关问题