我們在使用QWeb的時候,可以先去了解HTML的寫法,不用太深入有概念就可以了。當我們想要在開發odoo的時候,增加輸出報表的時候,我們可以使用T-tages,以下是使用範例hello.xml
:
<odoo>
<template id='libaray_report'>
<t t-call ='web.html_container'>
<t t-foreach='library_book' t-as='doc'>
<t t-call='external_layout'>
<div class='page'>
<h1>Hello</h1>
</div>
</t>
</t>
</t>
</template>
<record id='libaray_report_action' model='ir.action.report'>
<field name='name'>library report action</field>
<field name='model'>library</field>
<field name='report_type'>qweb_pdf 或 qweb_html</field>
<field name='report_name'>Library.library_report</field>
<field name='report_file'>Library.library_report</field>
<field name='print_report_name'>library_detail_report</field>
<field name='binding_model_id' ref='library.model_book'/>
<field name='binding_type'>report</field>
</record>
</odoo>
這段會在輸出PDF時顯示Hello在報表上,讀者會發現這段程式碼有t-call
、t-foreach
、t-as
這些就是T-tag,下面就是在使用report時所需要的action,之後都會詳細的說明,讓我們先把基本的設定完成吧。
在我們想讓我們的odoo輸出報表,如果單單只是上面的範例是沒辦法輸出的,我們必須要先將基本的資料湊齊,收先我們要將hello.xml
寫入__manifest__.py
當中,而hello.xml
是放在report資料夾當中
.
'data':[
.
.
.
'report/hello.xml',
]
.
設定完之後,我們透過上面的action <field name='binding_model_id' ref='library.model_book'/>
就會出現在畫面當中的action按鈕了。