Openerp7.0报表显示selection类型不正确问题

首先是引用:http://www.sandwych.com/Blog/161

写这篇文章的原因是该文只给了一个说明,对于一般的开发者还需要不少的时间摸索。反正我花了2,3个小时进行尝试,并测试


我使用的是rml生成pdf的打印方式。使用的系统默认的rml_parse。

所以需要做的内容是:

修改report_sxw文件rml_parse。

在__init__函数中增加两行。如下。使用原文的方式会报错。

self.localcontext['get_selection_item'] = self._get_selection_items('item')
self.localcontext['get_selection_items'] = self._get_selection_items()

另外是函数需要修改一下,把self.context修改为self.localcontext。因为rml_parse本身没有context成员对象

	def _get_selection_items(self, kind='items'):
		def get_selection_item(obj, field, value=None):
			
			try:
				if isinstance(obj, browse_record_list):
					obj = obj[0]
				if isinstance(obj, (str,unicode)):
					model = obj
					field_val = value
				else:
					model = obj._table_name
					field_val = getattr(obj, field)
				if kind=='item':
					if field_val:
						return dict(self.pool.get(model).fields_get(self.cr, self.uid, allfields=[field], context=self.localcontext)[field]['selection'])[field_val]
				elif kind=='items':
					return self.pool.get(model).fields_get(self.cr, self.uid, allfields=[field], context=self.localcontext)[field]['selection']
				return ''
			except Exception:
				return ''
		return get_selection_item	

最后需要跟文章中描述的一样,把rml中的数据引用修改为get_selection_item(rml定义对象名, 具体字段名)的方式

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值