1、构建带有页签的前端视图的xml结构。
先构建出整个的结构,一个tree视图和一个form视图,tree视图作显示用,只显示少数数据项。如图1所示:
在form视图中添加页签等其他部分,主要结构为header和sheet两部分,header放置按钮和显示单据的状态,sheet中显示数据。使用group分组,使表头分为两部分,如图2所示:
实现视图的页签功能需要使用notebook标签,在notebook标签中使用page标签,一个page标签就是一个页签,在相应的page标签中显示相应的字段。页签中有tree样式和form样式,form样式的字段存在于主表中,定义视图时直接在xml中定义字段即可,tree样式的数据单独存在于一张子表中,想要获取到字段需要在主表中定义一个o2m字段链接到子表中相应的m2o字段,以此来获取子表中定义的字段,使其在同一notebook中显示出来。xml结构如图3所示:
2、odoo中常用的方法
def create(self, cr, uid, vals, context={})
向数据库中插入一条新的记录
def write(self, cr, uid, ids, vals, context={}):修改一个或多个记录
ids: 待修改的记录的id列表。
vals: 待保存的字段新值,是一个字典,形如: {'name_of_the_field': value, ...}
修改成功,则该函数返回True,否则返回False
def unlink(self, cr, uid, ids):删除指定id集合的记录
ids: 待删除的记录的id列表。
删除成功,则该函数返回True,否则返回False
def read(self, cr, uid, ids, fields=None, context={}):
返回读取结果的字典列表,形如 [{'name_of_the_field':value, ...}, ...],列表(list)中每个元素是字典(dict),每个字典保存了对应记录的指定字段值
ids: 待读取的记录的id列表,形如[1,3,5,...]
fields (optionnal): 待读取的字段值,不指定的话,读取所有字段。
def search(self, cr, uid, args, offset=0, limit=2000)
def browse(self, cr, uid, select, offset=0, limit=2000)
search和browse都是搜索,search可以定义搜索条件,根据这些条件进行搜索,而browse是获取id的值,根据这个值进行搜索,并返回一个对象