(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各个方面进行了较为深度详细的解析,故而本系列博客按书本的各章顺序编排,并只作为简单的读书笔记,详细讲解请购买原版书籍(绝对物超所值).---- ...
随机推荐
- Java数据结构之回溯算法的递归应用迷宫的路径问题
一.简介 回溯法的基本思想是:对一个包括有很多结点,每个结点有若干个搜索分支的问题,把原问题分解为对若干个子问题求解的算法.当搜索到某个结点.发现无法再继续搜索下去时,就让搜索过程回溯(即退回)到该结 ...
- Dynamics AX 2012 R2 业务系列
在之前的一系列博文里,Reinhard介绍了Dynamics AX Demo的安装与配置.相信同学们看完后,都已经成功拥有了一个测试环境. 众所周知的是,ERP作为一个特殊的软件系统,他有着背后的业务 ...
- linux6.*无法正常启动has进程解决方案
1. 数据库安装成功之后:发现ohasd进程存在异常:[root@oracle234 ~]# su - grid[grid@oracle234 ~]$ ps -ef| grep ohasdgrid ...
- 最近几天玩freebsd奋斗成果总结
玩freebsd发现真的很累人..相信如下问题第一次玩freebsd都遇到过: 安装系统默认只有文本模式,需要手工安装gnome,kde等desktop environment. Freebsd安装. ...
- javascript - 可编辑表格控件 支持全键盘操作(无JS框架)
项目中经常会用到表格编辑控件,网上也有不少,但是确实没有完全符合我要求的, 自己写一个吧! 1.该控件支持 数据显示列,文本编辑列,选择列,下拉列,索引列,删除列 六种列类型 2.支持全键盘操作,自定 ...
- ip相关
查看ip ifconfig -a 查看端口占用 ps -aux | grep tomcat
- javascript高级程序设计---第二、三章
在HTML中引用javaScript javascript的几个属性 type async(异步加载 只适用于外部JS且IE8以上 HTML5规范 先于load执行) src defer(延迟加载 ...
- 【转】解决Delphi WebBrowser 无法调用当前浏览器的版本
procedure TregedtIE.FormCreate(Sender: TObject); begin WriteAppNameToReg; WebBrowser1.Navi ...
- Android开发——搭建最新版本的Android开发环境
http://www.cnblogs.com/smyhvae/p/3788534.html http://www.cnblogs.com/xdp-gacl/p/4322165.html http:// ...
- 佛洛依德 c++ 最短路径算法
//20142880 唐炳辉 石家庄铁道大学 #include<iostream> #include<string> using namespace std; #define ...