This question has been flagged
1 Reply
4523 Views

I would like to run a pentaho report from a button within a form view (openERP 7.0).  Are there any examples out there of this so I can get an idea of what steps should be taken? i.e. what actions should be created and what should be placed in the xml and py files. 

Avatar
Discard
Best Answer

In your XML View definition put:

<button name=print_report" string="Print" type="object">

In your class definition add a new method:

    def print_report(self, cr, uid, ids, context=None): 
        return { 'type': 'ir.actions.report.xml', 'report_name': 'my.report.name',
             'nodestroy' : True
        }

Your report action XML should be like:

		<record id="my_report" model="ir.actions.report.xml">
			<field name="name">my report name</field>
			<field name="report_name">my.report.name</field>
			<field name="model">report.model</field>
			<field name="auto" eval="False"/>
                        <field name="is_pentaho_report" eval="True"/> <field name="pentaho_report_model_id" ref="module.model_report_model"/> <field name="pentaho_report_output_type">pdf</field> <field name="pentaho_filename">module/report/my_report.prpt</field> <field name="pentaho_load_file" eval="True"/> </record

Button @name and print method should have the same name

Also report_name should be the same in method and report action XML

Be very careful setting pentaho_report_model_id. Format is: module name with no spaces + ".model_" + report model with dots converted to underscores

Avatar
Discard
Author

This worked for me fine. Once minor amendment to the xml view -