2012-05-10 25 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」,則會發生錯誤。另外,例如,如果我在之內有一個標籤,然後在最後出現標籤,我嘗試刪除,但出現錯誤。 –