跳至内容

Odoo(OpenERP) 技术培训

一、基本概念

在 Odoo(OpenERP)中,对象(Object)也被称为 Model,类似于我们通常所说的类(Class)。每个对象对应数据库中的一个数据表。例如,业务伙伴对象的名称是 “res.partner”,对应的表名是 “res_partner”。表中的一条记录,即对象的一个实例,被称为资源(Resource)。

相关数据表说明

  • ir_model:存储所有模型(Model)的信息,每个模型对应数据库中的一个表。
  • ir_model_fields:存储模型的字段信息,包括字段名称、类型、所属模型等。
  • ir_ui_view:存储视图的定义,视图用于展示数据和用户交互。
  • ir_ui_menu:存储菜单项的信息,用于构建 Odoo 的菜单系统。
  • ir_act_window:存储窗口动作的配置,定义了用户点击菜单时打开的视图和相关设置。
  • ir_values:存储各种动作(Action)的配置,包括触发条件、关联的模型和动作类型等。

Action 的配置示例

在表 ir_values 中,字段 model 和 res_id 表示该 Action 的触发菜单是 ir_ui_menu 表中 id = 104 的菜单项,即“请假单”菜单。字段 value 表示该 Action 触发的动作,例如 value='ir.action.act_window,93' 表示点击菜单时触发表 ir_action_act_window 中 id = 93 的 Action,此 Action 为“请假单”动作。

OE 前台操作对应的背后动作

  1. 读取菜单信息:从表 ir_ui_menu 中读取菜单信息,并显示在界面上。
  2. 找到对应 Action:当用户点击菜单时,从表 ir_values 中找到该菜单对应的 Action。
  3. 获取关联的对象和视图:从表 ir_act_window 和 ir_act_window_view 中,找到 Action 关联的对象和视图。
  4. 构建 SQL 访问对象:从表 ir_model 和 ir_model_fields 获取对象和字段信息,构建访问对象(本例是 x_qingjd)的 SQL 语句。
  5. 构造画面:从表 ir_ui_view 中获取视图信息,尤其是视图结构 XML,根据视图结构 XML 构造画面。
  6. 显示数据:将对象数据显示在视图画面上。

二、工作流

状态图和活动图是工作流的两个方面。状态图关注信息的变化,活动图关注处理步骤。二者是等价的,可以互相转换。从一个状态到另一个状态,或者从一个活动到另一个活动,称为迁移(Transitions)。在请假申请工作流中,有 3 个迁移。迁移分为出迁移(Outgoing transitions)和入迁移(Incoming transitions)。从活动 A 到活动 B 的迁移,对 A 来说是出迁移,对 B 来说是入迁移。

迁移相关概念

  • 触发(Trigger):导致迁移发生的事件,最典型的触发事件是用户按下某个按钮。
  • 迁移条件(Condition):迁移发生的条件,只有当条件满足时,迁移才会发生。
  • 角色(Role):定义了哪些用户或用户组可以执行该迁移。

三、报表

OpenERP 报表有两种类型:基于 RML 的和基于 XSLT + XML 的。

RML 报表

开发时需要手工创建 RML 文件,RML 文件类似于 HTML 文件,定义了报表的显示格式。创建好 RML 文件后,需要将其转换为 PDF 文件以预览报表效果。

XSLT + XML 报表

在 OpenERP 的内部处理中,先将 XSLT + XML 转换为 RML 文件,再转换成 PDF 报表。开发过程中,需要工具将 XSLT + XML 转换为 RML,再转换成 PDF 文件,以预览报表效果。

Odoo(OpenERP) 技术培训
6776, Administrator 2011年6月22日
标签
存档