----------
更新时间:
18:06 2016-09-18 星期日
18:13 2016-04-05 星期二
10:31 2016-03-01 星期二
----------
* odoo8 采用是Qweb报表,废弃了7.0中的RML报表
* 创建业务报表
报表是通过Qweb的技术来建立的
#一般报表结构如下:
purchase
├ views
│ ├ report_purchaseorder.xml (报表模板)
│ ├ report_purchasequotaion.xml
├ purchase_report.xml (模块中报表定义 模块名_report.xml)
当要建立报表时,就按这样的结构来创建,
#注意,报表,用到了wkhtmltopdf依赖
http://wkhtmltopdf.org/downloads.html wkhtmltopdf-0.12.1 版本
$ sudo apt-get remove --purge wkhtmltopdf
$ cd /tmp
$ wget http://downloads.sourceforge.net/project/wkhtmltopdf/archive/0.12.1/
wkhtmltox-0.12.1_linux-trusty-adm64.deb
$ sudo dpkg -i wkhtmltox-0.12.1_linux-trusty-amd64.deb
#报表定义purchase_report.xml:(注册报表)
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<report
string="Purchase Order"
>
.example-css-class {
background-color: red;
}
</style>
</xpath>
</template>
#自定义报表
默认有 get_html方法来调用报表传递数据,这时,我们只要定义模型时,重写这个方法就
可以完成自定义报表输出
from openerp import api, models
class ParticularReport(models.AbstractModel):
_name = 'report.module.report_name'
@api.multi
def render_html(self, data=None):
report_obj = self.env['report']
report = report_obj._get_report_from_name('module.report_name')
docargs = {
'doc_ids': self._ids,
'doc_model': report.model,
'docs': self,
}
return report_obj.render('module.report_name', docargs)