打印

# 打印报表

以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>

```

王柏茗 2024年9月13日
分析这篇文章

存档
登录 留下评论
工作流定义
创建简单工作流