Odoo中文社区可以通过以下三个域名访问:shine-it.net , odoocn.org,odoo.net.cn

原论坛用户的基本信息和发帖这里都予以保留,请注意:原论坛用户无需重新注册新用户,但是您的密码需要重置

开发人员可以登录gitter讨论组: http://gitter.im/odoo-china/Talk, 需要github账号

如果您登录系统碰到问题,请在微信公众号留言:

【分享】在form里嵌套tree列表



  • 公司打算让我把日常品质报表整合在OE里,但是form视图不符合公司报表格式,tree视图符合但是tree视图下不可编辑,经过@乌鲁木齐-兰迪的提示,可以用form里嵌套tree视图实现。效果图见附件。<br />具体实现方法是:在form视图中插入一个tree视图代码格式如下:<br />[code]                          <form string="报表表单" version="7.0"><br /> <group><br /> <field name="name"/><br /> </group><br /> <field name="smt_qcbaobiao"><br /> <tree string="smt_qc" editable="bottom"><br /> <field name="date"/><br /> <field name="inspector"/><br /> <field name="banbie"/><br /> <field name="class"/><br /> <field name="model"/><br /> <field name="component_number"/><br /> </tree><br /> </field><br /> </form><br />[/code]<br />可以看到,在form里插入了tree视图。经武汉-茶隼提示,要嵌套tree,必须先把tree嵌套在field里,而且field字段是many2one类型的。上式中用了<field name="smt_qcbaobiao">这个命令定义的,这样视图部分就解决了。<br />而定义smt_qcbaobiao字段的代码如下:<br />[code]class lc_baobiao_smtceshi(osv.osv):<br />    _name = 'lc.baobiao.smtceshi'<br />    _columns = {<br />        'name':fields.char( u'月份',size=64,select=True),<br /> 'smtceshi_qcbaobiao':fields.one2many('lc.baobiao.smtceshishuju','smtceshi_qcbaobiao_id','smtceshi_qc'),<br /> }<br />lc_baobiao_smtceshi()[/code]<br />用到了one2many,对应的many2one代码如下:<br />[code]class lc_baobiao_smtceshishuju(osv.osv):<br />    _name = 'lc.baobiao.smtceshishuju'<br />    _columns = {<br /> 'date':fields.char(u'日期',size=64,select=True),<br /> 'inspector':fields.char(u'检查员',size=64,select=True),<br /> 'banbie':fields.char(u'班别',size=64,select=True),<br /> 'class':fields.char(u'线别',size=64,select=True),<br /> 'model':fields.char(u'产品型号',size=64,select=True),<br /> <br /> 'smtceshi_qcbaobiao_id':fields.many2one('lc.baobiao.smtceshi','Invoice Reference',ondelete='cascade',select=True),<br /> }<br />lc_baobiao_smtceshishuju()[/code]<br />至此,算是完成了。 8)<br />谢谢期间对我提供技术支持的 @重庆-mrshelly @石家庄-老刘 @广州-步科 @@上海-开阖Jeff @上海-gavin @乌鲁木齐-兰迪 @武汉-茶隼等等。。。谢谢你们!<br /><br />另外有个问题要问下,为何要嵌套tree,必须先把tree嵌套在field里,而且field字段必须是many2one类型的。希望解答或补充、改正,谢谢!



  • 公司打算让我把日常品质报表整合在OE里,但是form视图不符合公司报表格式,tree视图符合但是tree视图下不可编辑,经过@乌鲁木齐-兰迪的提示,可以用form里嵌套tree视图实现。效果图见附件。<br />具体实现方法是:在form视图中插入一个tree视图代码格式如下:<br />[code]                          <form string="报表表单" version="7.0"><br /> <group><br /> <field name="name"/><br /> </group><br /> <field name="smt_qcbaobiao"><br /> <tree string="smt_qc" editable="bottom"><br /> <field name="date"/><br /> <field name="inspector"/><br /> <field name="banbie"/><br /> <field name="class"/><br /> <field name="model"/><br /> <field name="component_number"/><br /> </tree><br /> </field><br /> </form><br />[/code]<br />可以看到,在form里插入了tree视图。经武汉-茶隼提示,要嵌套tree,必须先把tree嵌套在field里,而且field字段是many2one类型的。上式中用了<field name="smt_qcbaobiao">这个命令定义的,这样视图部分就解决了。<br />而定义smt_qcbaobiao字段的代码如下:<br />[code]class lc_baobiao_smtceshi(osv.osv):<br />    _name = 'lc.baobiao.smtceshi'<br />    _columns = {<br />        'name':fields.char( u'月份',size=64,select=True),<br /> 'smtceshi_qcbaobiao':fields.one2many('lc.baobiao.smtceshishuju','smtceshi_qcbaobiao_id','smtceshi_qc'),<br /> }<br />lc_baobiao_smtceshi()[/code]<br />用到了one2many,对应的many2one代码如下:<br />[code]class lc_baobiao_smtceshishuju(osv.osv):<br />    _name = 'lc.baobiao.smtceshishuju'<br />    _columns = {<br /> 'date':fields.char(u'日期',size=64,select=True),<br /> 'inspector':fields.char(u'检查员',size=64,select=True),<br /> 'banbie':fields.char(u'班别',size=64,select=True),<br /> 'class':fields.char(u'线别',size=64,select=True),<br /> 'model':fields.char(u'产品型号',size=64,select=True),<br /> <br /> 'smtceshi_qcbaobiao_id':fields.many2one('lc.baobiao.smtceshi','Invoice Reference',ondelete='cascade',select=True),<br /> }<br />lc_baobiao_smtceshishuju()[/code]<br />至此,算是完成了。 8)<br />谢谢期间对我提供技术支持的 @重庆-mrshelly @石家庄-老刘 @广州-步科 @@上海-开阖Jeff @上海-gavin @乌鲁木齐-兰迪 @武汉-茶隼等等。。。谢谢你们!<br /><br />另外有个问题要问下,为何要嵌套tree,必须先把tree嵌套在field里,而且field字段必须是many2one类型的。希望解答或补充、改正,谢谢!



  • 我的理解是因为定义的tree的数据来源于嵌入这个tree的字段,也就是说这个字段对应的数据必须是一个集,并且是可以根据这个字段检索出这个tree要显示出的数据集的。



  • 嗯. 这种在 form 视图里 出现 子表的情况 在OE 中灰常常见. 如 常用的  <br />purchase.order  采购订单 form 中, 就有  purchase.order.line  的子表 的情况...<br /><br /><br />赞.... 学习开发的速度很快.... :+1:


  • 管理员

    谢谢分享,from视图还可以嵌套kanban视图,详情看客户界面。



  • [quote author=xhair link=topic=16381.msg28001#msg28001 date=1399965918]<br />我的理解是因为定义的tree的数据来源于嵌入这个tree的字段,也就是说这个字段对应的数据必须是一个集,并且是可以根据这个字段检索出这个tree要显示出的数据集的。<br />[/quote]<br />谢谢解答,另问下嵌套中的那个tree视图中的数据,如上例中的<field name="date"/>想要同时显示在普通的tree中,能直接引用吗?我好像失败了



  • 我也用得上,直接填表的感脚



  • [quote author=阿狸 link=topic=16381.msg28005#msg28005 date=1399975924]要写个函数字段了,确定显示哪一行的date<br />[quote author=xhair link=topic=16381.msg28001#msg28001 date=1399965918]<br />我的理解是因为定义的tree的数据来源于嵌入这个tree的字段,也就是说这个字段对应的数据必须是一个集,并且是可以根据这个字段检索出这个tree要显示出的数据集的。<br />[/quote]<br />谢谢解答,另问下嵌套中的那个tree视图中的数据,如上例中的<field name="date"/>想要同时显示在普通的tree中,能直接引用吗?我好像失败了<br />[/quote]<br /><br />


登录后回复
 

与 Odoo 中文社区 的连接断开,我们正在尝试重连,请耐心等待