本章主要介绍odoo中的报表的相关知识。
在前人的指导下, odoo中报表的开发的知识已经写好了。
同时,官方提供的文档中,也有这部分的内容,参见这部分。
odoo中的报表主要有几种,Odoo中的excel,pdf和利用前端显示的报表(HTML)。
odoo报表开发的步骤:
- 获取数据
1.1 数据获取主要通过函数来实现,注意数据获取的权限和数据是否为空,以及如何高效获取数据,以及识别数据的类型,如何处理这些数据。
- 渲染数据
数据的渲染的写法也是固定的,只不过是在填充不同的样式和不同的数据的展现方式而已。
数据的渲染,主要是格式的渲染,参照CSS的渲染方式来添加,主要的参数:
1 | align:对其方式 |
odoo中excel报表的编写,调用的是xlwt的写法,参照xlwt的写法。
odoo中PDF的报表的编写类似,不过自己还没写过这种。
odoo中HTML报表的编写,是同样的写法,不过需要组织js。
组织结构(始终围绕菜单–动作–视图来写)
3.1 编写数据选择的视图的编写,如下拉框,多选框等
3.2 动作的编写,注意权限
3.3 菜单的编写,注意权限
具体来看某个例子:
需求:要查看系统中业务伙伴中供应商的报表,需要查询供应商的详细信息。
选择的筛选逻辑:
选择公司和归口管理分类,有一定的限定条件
代码组织:
选择的字段的逻辑
查询数据
编写打印的动作
编写渲染的代码
渲染的代码主要分为两部分:
解析类(解析类的代码固定,几乎不需要改动)
主体类(就是如何把数据进行组织)
通过定义 generate_xlsx_report 方法,来获取数据,数据的组织,样式的编写。