如何删除OpenERP RML模板中的一组节点?

时间:2012-05-10 11:40:58

标签: python openerp rml

在RML模板中,是否可以一次删除多个节点?或者是否可以将多个节点分组为一个,然后删除整个组?

我尝试在“pto”中放入几个“para”元素,然后执行“removeParentNode('pto')”,但它没有任何区别。 removeParentNode对“pto”元素不起作用,或者它可能只删除“pto”并保留“para”子元素吗?

谢谢!

1 个答案:

答案 0 :(得分:3)

您应该能够在para元素中包含多个section元素并删除该部分。有关示例,请参阅picking report

<section>
  <para style="terp_default_2">[[ repeatIn([line for line in picking.move_lines if ((line.state == 'confirmed' or line.state=='done' or line.state=='assigned') and not line.scrapped)],'move_lines') ]]</para>
  <para style="terp_default_2">[[ (picking.move_lines!=[] and removeParentNode('para')) or removeParentNode('section')]]</para>
  <blockTable colWidths="256.0,74.0,58.0,60.0,73.0" style="Move_Line_Contect_Assign_State">
    <tr>
      <td>
        <para style="terp_default_9"><font face="Helvetica" size="9.0">[ [[ (move_lines.product_id.default_code) or removeParentNode('font') ]] ]</font> [[ move_lines.product_id.name ]] [[ move_lines.product_id.variants or '']] </para>
      </td>
      <td>
        <para style="terp_default_Centre_9">[[ (move_lines.prodlot_id and move_lines.prodlot_id.name) or '' ]]</para>
      </td>
      <td>
        <para style="terp_default_9">[[ move_lines.state ]]</para>
      </td>
      <td>
        <para style="terp_default_Right_9">[[ (move_lines.location_id and move_lines.location_id.name) or '' ]] </para>
      </td>
      <td>
        <para style="terp_default_Right_9">[[ formatLang(move_lines.product_qty) ]] [[ move_lines.product_uom.name ]]</para>
      </td>
    </tr>
  </blockTable>
</section>