* Odoo 10 * Как сгенерировать отчет в файл xls / xlsx? - PullRequest
0 голосов
/ 30 января 2020

Мне нравится создавать отчет в файл 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>

Надеясь, что кто-то может помочь мне в этом. Спасибо. Если что-то не понятно, пожалуйста, дайте мне знать.

...