0

我正在学习如何在 OpenERP 中生成报告,特别是我试图能够从 a 中生成报告,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')
                }

我缺乏的是了解如何将向导与报告的创建联系起来以及如何传递在向导中输入的变量的知识,在这种情况buildingperiod

任何方向,提示,链接到正确的方向将不胜感激。

4

1 回答 1

2

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

在向导中打开时有一个按钮打印,在 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

希望这会有所帮助

于 2013-06-25T06:21:52.463 回答