Hi, I need to show and save the report in same form page, how to do that.
Odoo is the world's easiest all-in-one management software.
It includes hundreds of business apps:
- CRM
- e-Commerce
- Boekhouding
- Voorraad
- PoS
- Project
- MRP
Deze vraag is gerapporteerd
You could do it like this example for sale.order report generated as preview when pressing the preview button:
from openerp import models, fields, api
class report_sale_preview(models.Model):
_inherit = 'sale.order'
preview = fields.Html('Report Preview')
@api.multi
def generate_preview(self):
html = self.env['report'].get_html(self, 'sale.report_saleorder')
self.write({'preview': html})
return True
And in the view
<?xml version="1.0" encoding="UTF-8"?>
<openerp>
<data>
<record model="ir.ui.view" id="solt_report_preview_form_view">
<field name="name">sale.order.report.preview.form</field>
<field name="model">sale.order</field>
<field name="inherit_id" ref="sale.view_order_form"/>
<field name="arch" type="xml">
<xpath expr="//page[1]" position="after">
<page string="Report Preview">
<header>
<button name="generate_preview" type="object" string="Preview"/>
</header>
<sheet>
<field name="preview"/>
</sheet>
</page>
</xpath>
</field>
</record>
</data>
</openerp>
The result is something like this:
how do i do this on odoo 12?
I tried to do the same thing and the result is:
{'context': {'lang': 'en_US', 'tz': 'Europe / Brussels',' uid ': 2,' active_ids': [57]}, 'data': None, 'type': ' ir.actions.report ',' report_name ':' ipc_eoffice.selain_surat_dinas_report ',' report_type ':' qweb-html ',' report_file ':' ipc_eoffice.selain_surat_dinas_report ',' report 'type': 'qweb-html', 'report_file': 'ipc_eoffice.selain_surat_dinas_report', 'report' type: 'qweb-html Report'}
This is my method:
@ api.multi
def print_report (self):
if self.jenis_name in ['Official Letter', 'DINAS LETTER']:
# html = self.env ['web']. get_html (self, 'ipc_eoffice.surat_dinas_report_template')
html = self.env.ref ('ipc_eoffice.surat_dinas_report'). report_action (self)
self.update ({'preview': html})
self.preview = html
# return self.env.ref ('ipc_eoffice.surat_dinas_report'). report_action (self)
html return
When I added that code to my Odoo project when I try to access the report preview I get this error (I have Odoo 15):
RPC_ERROR
Odoo Server Error
Traceback (most recent call last):
File "/home/odoo/src/odoo/odoo/addons/base/models/ir_http.py", line 237, in _dispatch
result = request.dispatch()
File "/home/odoo/src/odoo/odoo/http.py", line 698, in dispatch
result = self._call_function(**self.params)
File "/home/odoo/src/odoo/odoo/http.py", line 368, in _call_function
return checked_call(self.db, *args, **kwargs)
File "/home/odoo/src/odoo/odoo/service/model.py", line 94, in wrapper
return f(dbname, *args, **kwargs)
File "/home/odoo/src/odoo/odoo/http.py", line 357, in checked_call
result = self.endpoint(*a, **kw)
File "/home/odoo/src/odoo/odoo/http.py", line 921, in __call__
return self.method(*args, **kw)
File "/home/odoo/src/odoo/odoo/http.py", line 546, in response_wrap
response = f(*args, **kw)
File "/home/odoo/src/odoo/addons/web/controllers/main.py", line 1328, in call_button
action = self._call_kw(model, method, args, kwargs)
File "/home/odoo/src/odoo/addons/web/controllers/main.py", line 1316, in _call_kw
return call_kw(request.env[model], method, args, kwargs)
File "/home/odoo/src/odoo/odoo/api.py", line 471, in call_kw
result = _call_kw_multi(method, model, args, kwargs)
File "/home/odoo/src/odoo/odoo/api.py", line 456, in _call_kw_multi
result = method(recs, *args, **kwargs)
File "/home/odoo/src/user/camposmc/models/models.py", line 36, in generate_preview
html = self.env['report'].get_html(self, 'sale.report_saleorder')
File "/home/odoo/src/odoo/odoo/api.py", line 552, in __getitem__
return self.registry[model_name]._browse(self, (), ())
File "/home/odoo/src/odoo/odoo/modules/registry.py", line 182, in __getitem__
return self.models[model_name]
Exception
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/odoo/src/odoo/odoo/http.py", line 654, in _handle_exception
return super(JsonRequest, self)._handle_exception(exception)
File "/home/odoo/src/odoo/odoo/http.py", line 301, in _handle_exception
raise exception.with_traceback(None) from new_cause
KeyError: 'report'
Hi Axel,
Please help do it on ver13
Thanks
Hello,
Try to inherit the form view of the sale.order model and add the following lines:
<xpath expr="//div[hasclass('oe_chatter')]" position="before">
<div class="o_attachment_preview" options="{ 'order': 'desc' }"/>
</xpath>
Regards,
Hello,
Try to inherit the form view of the sale.order model and add the following lines:
<xpath expr="//div[hasclass('oe_chatter')]" position="before">
<div class="o_attachment_preview" options="{ 'order': 'desc' }"/>
</xpath>
Regards,
Geniet je van het gesprek? Blijf niet alleen lezen, doe ook mee!
Maak vandaag nog een account aan om te profiteren van exclusieve functies en deel uit te maken van onze geweldige community!
AanmeldenGerelateerde posts | Antwoorden | Weergaven | Activiteit | |
---|---|---|---|---|
|
1
jul. 25
|
1712 | ||
|
1
mei 25
|
1710 | ||
|
1
apr. 25
|
2281 | ||
|
1
feb. 25
|
1567 | ||
|
0
okt. 24
|
1322 |