# 打印报表
以tx.rep.review.fa.ca.report模块为型为例
在report目录下新建:`fa_ca_report_reports.py`,`fa_ca_report_templates.xml`,`paperformat.xml`。
## fa_ca_report_reports.py
用于处理tx.rep.review.fa.ca.report模型打印的内容
使用AbstractModel,
_name命名为report+模块名+模板名
```python
class FaCaReport(models.AbstractModel):
_name = 'report.plm_project_quality.fa_ca_report_template'
_description = "Fa Ca Report"
def _get_report_values(self, docids, data=None):
docs = self.env['tx.rep.review.fa.ca.report'].sudo().browse(docids)
docargs = { '
docs': docs,
}
return docargs
```
在 _get_report_values方法中处理打印的内容
## fa_ca_report_templates.xml
### 打印模板
在模板中使用_get_report_values方法中docargs的值
```xml
<template id="fa_ca_report_template">
<style>
</style>
<t t-call="web.basic_layout">
<t t-foreach="docs" t-as="o">
</t>
</t>
</t>`
``
### 打印动作
`report_name`和`report_file`均使用模块名+模板名,通过`binding_model_id`和`binding_type`绑定到模型对应的**打印**按钮上,通过`paperformat_id`绑定纸张格式
```xml
<record id="action_fa_ca_report" model="ir.actions.report">
<field name="name">Fa Ca Report</field>
<field name="model">tx.rep.review.fa.ca.report</field>
<field name="report_type">qweb-pdf</field>
<field name="report_name">plm_project_quality.fa_ca_report_template</field>
<field name="report_file">plm_project_quality.fa_ca_report_template</field>
<field name="print_report_name">'Fa Ca Report %s' % object.name</field>
<field name="binding_model_id" ref="model_tx_rep_review_fa_ca_report"/>
<field name="binding_type">report</field>
<field name="paperformat_id" ref="plm_project_quality.paperformat_fa_ca_report"/></record>```
## paperformat.xml
纸张格式
```xml
<!-- Portrait 纵向 Landscape 横向 -->
<record id="paperformat_fa_ca_report" model="report.paperformat">
<field name="name">Fa Ca Report Paper</field>
<field name="default" eval="True" />
<field name="format">custom</field>
<field name="page_height">297</field>
<field name="page_width">210</field>
<field name="orientation">Landscape</field>
<field name="margin_top">0</field>
<field name="margin_bottom">0</field>
<field name="margin_left">0</field>
<field name="margin_right">0</field>
<field name="disable_shrinking" eval="False"/>
<field name="dpi">96</field>
</record>
```
打印