0

假设我有这张桌子:

 <para style="terp_default_2">[[ repeatIn(o.invoice_line,'l') ]]</para>
      <blockTable colWidths="180.0,65.0,75.0,70.0,60.0,80.0" style="Table8">
        <tr>
          <td>
            <para style="terp_default_9">[[ format(l.name) ]]</para>
          </td>
          <td>
            <para style="terp_default_Centre_9">[[ formatLang(l.discount, dp='Account', digits=2) ]] </para>
          </td>
          <td>
            <para style="terp_default_Right_9">[[ formatLang(l.quantity, digits=2)]] [[ (l.uos_id and l.uos_id.name) or '' ]]</para>
          </td>
          <td>
            <para style="terp_default_Centre_9">[[ formatLang(l.price_unit, digits=2) ]]</para>
          </td>
          <td>
            <para style="terp_default_Centre_9">[[ ', '.join([ lt.name or '' for lt in l.invoice_line_tax_id ]) ]]</para>
          </td>          
          <td>
            <para style="terp_default_Right_9">[[ formatLang(l.price_subtotal, dp='Account', digits=2, currency_obj=o.currency_id) ]]</para>
          </td>
        </tr>
      </blockTable>

该表正常生成和打印发票行,但如果将它们分配给所谓的“组”,我需要将它们分组到“组”中。

我的意思是,如果订单行被分配了“分配合作伙伴”(销售订单中有这样的字段,我也会在发票中添加),那么它们就会被添加到该组中。为了更好地理解它,让我们看一下这个例子:

现在使用上面编写的代码,发票将打印如下:

product1 discount1 quantity1 priceu1 taxes1 prices1
product2 discount2 quantity2 priceu2 taxes2 prices2
product3 discount3 quantity3 priceu3 taxes3 prices3

现在,如果将这些行分配为“分配合作伙伴”,例如将分配第一行和第二行,并将分配allot_p1第三行allot_p2(假设这些是分配合作伙伴的名称)。那么它应该像这样打印:

allot_p1
product1 discount1 quantity1 priceu1 taxes1 prices1
product2 discount2 quantity2 priceu2 taxes2 prices2
allot_p2
product3 discount3 quantity3 priceu3 taxes3 prices3

我想象如何为每一行显示分配合作伙伴,如下所示:

allot_p1 product1 discount1 quantity1 priceu1 taxes1 prices1

allot_p1 product2 discount2 quantity2 priceu2 taxes2 prices2

allot_p2 product3 discount3 quantity3 priceu3 taxes3 prices3

这很容易,因为我只需要创建额外td的 . 但是这种方法看起来不太好,所以我认为有可能以某种方式自动对行进行分组并像第二个示例中那样打印它?

4

0 回答 0