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

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

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

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

如何实现有条件的显示记录



  • 我有一个单位视图,里面有:大厦名称,楼栋名称,楼层名称,单位名称。他们都是many2one类型,我现在在单独的大厦视图里面用many2one(关联单位视图)得到了对应大厦A下的所有信息,我点击大厦A视图里面的楼栋名称B(many2one类型),进入到了楼栋视图里面,但是它把所有大厦所有楼栋的楼层都显示出来了。我想要的,只是显示大厦A下面的,楼栋B的所有楼层,那改怎么做呢?急。请大家帮帮忙



  • 没看懂... 我建议你把你写的对象定义发出来..
    或者把你的模块放出来, 这样才看得明白.



  • 我就猜到shelly会说没看懂

    其实本帖有7次阅读, 7个人都没看懂, 只有shelly勤快而且直言不讳地说出来了



  • 真的不好意思。
    对象:x_campus:x_name(campus),x_unit_id(one2many,x_unit,x_campus_id)大厦对象
    对象:x_block:x_name(blcok),x_unit_id(one2many,x_unit,x_block_id)楼栋对象
    对象:x_level:x_name(level),x_unit_id(one2many,x_unit,x_level_id)楼栋对象
    对象:x_unit:x_name(unit),x_campus_id(many2one),x_block_id(many2one),x_level_id(many2one)单位对象
    我直接在web端写的,所以没有代码。
    这三个对象形成了三个视图,相互联系。我点击大厦对象视图中的one2many包含的楼栋视图后,显示了这个大厦内所有的楼栋,但是继续想下点击楼栋视图中的one2many包含的楼层后,它显示了所有的大厦包含的楼层,而不是我从一开始点击进入的大厦,楼栋所包含的楼层。
    我想要的是点击一个大厦,显示这个大厦的楼栋,然后点击楼栋里面包含的楼层,显示这个大厦这个楼栋包含的楼层。



  • 怎么有两个楼栋对象?
    x_block?
    x_level?

    它们之间的关系是同 大厦(campus) 同级的?

    对象中并没有看到你的大厦同 楼栋有什么层级关系啊?



  • 大厦包含楼栋 ,楼栋包含楼层,楼层包含单位,它们之间是一对多的关系。现在,第一个页面是大厦,点击大厦视图1中的大厦A后,进入视图2,看到了大厦A里面包含的楼栋,点击一个楼栋B,进入视图3,看到楼栋B包含楼层的视图3,点击视图3中的一个楼层5后,进入到视图4(楼层5包含单位的视图)。但是视图4中将所有大厦,所有楼栋的5层的记录都显示出来了。而不是大厦A,楼栋B中,楼层为5的单位记录显示出来。



  • "点击一个楼栋B,进入视图3,看到楼栋B包含楼层的视图3,点击视图3中的一个楼层5后"

    视图3 是楼栋的单体显示? 然后 点击进入楼层, 然后视图3是楼栋的单体显示? 还是 楼层的单体视图?



  • 按你的说法, 写了一个模块. 本来要玩玩在线配置的. 发现在线里要去配置视图, 以及权限 都特麻烦的, 还不如直接写模块, 然后 copy 修改来得快.

    附件里  campus 文件夹是模块. 可以直接更新安装.
    然后 campus_bak.bak 是帐套备份文件.

    不知道如何玩一个不需要 py 文件支持的模块安装. 所以, 你先下载了玩玩看.
    应该是你想要的东西.[attachimg=1]



  • 一个月以前楼主就在问这个问题,一个月了, 还没有长进...

    买付费支持吧, 一天搞定.



  • 在mrshelly的帮助下,我终于将这个功能实现了。具体步骤如下。
    创建了4个对象
    1Campus (x_campus):x_name,x_block_ids(one2many)
    2.Block(x_block):x_name,x_campus_id(many2one),x_level_ids(one2many),x_block_id(many2one)
    3.Level(x_level):x_name,x_block_id(many2one),x_unit_ids(one2many),x_level_id(many2one)

    4.Unit(x_unit):x_name,x_level_id(many2one),x_unit_id(many2one,让它自己选择自己,这样在level页面,可以通过点击这个字段,而进入到unit的form页面)
    x_block_id(many2one),x_level_id(many2one),x_unit_id(many2one),都是让它们字选择自己,这样就实现了从一个页面到另外一个页面有条件的显示数据了。
    非常感谢mrshelly!