(42) Aeroo 模板实战
用writer设计一个采购单的模板
我用的是libreoffice 5.2.x

对于这个表格是通过工具栏上的插入指定的表格行和列完成,然后排版
对于单号po00001 这这样插入的



这样就完成一个订单号的插入
这里针对一个订单,就直接用o ,若是针对多个选中的订单就要用 objects 做循环
下面看一下不同单元插入的输入字段



<for each="line in o.order_line">
对于内循环的就不是用o了。就用line,主要根据<for> 里面自己定义的,我是用line


这样就完成一个循环要定义的字段

这时可能有些同学会问,这些字段是哪里来的。下面就告诉大家



当鼠标放上对,就可以显示对应的字段,你就可以拿这些字段名用在报表模板中
对于订单明细,那要单击进去查

是不是很简单,就这样把模板设计完了。
然后新建报表

测试一下效果


我只有一个采购单,那就写1那个序号

这就看到效果,
测试的可以,就把这个报表通过按扭添加到采购订单那里

这里可以到采购订单列表那里看

可以看到添加按钮成功,这样就可以通过点这个按钮进行打印
对于图片,在odt模板是采用插入框架来实现字段定义
用于实际的报表,你们可以结合前一节的教程和这节的实操去完成。
image: asimage(product.product_image) 这个放图片
<for each="o in objects"></for> 对所选项做循环
下面用calc来设计销售订单的模版

分析一下:
针对图片,是插入一个图做为占位符,然后设定它的name属性的值


若是用calc 来设计模板是插入超链接
不用<> 而是用python:// 开头

红色箭头那里是设定对应内容的超链接
后面我用了格式化日期,从而在开头设了 setLang


下面是产品明细:

上面的index,主要用于下面的NO. 对应的编号


在第一次选择对应的内容设置超链接时会相对简单,当要再次修改对应文字的超链接要有一定的小技巧
如:

要再次改变红框字对应的超链接的值
跟我来一起操作
第一步
对着它右击:

第二步:
移到内容上单击:

这时弹出框会消失
第三步:
对着内容双击:

这样就选中了
第四步:
接着单点工具栏的超级链接按钮


修改红框的值,然后保存就可以了
配合上章的函数,可以格式报表的数据,小心操作,就可以设计出自己要用的模板
${(object.name or '').replace('/','_')}_${object.state == 'draft' and 'draft' or ''}.pdf 自定义输出报表文件名
结合report_custom_filename 模块
(42) Aeroo 模板实战的更多相关文章
- (41) Aeroo 模板设计基础教程
1. 理论基础 注:我采用libreoffice5.2设计讲解 1.1. 定义模板指令 模板指令的语法和Genshi 模板语言相兼容,可以用Libreoffice( Write, Ca ...
- velocity模板实战
场景:json配置报文转换遇到的问题:1.json报文转换成map,多节点如何处理?数组如何处理? 2.velocity模板处理数组 3.应用之间rabbitmq通讯map反序列化,数组报错?知识点: ...
- C++模板实战6:迭代器
1 迭代器的类型: 输入迭代器 .前向迭代器.双向迭代器.跳转迭代器以及输出迭代器.这五种迭代器的限制条件从左至右越来越强. 2 输入迭代器需满足的条件: X u(a); X可复制构造 u=a; 可赋 ...
- Android学习系列(42)--Android Studio实战技巧
使用android studio开发项目的一些问题,功能和技巧. 1. 环境 Mac OSX 10.9.5 + Android Studio 0.8.9 2. gradle项目加载超慢 这是因为gra ...
- [js高手之路]Node.js模板引擎教程-jade速学与实战1
环境准备: 全局安装jade: npm install jade -g 初始化项目package.json: npm init --yes 安装完成之后,可以使用 jade --help 查看jade ...
- [js高手之路]Node.js模板引擎教程-jade速学与实战1-基本用法
环境准备: 全局安装jade: npm install jade -g 初始化项目package.json: npm init --yes 安装完成之后,可以使用 jade --help 查看jade ...
- [转]C++ template —— 模板基础(一)
<C++ Template>对Template各个方面进行了较为深度详细的解析,故而本系列博客按书本的各章顺序编排,并只作为简单的读书笔记,详细讲解请购买原版书籍(绝对物超所值).---- ...
- Python Flask打造一个视频网站实战视频教程
下载链接:https://www.yinxiangit.com/607.html 目录: 本套课程从零基础讲解flask开发网站.涉及到的知识点包括:Python和pycharm的安装.urls和视图 ...
- C++ template —— 模板基础(一)
<C++ Template>对Template各个方面进行了较为深度详细的解析,故而本系列博客按书本的各章顺序编排,并只作为简单的读书笔记,详细讲解请购买原版书籍(绝对物超所值).---- ...
随机推荐
- JVM内存管理
前几天公司的郑大晔校上,XXX同事做了JVM的Session,于是趁端午节放假的功夫,研究了一些JVM相关的知识. 在Java生态系统中,JVM占据至关重要的作用,就像一个适配器,它向编程语言(主要是 ...
- DataTable与实体类互相转换
/// <summary> /// DataTable与实体类互相转换 /// </summary> /// <typeparam name="T"& ...
- pm2.5计算和单位换算
1.pm2.5和pm10的计算 PM10a=PM10+PM25a PM25a=PM25+BC+OC+SOA1+SOA2+SOA3+SOA4+SOA5+SOA6+ANA+ASO4+ANO3+ACL+A ...
- Dynamics AX 2012 R2 业务系列-采购业务流程
在博文Dynamics AX R2 业务系列中,Reinhard对这个系列做了一个规划,下面我们就按照规划开始说业务吧. 国际惯例,从采购开始. 1.采购的主要职责 简单点说,采购的主要职责,是从供应 ...
- Python—sqlalchemy
SQLAlchemy SQLAlchemy是Python编程语言下的一款ORM框架,该框架建立在数据库API之上,使用关系对象映射进行数据库操作. #Dialect用于和数据API进行交流,根据配置文 ...
- Java RandomAccessFile用法
RandomAccessFile RandomAccessFile是用来访问那些保存数据记录的文件的,你就可以用seek( )方法来访问记录,并进行读写了.这些记录的大小不必相同:但是其大小和位置必须 ...
- java static静态方法的并发性
在做一个web项目的时候需要做一个通用类去处理一些问题,想到这个类很多地方都有用到,又不想每次都new一个,因此就定义了里面的方法是静态方法,然后又因为多个静态方法都用到了同一个对象,结果定义了一个类 ...
- MVC的多表单
中心思想就是在一个表单内不规定"action",在js里面用@Url.Axtion("视图层","控制器")方法来设置表单的传值. 控制器 ...
- windows 7系统下出现某盘回收站损坏解决办法
今天遇到一个从没有遇见的问题,就是领导说他的回收站损坏了,要我去看下,我一开始也没用辙,网上搜了很多,说在命令提示符里面修改,我试了不行,后来我这样做就好了:1.打开计算机 2.找到工具选项,单击选择 ...
- 21-React的学习
# React的学习 React概述: React是一个用于构建用户界面的JavaScript库. React主要用于构建UI,很多人认为React是MVC中的V(视图). React起源于Faceb ...