仍在使用该死的 OpenOffice Writer 来自定义我的 sale_order.rml 报告。
在我的销售订单中,我有 6 个订单行,有 6 个不同的交货时间。我需要显示六个值中的最大值。
经过多次尝试后,我放弃了使用 reduce 函数,因为它在大多数情况下工作不规律或根本不工作。我从来没有见过这样的事情。
所以我想我会尝试使用 max 封装一个循环,例如:
[[ max(repeatIn(so.order_line.delay,'d')) ]]
我的最长交货时间是 20,我希望看到 20(是的,这太容易了,不是吗!)。
它返回
{'d': 20.0}
至少它包含我所追求的价值。但; 如果我尝试操纵这个结果,它就会完全消失。我努力了:
int(re.findall(r'[0-9]+', max(repeatIn(so.order_line.delay,'d')))[0])
在 python 窗口中效果很好,但在 OpenERP 中绝对没有返回任何内容。
我从我的 sale_order.py 文件中导入 re,我已将其重新编译为 sale_order.pyo:
import time
import re
from datetime import datetime, timedelta
from report import report_sxw
class order(report_sxw.rml_parse):
def __init__(self, cr, uid, name, context=None):
super(order, self).__init__(cr, uid, name, context=context)
self.localcontext.update({
'time': time,
'datetime': datetime,
'timedelta': timedelta,
're': re,
})
我当然已经多次重新启动服务器。我的测试安装在 Windows 上。
所以谁能告诉我我做错了什么,因为我可以用 Python 让它工作,但不能用 OpenOffice Writer!
谢谢你的帮助!
编辑1:
格式
{'d': 20.0}
根据python,是一本字典。仍然在 Python 中,要从字典中提取整数,可以这样做:
>>> dict={'d': 20.0}
>>> print(dict['d'])
20.0
但是我怎样才能把它转变成 OpenERP 作家???