2012-05-10 22 views
0

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

我曾尝试在“pto”中放入几个“para”元素,然后执行“removeParentNode('pto')”,但它没有任何区别。 removeParentNode不能在“pto”元素上工作,或者它可能只是删除“pto”并将“para”子元素保持原样?

谢谢!

回答

3

您应该能够在section元素中包装几个para元素并删除该部分。一个例子见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> 
+0

感谢您的指针!我无法在RML规范中找到“section”标签:http://www.reportlab.com/docs/rml.dtd 我也成功地包装“pto”元素并将其删除,但只有在删除元素放置在“pto”内容的开头。如果已经有一个“para”标签输出,然后我尝试删除包装“pto”,则会发生错误。另外,例如,如果我在之内有一个标签,然后在最后出现标签,我尝试删除,但出现错误。 –