本文主要介紹odoo打印報表定制的方法及代碼示例
從odoo8.0開始使用基於Qweb,Bootstrap和Wkhtmltopdf的全新報表引擎。一份報表由兩個元素構成:
1 在ir.actions.report.xml中定義報表記錄,使用定義報表生成的參數。
2 Qweb view定義報表樣式
Report title
這里docs是從context發送過來的變量,代表報表內容記錄。docs的作用其實是 ,比如你在界面上選定了幾條相關模型的記錄,然后可以通過docs訪問這些記錄數據,相當於模型方法中的recordset賦值給 docs = self,然后可以在qweb里讀取。
另外還有user代表打印此報表的人
創建的報表可以通過html和pdf格式直接訪問
http://localhost:8069/report/html/account.report_invoice/1
http://localhost:8069/report/pdf/account.report_invoice/1
注意
生成pdf需要服務端安裝wkhtmltopdf程序, 有時候打印的報表樣式丟失,需要正確設置相關參數。另外還會遇到一個樣式bug。
report.url = http://localhost:8069 如果你的odoo有使用反向代理,你可以設置url路徑為本地訪問。web.base.url.freeze=True 樣式路徑通過web.base.url參數取得,但是有時在不同用戶登錄導致其發生變化,取到不一樣的值,可以鎖住設定。