问:请帮助我解决错误:如何解决在OpenErp-8的单个表单视图中显示多个计算字段。
答:您可以将字段设置为函数类型
在odoo-8.0中,有compute属性可以使字段成为函数
例如:seat_reserved = fields.Integer(oldname ='register_current',string ='Reserved Seats',store = True,readonly = True,compute ='_ compute_seats')
@ api.multi
@ api.depends('seats_ max','registration_ ids.state','registration_ ids.nb_ register')
def _compute_ seats(self):
“”“确定保留,可用,保留但未确认和使用的座位。”“”
#将字段初始化为0
对于自身事件:
event.seats_未确认= event.seats_保留= event.seats_已使用= 0
#按事件和州汇总注册
如果self.ids:
状态_字段= {
'draft':'seats_ confirmed',
'open':'seats_ reserved',
'done':'seats_ used',
}
查询=“”“ SELECT事件_ id,状态,总和(nb_ register)
来自事件的注册
事件_ ID IN%s和状态IN(“草稿”,“打开”,“完成”)
GROUP BY event_ id,状态
“”
self。_ cr.execute(查询,(tuple(self.ids),))
对于事件ID,状态,自我中的num。&cr.fetchall():
event = self.browse(event_ id)
event [state_ field [state]] + = num
#个计算席位可用
对于自身事件:
event.seats_ available = \
event.seats_ max-(保留的event.seats_使用的event.seats_)\
如果event.seats_ max> 0,否则为0
您可以在event.py文件的事件模块中看到