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

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

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

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

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



  • 我安装了hr模块,里面我将所偶雇员的信息都填好了!<br />手工rml样式报价单已经设计好了<br />其它任何我想调用的数据都通过openoffice报表设计器插件“add a field”功能找到数据字段<br /><br />就是说需要在报价单上将自己公司的业务员手机号码加入到rml<br /><br /><br />就是说现在我想调用hr_employee这个数据表中work_phone还有mobile  应该如何实施?<br />为什么openoffice中"add a field"这个功能中找不到一点点关于hr_employee这个表中的字段调用;<br /><br />还有目前对py不太懂<br /><br />很想知道<br />[[ line.product_id.sale_delay ]]  这一句的意思我这样理解对不对<br />line是指这个订单中正调用的产品中的值<br />product_id  是指从line中获取我们正调用的产品的货号或者是序列<br />sale_delay是我们现实的显示产品的交货期



  • 我安装了hr模块,里面我将所偶雇员的信息都填好了!<br />手工rml样式报价单已经设计好了<br />其它任何我想调用的数据都通过openoffice报表设计器插件“add a field”功能找到数据字段<br /><br />就是说需要在报价单上将自己公司的业务员手机号码加入到rml<br /><br /><br />就是说现在我想调用hr_employee这个数据表中work_phone还有mobile  应该如何实施?<br />为什么openoffice中"add a field"这个功能中找不到一点点关于hr_employee这个表中的字段调用;<br /><br />还有目前对py不太懂<br /><br />很想知道<br />[[ line.product_id.sale_delay ]]  这一句的意思我这样理解对不对<br />line是指这个订单中正调用的产品中的值<br />product_id  是指从line中获取我们正调用的产品的货号或者是序列<br />sale_delay是我们现实的显示产品的交货期



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


  • 管理员

    @rogole 你好。<br />[code][[ line.product_id.sale_delay ]]  [/code]<br />这一句一般上面会有一个 [b]repeat[/b] 例如:销售订单的<br />[code][[repeatIn(o.order_line,'line')]][/code]<br />意思就是循环取出o.order_line字段,赋值为变量line。则里的o就是sale.order对象了,order_line也就是sale.order.line也就是销售订单。既然我们有了sale.order.line的browse对象,我们就可以使用 . 操作符来对本对象进行取值。<br /><br />[quote]就是说需要在报价单上将自己公司的业务员手机号码加入到rml[/quote]<br />回到这个问题,首先不知道你说的业务员手机号码是不是指得的雇员信息(hr.employee),销售订单上的销售员实际上是一个系统用户(res.users)。如果你要取到本系统用户的对应的雇员的手机也是可以的,不过你首先要把系统用户和雇员关联起来,具体就是在雇员页面选择[b]相关用户[/b]。<br />然后到rml里面我们可以这样写:<br />[code][o.user_id.employee_ids and o.user_id.employee_ids[0].mobile_phone][/code]<br />这里的employee_ids[0]我们直接取第一个,如果你们的系统用户是和雇员简单的一对一的这就能满足要求呢。 :)<br /><br />



  • 非常感谢版主的支持与回答!<br /><br />我按照版主的代码进行的测试不知道为什么没有成功!<br /><br />以版主告诉我的解释:<br />把代码写入到rml中完全没反应我还尝试了多种改造方式<br />[o.user_id.employee_ids and o.user_id.employee_ids[0].mobile_phone]<br />或者是<br />[o.user_id.employee_id and o.user_id.employee_id[0].mobile_phone]<br /><br />[o.user_id.employee_ids and o.user_id.employee_ids.mobile_phone]<br /><br />似乎还是无法显示<br />我感觉版主的语句应该是可以行得通的,但是始终没法调用出数据是什么原因呢?<br /><br />按道理这里应该是有了sale.order.user_id.employee_ids的browse对象  使用.操作符对本对象取值  这里出了什么问题呢?  读取不出来<br />我的雇员和用户是一对一关系的~



  • 补充一下;我使用的是6.1的  windows版的OE<br /><br />跟版本应该没有什么关系吧?<br /><br />我还特意浏览了数据库里面 hr.employee 表;<br /><br />我认为是不是有可能还要在哪里做一下程序改造?是否需要编写py文件;是否需要改动xml文件?


  • 管理员

    [quote][o.user_id.employee_ids and o.user_id.employee_ids[0].mobile_phone]<br /><br />[o.user_id.employee_id and o.user_id.employee_id[0].mobile_phone]<br /><br />[o.user_id.employee_ids and o.user_id.employee_ids.mobile_phone][/quote]<br /><br />第一句的emplyee_ids是user_id里面的字段。<br />第二句employee_id不是一个字段。<br />第三句employee_ids[0]意思是取这个many2many2字段的第一个值。<br />所以这句正确写法是:<br /><br />[code][[o.user_id.employee_ids and o.user_id.employee_ids[0].mobile_phone]][/code]<br /><br />看了下6.1的代码,res.users模型里面并没有employee_ids字段,所以在6.1这样取值是不行的,你可以仿效7.0给res.users添加employee_ids字段<br />代码如下:<br />[code]    _columns = {<br />        'employee_ids': fields.one2many('hr.employee', 'user_id', 'Related employees'),<br />        }[/code]



  • 因为是新手,我一般都是使用系统的可视界面添加自定义字段的<br /><br />这个代码不知道写在什么地方!<br /><br />res.user对象定义在哪个文件  我都没找到!<br /><br />看了《openerp应用和开发基础》  但是这个里面讲的关于模块开发的部分也是用得系统可视界面做的<br /><br />代码方面讲得不多<br /><br />真的非常感谢你的回复!!最后再请告诉我一下这个肤浅的问题“这个代码写在什么文件里面?哪个文件,路径,文件名”



  • 继续研究的结果;<br /><br />我在addons\base\res  文件夹中找到了res.users.py文件  看到了对users对象的定义    并添加了版主所说的语句;<br /><br />执行py文件以后  重启了oe<br /><br />但是在系统字段列表里面还是看不到  刚添加的字段  做法是否有误?



  • ;D<br /><br />问题解决了<br /><br />我在hr.py中  对res.users的对象中加入版主所说的语句  测试成功了!!<br /><br />再次感谢版主的支持!!!


  • 管理员

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



  • 感谢版主的建议!!<br /><br />keshi[quote author=Joshua link=topic=14549.msg25161#msg25161 date=1384001534]<br /> :) 不错嘛,不过我们更推荐是通过模块继承来给原有系统添加/修改功能。<br />[/quote]<br /><br />这个怎么讲  有这方面介绍的帖子么??



  • [quote author=rogole link=topic=14549.msg25157#msg25157 date=1383986387]<br /> ;D<br /><br />问题解决了<br /><br />我在hr.py中  对res.users的对象中加入版主所说的语句  测试成功了!!<br /><br />再次感谢版主的支持!!!<br />[/quote]<br /><br />发现一个很奇怪的现象;按照以上添加以后;只要OE重启;web客户端访问就无法进行了  只显示“No handler found.”<br />然后把那句去掉;重启oe;恢复正常~~这是什么原因;


  • 管理员

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



  • 恩,找到问题了;之前代码加错地方了<br /><br />改完以后是这样的<br /><br />class res_users(osv.osv):<br />    _name = 'res.users'<br />    _inherit = 'res.users'<br /><br />    def create(self, cr, uid, data, context=None):<br />        user_id = super(res_users, self).create(cr, uid, data, context=context)<br /><br />        # add shortcut unless 'noshortcut' is True in context<br />        if not(context and context.get('noshortcut', False)):<br />            data_obj = self.pool.get('ir.model.data')<br />            try:<br />                data_id = data_obj._get_id(cr, uid, 'hr', 'ir_ui_view_sc_employee')<br />                view_id  = data_obj.browse(cr, uid, data_id, context=context).res_id<br />                self.pool.get('ir.ui.view_sc').copy(cr, uid, view_id, default = {<br />                                            'user_id': user_id}, context=context)<br />            except:<br />                # Tolerate a missing shortcut. See product/product.py for similar code.<br />                logging.getLogger('orm').debug('Skipped meetings shortcut for user "%s"', data.get('name','<new'))<br /><br />        return user_id<br /> _columns = {<br />        'employee_ids': fields.one2many('hr.employee', 'user_id', 'Related employees'),<br />        }<br />res_users()


登录后回复
 

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