报表求助;)
-
扩展了sale.order模块,增加了订单类别。
通过数据库View创建Model 和 报表(统计每个销售人员的各种类型的订单总额)
出现问题 repeatIn( objects,'o') 循环找不到 parentNode, 导致所有的报表转化为PDF时都没有填充数据;必须指定repeatIn( objects,'o','parentNodeXXX')才可以。和原来的各个模块貌似都没有什么差别
-
我在订单的基础上增加了 订单类别字段,并通过 视图 创建报表,新增加的报表内容:统计销售人员 每类订单的销售总额。
报表采用openoffice创建 contract_amount.sxw---> contract_amount.rml
问题:
打印报表时,debug发现数据objects已经传递到 report_sxw.repeatIn() 方法,但是获取不到它所在的父节点parentNode。
原因:
原 report_sxw.init_(self, cr, uid, name, parents=rml_parents, tag=rml_tag, context=None) ,此处的parents是指报表函数所在rml中的父节点名称,
而默认tiny解析报表的默认子类, 只是传递了 super.init(cr,uid,name,context) 导致context的值赋给了parent,所以生成的报表 需要填充数据的地方为空白。正确的方法是 super.init(cr,uid,name,context=context) ,这样report_sxw 初始化就正确了(parents=rml_parents, tag=rml_tag) -
明白了,是python中的关键字参数。