This question has been flagged
1 Reply
2753 Views

 I am learning how to generate reports in openerp. I am facing problem in changing webkit report in to aero i.e instead open in PDF i want to open in excel. How can i proceed for this?

.py file

....................................................................................

from openerp.osv import fields,osv
from openerp import netsvc
class models_wizard(osv.osv_memory):
    _name='models.wizard'
    _columns={
    'date1':fields.date('From date'),
    'date2':fields.date('To Date')
    }
    def get_data(self,cr,uid,ids,context=None):
        wizard_record=self.browse(cr,uid,ids[0],context)
        domain=[('date','>=',wizard_record.date1)]
        models_models_object=self.pool.get('models.models')
        data_ids=models_models_object.search(cr,uid,domain,context=context)
        if not data_ids:
            raise osv.except_osv('Error!','There are no ids!')
            return False
        else:
            datas={
            'ids':data_ids,
            'model':'models.models',
            }          

return {
                'type':'ir.actions.report.xml',
                'report_name':'models.webkit.report',
                'datas':datas,
                'context':context

        }

...........................................................................................................................

XML file

.....................................................................................................................................

<openerp>
    <data>
        <record model='ir.ui.view' id='models_wizard_form'>
            <field name="name">models.wizard.form</field>
            <field name='model'>models.wizard</field>
            <field name='arch' type='xml'>
                <form string="wizard" version='7.0'>
                    <sheet>
                        <field name="date1"/>
                        <field name='date2'/>  
                    </sheet>
                    <footer>
                        <button special="cancel" string="Cancel"/>
                        <button type="object" name="get_data" string="getdata"/>
                    </footer>
                    
                </form>
                
            </field>
        </record>
        <record id="models_wizard_action" model="ir.actions.act_window">
            <field name="name">models.wizard.action</field>
            <field name="res_model">models.wizard</field>
            <field name="view_mode">form</field>
            <field name="view_type">form</field>
            <field name="target">new</field>
        </record>
        <menuitem id="models_wizard_menu" action="models_wizard_action" parent="models_models_menu_child" />
    </data>
</openerp>

....................................................................................................

Report xnl file

........................................................................................................

<openerp>
    <data>
        <report
                auto="False"
                id="models_webkit"
                model="models.models"
                name="models.webkit.report"
                file="reportgeneration/report/models_webkit_report.mako"
                string="models Webkit Report"
                report_type="webkit" />
    </data>
</openerp>

..............................................................................................................................................................

mako file

............................................................................

<html>
    <body>
    
        <table border="1.0" width="100%">
                <tr>
                    <th>name</th>
                    <th>code</th>
                    <th>date</th>
                </tr>
            %for emp in objects:
                <tr>
                    <td>${emp.code}</td>
                    <td>${emp.name}</td>
                    <td>${emp.date}</td>
                    
                </tr>
                %endfor
            </table>
    </body>
</html>

.......................................................................................................................................................................

I have added properly these files to __openerp__.py and __init__.py. Can any one please help me?

Avatar
Discard
Best Answer

Hi,

In your .py file you have to return as like below.

 return {
                'type':'ir.actions.report.xml',
                'report_name':'models.webkit.report',
                'datas':datas,
                'context':context

        }

Note : Here (in return) you have to give the name of the report which you have given into <report> record.

Avatar
Discard
Author

Thank you, This solved my problem....

Your always welcome :)

Author

Is it possible to change this report to aero report. i.e the report should open in excel instead of pdf

Yes, it is possible.

Author

Please Can you tell me how?