odoo报表

本章主要介绍odoo中的报表的相关知识。

在前人的指导下, odoo中报表的开发的知识已经写好了。

同时,官方提供的文档中,也有这部分的内容,参见这部分

odoo中的报表主要有几种,Odoo中的excel,pdf和利用前端显示的报表(HTML)。

odoo报表开发的步骤:

  1. 获取数据
    1.1 数据获取主要通过函数来实现,注意数据获取的权限和数据是否为空,以及如何高效获取数据,以及识别数据的类型,如何处理这些数据。
  1. 渲染数据

数据的渲染的写法也是固定的,只不过是在填充不同的样式和不同的数据的展现方式而已。

数据的渲染,主要是格式的渲染,参照CSS的渲染方式来添加,主要的参数:

1
2
3
4
5
6
7
8
9
10
11
align:对其方式
valign:垂直对齐方式
border:框线边框的宽度
border_color:框线颜色
num_format:数据的格式化
'bold': False, 加粗,可以调节数字来改变框线的宽度
'border_color': '#000000', # black 框线的颜色
'fg_color': '#CCCCCC',单元格的背景色 浅灰色
'font_name': 'Arial',字体
'font_size': 10 字体大小
'pattern': 1, # solid 实线

odoo中excel报表的编写,调用的是xlwt的写法,参照xlwt的写法。

odoo中PDF的报表的编写类似,不过自己还没写过这种。

odoo中HTML报表的编写,是同样的写法,不过需要组织js。

  1. 组织结构(始终围绕菜单–动作–视图来写)

    3.1 编写数据选择的视图的编写,如下拉框,多选框等

    3.2 动作的编写,注意权限

    3.3 菜单的编写,注意权限

具体来看某个例子:

需求:要查看系统中业务伙伴中供应商的报表,需要查询供应商的详细信息。

选择的筛选逻辑:
选择公司和归口管理分类,有一定的限定条件

代码组织:

  1. 选择的字段的逻辑

  2. 查询数据

  3. 编写打印的动作

  4. 编写渲染的代码

渲染的代码主要分为两部分:
解析类(解析类的代码固定,几乎不需要改动)
主体类(就是如何把数据进行组织)
通过定义 generate_xlsx_report 方法,来获取数据,数据的组织,样式的编写。