OpenERP 7 默认值详解
-
来自先安博客: http://cn.openerp.cn/openerp-7-set-dafault/
[size=12pt]1.激活开发者模式[/size]
在OpenERP 7目前的版本中,设置默认值必须进入开发者模式。
[size=12pt]2.设置默认值
[/size]
然后在你要配置默认值的表单里面,先填入对应的数据然后,在表单左上方的调试视图里面选择设置默认值。
[attachimg=1]
默认值的配置界面很直观。
[attachimg=2]
默认:就是你要设置的默认值,下拉列表里面已经根据你当前表单显示出相应的字段和值,你只需要选取
条件: 就是你的默认值生效的条件。例如下图意思就是,当产品类别是服务的,产品类型默认值为服务。(这里涉及到一个 https://bugs.launchpad.net/openerp-web/+bug/1112232 不过在最新的版本里面已经修复好了)。
[attachimg=3]
怎么样的字段才能成为默认值的条件呢?字段定义里面的 change_default属性为True。<br />'categ_id': fields.many2one('product.category','Category',<br />required=True, change_default=True, domain="[('type','=','normal')]" ,<br />help="Select category for the current product"),<br />
仅用于你个人/所有用户:此默认值是只对当前用户生效还是对于所有用户生效。
[size=12pt]3.删除默认值[/size]
到 设置->技术->动作->用户设定默认值 就能看到目前已经设定的默认值。
[size=12pt]4.更多默认值[/size]
OpenERP的默认值还可以通过代码的方式来实现。例如下图就是产品模块的默认值<br /><br />_defaults = {<br /> 'company_id': lambda s,cr,uid,c: s.pool.get('res.company')._company_default_get(cr, uid, 'product.template', context=c),<br /> 'list_price': 1,<br /> 'cost_method': 'standard',<br /> 'standard_price': 0.0,<br /> 'sale_ok': 1,<br /> 'produce_delay': 1,<br /> 'uom_id': _get_uom_id,<br /> 'uom_po_id': _get_uom_id,<br /> 'uos_coeff' : 1.0,<br /> 'mes_type' : 'fixed',<br /> 'categ_id' : _default_category,<br /> 'type' : 'consu',<br /> }<br />
问题:如果我既配置了_defaults 又在界面上配置了默认值那么怎么办?
答案:界面的优先级大于代码里面的。
问题:如果在界面上配置了多次默认值,那么会取哪个默认值呢?
答案:取最新的。