从OpenERP 7中的向导生成报告

时间:2013-06-24 23:36:32

标签: report openerp openoffice.org

我正在学习如何在OpenERP中生成报告,特别是我正在尝试从wizard生成报告,但我无法找到有关它的文档。

我已经能够生成一个向导并用我需要的字段填充它。为此我创建了一个sales_wizard类和一个带有向导结构的xml文件。

我的sales_wizard.py位于自定义模块的wizard文件夹中,看起来与此类似

class sales_wizard(osv.osv_memory):

    _name = 'sim.sales.wizard'
    print "Wizard IN"
    _rec_name = 'building'
    _columns = {
                'building':fields.many2one('sim.buildings','building',required=True,ondelete='cascade'),
                'period':fields.many2one('sim.periods','Period',required=True,ondelete='cascade')
                }

我缺少的是了解如何将向导与创建报告连接以及如何传递向导中输入的变量的知识,在本例中为building和{{1 }}

非常感谢任何方向,提示,指向正确方向的链接。

1 个答案:

答案 0 :(得分:2)

您可以在openerp中找到许多来自向导的打印报告示例。 让我们检查产品模块product_pricelist report&向导。

在向导中打开时有一个按钮打印,在py侧的打印按钮中定义代码,用于发送数据以进行报告

def print_report(self, cr, uid, ids, context=None):
        """
        To get the date and print the report
        @return : return report
        """
        if context is None:
            context = {}
        datas = {'ids': context.get('active_ids', [])}
        res = self.read(cr, uid, ids, ['price_list','qty1', 'qty2','qty3','qty4','qty5'], context=context)
        res = res and res[0] or {}
        res['price_list'] = res['price_list'][0]
        datas['form'] = res
        return {
            'type': 'ir.actions.report.xml',
            'report_name': 'product.pricelist',
            'datas': datas,
       }

并在.rml文件文件中定义类似<para style="terp_default_Centre_8">[[ get_pricelist(data['form']['price_list']) ]]</para>

的段落

get_pricelist在报告文件中定义一个函数,其中data ['form'] ['price_list']是从向导传递的参数,用于函数get_pricelist

希望这会有所帮助