OpenERP 对象
所有ERP的数据通过对象进行访问,如:有一个 res.partner 对象 要访问 合作伙伴们(partners),一个账户.发票(account.invoice )的发票相关数据,等等。
请注意每种类型的资源都有一个对象。我们使用 res.partner 对象来管理所有的合作伙伴而不是每个对象自己管理自己。当我们谈到 "面向对象"这个词时指的是高度抽象的对象。
所有对象的方法都有一个参数 “ids”,它指定了本方法必须应用哪个资源(如哪个伙伴),精确的说本参数包含了方法要使用的某种资源的id列表,如有二个伙伴其ID分别为 1, 5 ,我们要调用 res_partner 对象的 send_email 方法, 可这样来调用:
res_partner.send_email(... , [1, 5], ...)
在本文的后面会有跟精确的语法调用说明。
下面介绍如何定义一个新的对象,用不同的方式定义对象。对开发者:
-
OpenERP "对象" 在面向对象的程序设计中通常称为类。
-
A OpenERP "资源" 在面向对象程序设计中统称为对象。
在OE中编程,由于使用 python语言这会有一点而混乱 如 python 有对象、实例....。幸运的 OE的资源使用 pythone的 browse 方法可转换为 python 对象。
关于 ORM -模型
OE的中心部分为 ORM 即 对象关系映射。OE中,数据模型用 python 的类来描述和加工,用 ORM为开发者提供尽可能无裂纹和透明的关系数据库访问(PostgreSQL), 也提供对象的持久化操作。
OpenERP的对象属性
要python定义一个新的对象,先定义一个 python 类,然后实例化类,类必须 继承 osv 类,osv类在 osv模块中。
按如下方式定义类:
class name_of_the_object(osv.osv):
_name = 'name.of.the.object'
_columns = { ... }
...
name_of_the_object()
在类中要声明(定义)一些字段,其中 _name 和 _columns 二个字段是必须的,其他可选,osv 中预定义的字段如下:
定义是否由PostgreSQL自动生成表,当对象从数据库视图读取时候,设置为 False 是很有用的。请参考“从PostgreSQL生成报表”。
对象的字段名。
对象的约束。
对象的 SQL 约束。
对象的某些字段的缺省值定义。
定义当前对象从 osv 对象继承的名字。
从 osv 对象类中继承的属性列(多重继承),如:{'name_of_the_parent_object': 'name_of_the_field', ...},缺省值为{}。
定义是否做写日志,如 True, 则 表中自动加:create_uid(创建者id), create_date(创建日期), write_uid(修改者id), write_date(修改日期)。
对象的名称。
列名称,排序结果,缺省值为: id 。
_order = "name"
_order = "date_order desc"
资源保存名称,缺省值为 'name'。注意:方法 name_get 简单的返回本自动的内容。
定义产生唯一记录ID 的序列,缺省值:空
当 _auto=Ture 时,在数据库中创建对象(表)之后运行的 SQL 命令。
表名称,缺省值为 : _name 字段定义值,将 点 替换为 下划线 后的字符串作为表名称。
对象继承 _inherit
对象可从指定的模块获得继承,要增加、修改一些字段可用继承方式,代码如下:
_inherit='object.name'
对象的扩展:
有二个方式来实现本方式继承,二种方式都会导致新类的对象,他具有父类的字段、方法外,增加了自己的字段和方法。注意: _name 值的不同。
示例 1: ( _name == _inherit )
class custom_material(osv.osv):
_name = 'network.material'
_inherit = 'network.material'
_columns = {
'manuf_warranty': fields.boolean('Manufacturer warranty?'),
}
_defaults = {
'manuf_warranty': lambda *a: False,
}
custom_material()
本例中 custom_material 对象 加了 字段 manuf_warranty 到对象 network.material,即:在 本类的新实例中 , manuf_warranty 字段 可通过父类 访问。 在OO 中本继承称 类继承,子类继承了父类的字段和方法。
示例 2: ( _name = 'other.material)
class other_material(osv.osv):
_name = 'other.material'
_inherit = 'network.material'
_columns = {
'manuf_warranty': fields.boolean('Manufacturer warranty?'),
}
_defaults = {
'manuf_warranty': lambda *a: False,
}
other_material()
本例中,other_material 拥有 network.material 的所有字段,同时也定义了一个新的字段 manuf_warranty。这些字段将作为表 other.material 的字段。父类不能访问子类的属性和方法。
本方式继承称为“原型继承”(e.g. Javascript), 因为子类复制了父类的所有字段,子类可充当父类。
《---续---》
相关推荐
1. **用户手册**:详细介绍模块的硬件连接、软件配置以及API接口使用方法。 2. **示例代码**:提供编程示例,帮助快速上手。 3. **驱动程序**:针对不同平台的驱动程序,使模块能在各种系统环境下工作。 4. **开发...
1. **OE-Mail Recovery的基本功能**: - **邮件恢复**:OE-Mail Recovery能够扫描损坏或无法访问的.dbx文件,这些文件是Outlook Express存储邮件的标准格式。 - **深度扫描**:该工具深入检查.dbx文件,尝试恢复...
1. **BitBake**:这是OpenEmbedded的核心组件,它负责解析食谱(recipes),下载源代码,编译,打包,并处理构建过程中的依赖关系。 2. **Yocto Project**:这是一个基于OpenEmbedded的更大项目,旨在提供一套工具...
1. OE-Mail Recovery.chm:这是一个帮助文件,以CHM(Compiled HTML Help)格式提供详细的软件使用指南和参考信息,用户可以通过查阅它来了解如何操作软件和解决特定问题。 2. OEMailRecovery.exe:这是OE-Mail ...
OE-Mail Recovery是一款专门针对Windows XP操作系统中Outlook Express邮件客户端的修复与恢复工具。这款软件设计的目的是帮助用户在遇到意外情况,如系统崩溃、病毒攻击或者错误操作导致的邮件丢失时,能够尽可能地...
OE-Mail Recovery是一款专门针对Outlook Express(OE)邮箱数据恢复的工具。...同时,对于那些依赖电子邮件进行业务沟通的个人和企业,了解并掌握如何使用OE-Mail Recovery这样的工具,是非常有价值的技能。
nevion 3GHD-OE-SFP 3GHD-EO-SFP光端机模块
nevion光端机系列
1. **启动软件**:安装并运行OE-Mail Recovery,选择要扫描的DBX文件或OE的存储位置。 2. **扫描**:选择合适的扫描模式,开始扫描过程。 3. **预览邮件**:扫描完成后,软件将列出可恢复的邮件,用户可以逐个预览。...
"oe-1.1.0"子目录中可能包含了OpenEvidence 1.1.0的所有源代码文件,这包括C++源码、配置文件、库依赖和构建脚本等。源代码的结构一般遵循模块化设计,便于理解和维护。例如,可能会有单独的目录用于存放解析器模块...
最好用的邮件系统崩溃找回邮件的软件,可以把邮件数据库文件转化为eml文件供查看,并可以把邮件另存出来再导入到OE中去
标题 "OE-Mail Recovery v1.7.20.45有注册码" 指的是一款专门用于恢复和修复Outlook Express(OE)DBX文件的软件工具。这个版本号1.7.20.45表明了软件的更新状态,而"有注册码"意味着用户可以使用提供的注册码来激活...
《AEC - Q102-003:2022 光电多芯片模块 (OE-MCM)》是针对光电多芯片模块设计、制造和测试的一份重要标准文档,由国际汽车电子委员会(AEC)发布。这份25页的完整英文电子版详细阐述了OE-MCM在汽车电子应用中的规范...
1. **模块化构建**:oe-simplebuild 支持模块化构建,这意味着它可以处理各种模块化规范,如 CommonJS、ES6 模块等。通过将项目拆分为可重用的模块,可以提高代码的可维护性和复用性。 2. **预处理器支持**:oe-...
在本项目中,我们主要探讨的是使用MATLAB进行模型预测控制(MPC)与线性二次调节器(LQR)控制器的设计与仿真,应用于ARMAX(自回归移动平均指数平滑模型)和OE(输出误差)模型。这些是控制系统设计中的重要概念,...
基于openEuler20.03TLS版本编译openGauss源码时需要的软件包: 1. openeuler-lsb-5.0-1.oe2203.src.rpm 2. git-lfs-linux-arm64-v3.3.0.tar.gz 3. flex-2.5.39.tar.bz2
1. **启动软件**:运行OE-Mail Recovery v1.7.20.45.exe文件,安装并启动应用程序。 2. **选择受损文件**:在软件界面中,用户需要指定受损的.dbx文件位置。 3. **扫描与分析**:软件将对选定的.dbx文件进行深度扫描...
1. **启动OE-Mail Recovery**:用户首先需要运行OE-Mail Recovery应用程序,选择要恢复的.dbx文件。 2. **扫描与分析**:程序会对选定的.dbx文件进行深度扫描,查找可能仍然可读的电子邮件数据。 3. **预览邮件**:...