Openerp 7基于此要求销售订单行剩余天数始终计算开始日期减去今天。使用的功能字段和on_change功能: -
def _remaining_days(self, cr, uid, ids, field_name, arg, context=None):
res = {}
if not ids:
return {}
for val in self.browse(cr, uid, ids, context=context):
result = datetime.datetime.strptime(val.start_date, '%Y-%m-%d') - datetime.datetime.strptime(current_date, '%Y-%m-%d')
res[val.id] = result.days
return res
'remaining_days': fields.function(_remaining_days, method=True, string='Remaining days', type='integer'),
def onchange_holddays(self, cr, uid, ids, start_date, context=None):
result = {}
context = context or {}
if release_date:
current_date = time.strftime('%Y-%m-%d')
remaining = datetime.datetime.strptime(release_date, '%Y-%m-%d') - datetime.datetime.strptime(current_date, '%Y-%m-%d')
result['remaining_days'] = remaining.days
return {'value': result}
在订单行剩余天数值未自动更新。一旦保存主销售订单记录,则只更新剩余天数值。如何在保存记录之前显示列表视图中的剩余天数值。 硝酸钾
答案 0 :(得分:1)
函数字段仅在保存记录时执行,因此在此之前您将无法获取这些值。使用On_change事件并在运行时显示值,或使用向导接受此类数据并将其保存在主窗体上。