跳转至内容
  • 版块
  • 标签
  • 热门
  • 用户
  • 群组
皮肤
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(Flatly)
  • 不使用皮肤
折叠

Odoo 中文社区

  1. 主页
  2. 版块
  3. Odoo 新手求助
  4. 如何在报表中显示业务员的手机号码?

如何在报表中显示业务员的手机号码?

已定时 已固定 已锁定 已移动 Odoo 新手求助
15 帖子 2 发布者 6.4k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • R 离线
    R 离线
    rogole
    写于 最后由 编辑
    #2

    没有人知道这个问题么??

    1 条回复 最后回复
    0
    • JoshuaJ 离线
      JoshuaJ 离线
      Joshua 管理员
      写于 最后由 编辑
      #3

      @rogole 你好。

      [[ line.product_id.sale_delay ]]  
      


      这一句一般上面会有一个 [b]repeat[/b] 例如:销售订单的

      [[repeatIn(o.order_line,'line')]]
      


      意思就是循环取出o.order_line字段,赋值为变量line。则里的o就是sale.order对象了,order_line也就是sale.order.line也就是销售订单。既然我们有了sale.order.line的browse对象,我们就可以使用 . 操作符来对本对象进行取值。

      [quote]就是说需要在报价单上将自己公司的业务员手机号码加入到rml[/quote]
      回到这个问题,首先不知道你说的业务员手机号码是不是指得的雇员信息(hr.employee),销售订单上的销售员实际上是一个系统用户(res.users)。如果你要取到本系统用户的对应的雇员的手机也是可以的,不过你首先要把系统用户和雇员关联起来,具体就是在雇员页面选择[b]相关用户[/b]。
      然后到rml里面我们可以这样写:

      [o.user_id.employee_ids and o.user_id.employee_ids[0].mobile_phone]
      


      这里的employee_ids[0]我们直接取第一个,如果你们的系统用户是和雇员简单的一对一的这就能满足要求呢。 🙂

      【上海先安科技】(joshua AT openerp.cn),欢迎关注公众号:openerp_cn

      1 条回复 最后回复
      0
      • R 离线
        R 离线
        rogole
        写于 最后由 编辑
        #4

        非常感谢版主的支持与回答!

        我按照版主的代码进行的测试不知道为什么没有成功!

        以版主告诉我的解释:
        把代码写入到rml中完全没反应我还尝试了多种改造方式
        [o.user_id.employee_ids and o.user_id.employee_ids[0].mobile_phone]
        或者是
        [o.user_id.employee_id and o.user_id.employee_id[0].mobile_phone]

        [o.user_id.employee_ids and o.user_id.employee_ids.mobile_phone]

        似乎还是无法显示
        我感觉版主的语句应该是可以行得通的,但是始终没法调用出数据是什么原因呢?

        按道理这里应该是有了sale.order.user_id.employee_ids的browse对象  使用.操作符对本对象取值  这里出了什么问题呢?  读取不出来
        我的雇员和用户是一对一关系的~

        1 条回复 最后回复
        0
        • R 离线
          R 离线
          rogole
          写于 最后由 编辑
          #5

          补充一下;我使用的是6.1的  windows版的OE

          跟版本应该没有什么关系吧?

          我还特意浏览了数据库里面 hr.employee 表;

          我认为是不是有可能还要在哪里做一下程序改造?是否需要编写py文件;是否需要改动xml文件?

          1 条回复 最后回复
          0
          • JoshuaJ 离线
            JoshuaJ 离线
            Joshua 管理员
            写于 最后由 编辑
            #6

            [quote][o.user_id.employee_ids and o.user_id.employee_ids[0].mobile_phone]

            [o.user_id.employee_id and o.user_id.employee_id[0].mobile_phone]

            [o.user_id.employee_ids and o.user_id.employee_ids.mobile_phone][/quote]

            第一句的emplyee_ids是user_id里面的字段。
            第二句employee_id不是一个字段。
            第三句employee_ids[0]意思是取这个many2many2字段的第一个值。
            所以这句正确写法是:

            [[o.user_id.employee_ids and o.user_id.employee_ids[0].mobile_phone]]
            



            看了下6.1的代码,res.users模型里面并没有employee_ids字段,所以在6.1这样取值是不行的,你可以仿效7.0给res.users添加employee_ids字段
            代码如下:

            &nbsp; &nbsp; _columns = {<br />&nbsp; &nbsp; &nbsp; &nbsp; &#039;employee_ids&#039;: fields.one2many(&#039;hr.employee&#039;, &#039;user_id&#039;, &#039;Related employees&#039;),<br />&nbsp; &nbsp; &nbsp; &nbsp; }
            

            【上海先安科技】(joshua AT openerp.cn),欢迎关注公众号:openerp_cn

            1 条回复 最后回复
            0
            • R 离线
              R 离线
              rogole
              写于 最后由 编辑
              #7

              因为是新手,我一般都是使用系统的可视界面添加自定义字段的

              这个代码不知道写在什么地方!

              res.user对象定义在哪个文件  我都没找到!

              看了《openerp应用和开发基础》  但是这个里面讲的关于模块开发的部分也是用得系统可视界面做的

              代码方面讲得不多

              真的非常感谢你的回复!!最后再请告诉我一下这个肤浅的问题“这个代码写在什么文件里面?哪个文件,路径,文件名”

              1 条回复 最后回复
              0
              • R 离线
                R 离线
                rogole
                写于 最后由 编辑
                #8

                继续研究的结果;

                我在addons\base\res  文件夹中找到了res.users.py文件  看到了对users对象的定义    并添加了版主所说的语句;

                执行py文件以后  重启了oe

                但是在系统字段列表里面还是看不到  刚添加的字段  做法是否有误?

                1 条回复 最后回复
                0
                • R 离线
                  R 离线
                  rogole
                  写于 最后由 编辑
                  #9

                  ;D

                  问题解决了

                  我在hr.py中  对res.users的对象中加入版主所说的语句  测试成功了!!

                  再次感谢版主的支持!!!

                  1 条回复 最后回复
                  0
                  • JoshuaJ 离线
                    JoshuaJ 离线
                    Joshua 管理员
                    写于 最后由 编辑
                    #10

                    🙂 不错嘛,不过我们更推荐是通过模块继承来给原有系统添加/修改功能。

                    【上海先安科技】(joshua AT openerp.cn),欢迎关注公众号:openerp_cn

                    1 条回复 最后回复
                    0
                    • R 离线
                      R 离线
                      rogole
                      写于 最后由 编辑
                      #11

                      感谢版主的建议!!

                      keshi[quote author=Joshua link=topic=14549.msg25161#msg25161 date=1384001534]
                      🙂 不错嘛,不过我们更推荐是通过模块继承来给原有系统添加/修改功能。
                      [/quote]

                      这个怎么讲  有这方面介绍的帖子么??

                      1 条回复 最后回复
                      0
                      • R 离线
                        R 离线
                        rogole
                        写于 最后由 编辑
                        #12

                        [quote author=rogole link=topic=14549.msg25157#msg25157 date=1383986387]
                        ;D

                        问题解决了

                        我在hr.py中  对res.users的对象中加入版主所说的语句  测试成功了!!

                        再次感谢版主的支持!!!
                        [/quote]

                        发现一个很奇怪的现象;按照以上添加以后;只要OE重启;web客户端访问就无法进行了  只显示“No handler found.”
                        然后把那句去掉;重启oe;恢复正常~~这是什么原因;

                        1 条回复 最后回复
                        0
                        • JoshuaJ 离线
                          JoshuaJ 离线
                          Joshua 管理员
                          写于 最后由 编辑
                          #13

                          查看OpenERP服务log,应该会得到答案,可能是代码有问题。

                          【上海先安科技】(joshua AT openerp.cn),欢迎关注公众号:openerp_cn

                          1 条回复 最后回复
                          0
                          • R 离线
                            R 离线
                            rogole
                            写于 最后由 编辑
                            #14

                            恩,找到问题了;之前代码加错地方了

                            改完以后是这样的

                            class res_users(osv.osv):
                                _name = 'res.users'
                                _inherit = 'res.users'

                                def create(self, cr, uid, data, context=None):
                                    user_id = super(res_users, self).create(cr, uid, data, context=context)

                                    # add shortcut unless 'noshortcut' is True in context
                                    if not(context and context.get('noshortcut', False)):
                                        data_obj = self.pool.get('ir.model.data')
                                        try:
                                            data_id = data_obj._get_id(cr, uid, 'hr', 'ir_ui_view_sc_employee')
                                            view_id  = data_obj.browse(cr, uid, data_id, context=context).res_id
                                            self.pool.get('ir.ui.view_sc').copy(cr, uid, view_id, default = {
                                                                        'user_id': user_id}, context=context)
                                        except:
                                            # Tolerate a missing shortcut. See product/product.py for similar code.
                                            logging.getLogger('orm').debug('Skipped meetings shortcut for user "%s"', data.get('name','<new'))

                                    return user_id
                            _columns = {
                                    'employee_ids': fields.one2many('hr.employee', 'user_id', 'Related employees'),
                                    }
                            res_users()

                            1 条回复 最后回复
                            0

                            • 登录

                            • 没有帐号? 注册

                            • 登录或注册以进行搜索。
                            • 第一个帖子
                              最后一个帖子
                            0
                            • 版块
                            • 标签
                            • 热门
                            • 用户
                            • 群组