Odoo11添加打印选项及自定义报表

       今天研究Odoo中选中一条数据进行打印,如何创建对应的打印按钮,以及点击相应的按钮显示相应的要打印的界面,具体如下图所示:

Odoo11添加打印选项及自定义报表_第1张图片

Odoo11添加打印选项及自定义报表_第2张图片

 

首先需要在模块中创建report目录,例如官方文件所示:

Odoo11添加打印选项及自定义报表_第3张图片     Odoo11添加打印选项及自定义报表_第4张图片

       其实点击看看官方的模块式怎么写的就大概明白怎么回事了。这里我用自己的模块大概说一下,也方便以后忘记了可以随时回来看到,report目录结构都基本类似。在bn_oracle_report_pzqweb.py中写了个测试的

Odoo11添加打印选项及自定义报表_第5张图片

其中get_report_values()方法是必须写的,因为在对应的xml文件中需要用到报表所需的数据,方法中的docids就是你选择需要打印的数据的id集合。

用self.env.cr.execute()这个方法执行了原生的SQL语句。

return self._cr.dictfetchall() #返回字典型结果集。

return self._cr.fetchall() #返回列表型结果集。

bn_oracle_report_pzqweb.xml中


    

string: 在打印按钮那里的显示名称 

id:外id标识

name: 完整主模板名称 模块名.主板模名称  用于管理和调用

file: 完整模板文件名 模块名.模板文件名  用于更好地关联模板

model:相关的模型显示在那个模块进行打印报表 通常在各视图中的打印那里会出现

report_type: 报表类型 是 qweb-pdf 或 qweb-html

       还要有一个对应的报表模板,即点击凭证报表测试后显示的要打印的界面。可以看到其中用到head.xxx,lines_data.xxx都是同过之前py文件获得并返回的数据。


    

到这里基本就ok了,可能写的比较模糊,刚开始写博客,有什么疑问可以大家讨论~

对了,还可以设置打印的纸张,这个可以再odoo运行后用管理员登录,然后选择激活开发者模式,在设置中报告中设置。

Odoo11添加打印选项及自定义报表_第6张图片

Odoo11添加打印选项及自定义报表_第7张图片

        可以在纸张类型中选择想打印的纸张格式,纸张格式也可以用自带的也可以自己设置,但只有在报表类型选择为PDF时才显示,html类型想用A4横向的话可以先切换为PDF类型,选择了对应的纸张格式后再把报表类型改回html也可生效。

你可能感兴趣的:(Odoo,odoo打印,odoo报表)