如何在报表中显示业务员的手机号码?
-
我安装了hr模块,里面我将所偶雇员的信息都填好了!
手工rml样式报价单已经设计好了
其它任何我想调用的数据都通过openoffice报表设计器插件“add a field”功能找到数据字段
就是说需要在报价单上将自己公司的业务员手机号码加入到rml
就是说现在我想调用hr_employee这个数据表中work_phone还有mobile 应该如何实施?
为什么openoffice中"add a field"这个功能中找不到一点点关于hr_employee这个表中的字段调用;
还有目前对py不太懂
很想知道
[[ line.product_id.sale_delay ]] 这一句的意思我这样理解对不对
line是指这个订单中正调用的产品中的值
product_id 是指从line中获取我们正调用的产品的货号或者是序列
sale_delay是我们现实的显示产品的交货期 -
@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]我们直接取第一个,如果你们的系统用户是和雇员简单的一对一的这就能满足要求呢。 -
非常感谢版主的支持与回答!
我按照版主的代码进行的测试不知道为什么没有成功!
以版主告诉我的解释:
把代码写入到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对象 使用.操作符对本对象取值 这里出了什么问题呢? 读取不出来
我的雇员和用户是一对一关系的~ -
[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字段
代码如下: _columns = {<br /> 'employee_ids': fields.one2many('hr.employee', 'user_id', 'Related employees'),<br /> }
-
恩,找到问题了;之前代码加错地方了
改完以后是这样的
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()