odoo10学习笔记十三:qweb报表
转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/11189336.html
一:概述
报表是使用qweb定义的,报表的pdf导出是使用wkhtmltopdf来完成的。
如果需要为一个模型创建报表,需要定义report及对应模板。
如果有需要的话还可以指定特定的纸张格式,
如果需要访问其他模型,就需要定义Custom Report。
二:Report
report
标签可用于定义一个报表:
![](https://common.cnblogs.com/images/copycode.gif)
![](https://common.cnblogs.com/images/copycode.gif)
id - 生成的数据的id
name (必选) - 报表名用于查找及描述
model (必选) - 报表所对应的模型
report_type (必选) - qweb-pdf: pdf | qweb-html : html
report_name - 输出pdf时文件名
groups - Many2many字段用于指定可以查看使用该报表的用户组
attachment_use - 如果设置为true时,该报表会以记录的附件的形式保存,一般用于一次生成多次使用的报表
attachment - 用于定义报表名的python表达式,记录可以通过object对象访问
paperformat - 用于打印报表的文件格式的外部id(默认是公司的格式)(可以自定义格式)
![](https://common.cnblogs.com/images/copycode.gif)
![](https://common.cnblogs.com/images/copycode.gif)
![](https://common.cnblogs.com/images/copycode.gif)
![](https://common.cnblogs.com/images/copycode.gif)
<report
id="account_invoices"
model="account.invoice"
string="Invoices"
report_type="qweb-pdf"
name="account.report_invoice"
file="account.report_invoice"
attachment_use="True"
attachment="(object.state in ('open','paid')) and
('INV'+(object.number or '').replace('/','')+'.pdf')" //拼接文件名
/>
![](https://common.cnblogs.com/images/copycode.gif)
![](https://common.cnblogs.com/images/copycode.gif)
三:报表模板
![](https://common.cnblogs.com/images/copycode.gif)
![](https://common.cnblogs.com/images/copycode.gif)
<template id="report_invoice">
<t t-call="report.html_container">
<t t-foreach="docs" t-as="o">
<t t-call="report.external_layout">
<div class="page">
<h2>Report title</h2>
<p>This object's name is <span t-field="o.name"/></p>
</div>
</t>
</t>
</t>
</template>
![](https://common.cnblogs.com/images/copycode.gif)
![](https://common.cnblogs.com/images/copycode.gif)
通过调用external_layout
来给报表添加默认的头部和尾部,pdf内容会是<div class="page">
里的内容。
模板id需与报表声明中一致,比如上面的account.report_invoice
,由于这是qweb模板,可以在docs
对象中取得字段内容。
四:报表嵌入二维码
在controller中生成二维码,然后在生成报表时嵌入:
![]('/report/barcode/QR/%s' % 'My text in qr code')
还可以使用查询url来传多个参数:<img t-att-src="'/report/barcode/?
type=%s&value=%s&width=%s&height=%s'%('QR', 'text', 200, 200)"/>
五:报表格式
文件格式用report.paperformat记录来定义:
![](https://common.cnblogs.com/images/copycode.gif)
![](https://common.cnblogs.com/images/copycode.gif)
name (必选) - 用于查找及区分的名字
description - 格式的描述
format - 一个预定义的格式如(A0-A9,B0-B10等)或自定义,默认是A4
dpi - 输出的DPI,默认90
margin_top, margin_bottom, margin_left, margin_right - mm为单位的margin值
page_height, page_width - mm为单位的尺寸
orientation - 横向或纵向 Landscape , Portrait
header_line - boolean,是否显示标题行
header_spacing - mm为单位的头部空白
![](https://common.cnblogs.com/images/copycode.gif)
![](https://common.cnblogs.com/images/copycode.gif)
![](https://common.cnblogs.com/images/copycode.gif)
![](https://common.cnblogs.com/images/copycode.gif)
<record id="paperformat_frenchcheck" model="report.paperformat">
<field name="name">French Bank Check</field>
<field name="default" eval="True"/>
<field name="format">custom</field>
<field name="page_height">80</field>
<field name="page_width">175</field>
<field name="orientation">Portrait</field>
<field name="margin_top">3</field>
<field name="margin_bottom">3</field>
<field name="margin_left">3</field>
<field name="margin_right">3</field>
<field name="header_line" eval="False"/>
<field name="header_spacing">3</field>
<field name="dpi">80</field>
</record>
![](https://common.cnblogs.com/images/copycode.gif)
![](https://common.cnblogs.com/images/copycode.gif)
六:查看报表
报表是标准的web页面,所以可以通过链接直接访问:
html版本报表可以通过 : http://localhost:8069/report/html/报表名/1
pdf版本通过 : http://localhost:8069/report/pdf/报表名/1
odoo10学习笔记十三:qweb报表的更多相关文章
- python3.4学习笔记(十三) 网络爬虫实例代码,使用pyspider抓取多牛投资吧里面的文章信息,抓取政府网新闻内容
python3.4学习笔记(十三) 网络爬虫实例代码,使用pyspider抓取多牛投资吧里面的文章信息PySpider:一个国人编写的强大的网络爬虫系统并带有强大的WebUI,采用Python语言编写 ...
- java之jvm学习笔记十三(jvm基本结构)
java之jvm学习笔记十三(jvm基本结构) 这一节,主要来学习jvm的基本结构,也就是概述.说是概述,内容很多,而且概念量也很大,不过关于概念方面,你不用担心,我完全有信心,让概念在你的脑子里变成 ...
- Go语言学习笔记十三: Map集合
Go语言学习笔记十三: Map集合 Map在每种语言中基本都有,Java中是属于集合类Map,其包括HashMap, TreeMap等.而Python语言直接就属于一种类型,写法上比Java还简单. ...
- Vue学习笔记十三:Vue+Bootstrap+vue-resource从接口获取数据库数据
目录 前言 SpringBoot提供后端接口 Entity类 JPA操作接口 配置文件 数据库表自动映射,添加数据 写提供数据的接口 跨域问题 前端修改 效果图 待续 前言 Vue学习笔记九的列表案例 ...
- odoo10学习笔记七:国际化、报表
转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/11189297.html 一:国际化(模块翻译) 我们开发的模块要国际化通用,就要开发出不同的语言支持. 这些 ...
- odoo10学习笔记八:qweb引擎
转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/11189307.html 一:简介 QWeb是一个基于xml的模板引擎,用于生成HTML片段和页面,模板指令是 ...
- java jvm学习笔记十三(jvm基本结构)
欢迎装载请说明出处:http://blog.csdn.net/yfqnihao 这一节,主要来学习jvm的基本结构,也就是概述.说是概述,内容很多,而且概念量也很大,不过关于概念方面,你不用担心,我完 ...
- python 学习笔记十三 JQuery(进阶篇)
jQuery 是一个 JavaScript 库. jQuery 极大地简化了 JavaScript 编程. 安装jQuery 有两个版本的 jQuery 可供下载: Production versio ...
- SharpGL学习笔记(十三) 光源例子:环绕二次曲面球体的光源
这是根据徐明亮<OpenGL游戏编程>书上光灯一节的一个例子改编的. 从这个例子可以学习到二次曲面的参数设置,程序中提供了两个画球的函数,一个是用三角形画出来的,一个是二次曲面构成的. 你 ...
随机推荐
- cobalt strike入门和防护
1.入门: https://blog.csdn.net/localhost01/article/details/86741124 2.cs的防护: 由于关乎渗透人员自身的安全,建议大家好好看看,这里贴 ...
- C++学习七 C++实现add(1)(2)(3)
一.代码实现: class Yoba { public: Yoba(int n) : _n(n) {} Yoba operator() (int n) { return Yoba(_n + n); } ...
- [C8] 聚类(Clustering)
聚类(Clustering) 非监督学习:简介(Unsupervised Learning: Introduction) 本章节介绍聚类算法,这是我们学习的第一个非监督学习算法--学习无标签数据,而不 ...
- LINUX下查看点云图————point cloud(.ply .vtk .pcd)
首先,你要确定点云的格式:.pcd(.vtk) 还是 .ply 如果是.pcd(.vtk),那么可以用pcl工具查看: 1.安装pcl,官网链接点击打开链接 sudo add-apt-reposito ...
- RSA加密与解密
/// <summary> /// RSA 公钥加密 /// </summary> /// <param name="content">要加密的 ...
- Pycharm2019.2.4专业版激活
Pycharm2019.2.4专业版激活 IDE是开发者创建程序时使用的的软件包,它通过简单的用户界面集成多个高度关联的组件,从而最大化提升编程体验和生产效率:本质上,IDE是一种改进代码创建.测试和 ...
- HTML+CSS基础 css的尺寸
css的尺寸 width 宽 height高 Line-light 行高 行高是由三部分构成,上间距.文本高度.下间距. 且上下间距相等.所以文字居中 行高.一旦设置行高了,元素内部必须 ...
- vs2017离线包下载安装并且不占用C盘空间使用教程
安装vs2017,前提是你的环境是.NET4.6,VS2017在下载好安装程序安装的时候,会根据你选择的功能模块来下载所需要的安装程序,微软.安卓和苹果等平台的SDK.模拟器和第三方扩展功能等会在用户 ...
- k8s服务器内核参数调整
1. net.bridge.bridge-nf-call-iptables = 1net.bridge.bridge-nf-call-arptables = 1net.bridge.bridge-nf ...
- Kubernetes service 使用定义
Kubernetes service 使用定义 介绍说明 • 防止Pod失联• 定义一组Pod的访问策略• 支持ClusterIP,NodePort以及LoadBalancer三种类型• Servic ...