Мне нравится создавать отчет в файл xls / xlsx. Я хочу получить весь список продуктов другой модели для TransientModel. (Я делаю свое исследование, но без того, чтобы кто-то объяснил мне это, я не могу получить полную картину.)
age_inventory_report.py
***aging_inventory_report.py***
from time import strftime, gmtime
from odoo import models, fields, api
from report_xlsx.report.report_xlsx import ReportXlsx
class AgingInventoryReport(models.TransientModel):
_name = 'aging.inventory.report'
_inherit = 'product.template'
_description = 'Aging of Inventory Report'
***from here, these are the codes that I get from searching over internet***
def print_xls_report(self, cr, uid, ids, context=None):
data = self.read(cr, uid, ids)[0]
return {'type': 'ir.actions.report.xml',
'report_name': 'dealer_stock_aging_report.report_name.xlsx',
'datas': data
}
class ClassABCD(ReportXlsx):
def generate_xlsx_report(self, workbook, data, lines):
current_date = strftime("%Y-%m-%d", gmtime())
logged_users = self.env['res.users'].search([('id', '=', data['create_uid'][0])])
sheet = workbook.add_worksheet()
# add the rest of the report code here
ClassABCD('report.dealer_stock_aging_report.report_name.xlsx', 'product.template')
*** I don't under stand the code but it successfully integrate into my model.***
XML
age_inventory_report. xml
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="view_aging_inventory_report" model="ir.ui.view">
<field name="name">Aging of Inventory</field>
<field name="model">aging.inventory.report</field>
<field name="arch" type="xml">
<form string="Aging Inventory">
<group>
<p>
Retrieve list of Aging Inventory.
</p>
</group>
<footer>
<button name="print_xls_report" string="Save as XLS" type="object" class="btn-primary"/>
<button string="Cancel" class="btn-default" special="cancel" />
</footer>
</form>
</field>
</record>
</odoo>
view_aging_inventory_report. xml
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<record id="action_view_aging_inventory_report" model="ir.actions.act_window">
<field name="name">Retrieve Aging Inventory Report</field>
<field name="res_model">aging.inventory.report</field>
<field name="view_type">form</field>
<field name="view_mode">form</field>
<field name="view_id" ref="view_aging_inventory_report"/>
<field name="target">new</field>
</record>
<menuitem id="action_menu_aging_inventory_report"
name="Aging Inventory"
action="action_view_aging_inventory_report"
parent="dealer_inventory_cost.inventory_cost"
sequence="2"/>
</odoo>
Надеясь, что кто-то может помочь мне в этом. Спасибо. Если что-то не понятно, пожалуйста, дайте мне знать.