OCA reporting engine fork for dev and update.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

38 lines
1.0 KiB

  1. An example of CSV report for partners on a module called `module_name`:
  2. A python class ::
  3. from odoo import models
  4. class PartnerCSV(models.AbstractModel):
  5. _name = 'report.report_csv.partner_csv'
  6. _inherit = 'report.report_csv.abstract'
  7. def generate_csv_report(self, writer, data, partners):
  8. writer.writeheader()
  9. for obj in partners:
  10. writer.writerow({
  11. 'name': obj.name,
  12. 'email': obj.email,
  13. })
  14. def csv_report_options(self):
  15. res = super().csv_report_options()
  16. res['fieldnames'].append('name')
  17. res['fieldnames'].append('email')
  18. res['delimiter'] = ';'
  19. res['quoting'] = csv.QUOTE_ALL
  20. return res
  21. A report XML record ::
  22. <report
  23. id="partner_csv"
  24. model="res.partner"
  25. string="Print to CSV"
  26. report_type="csv"
  27. name="module_name.report_name"
  28. file="res_partner"
  29. attachment_use="False"
  30. />