1.     理论基础

注:我采用libreoffice5.2设计讲解

1.1.     定义模板指令

模板指令的语法和Genshi 模板语言相兼容,可以用Libreoffice( Write, Calc)来设计

1.1.1.      文本占位字段

我们可以在odt 文件中,通过“插入”->“字段”->“更多字段”->“功能”

类型选择“占位符”,格式选择“文字”,占位符写点位字符串,引用写指令,

最后点“插入”,这时在光标处就完成文本点位字段的定义

1.1.2.      超链接

通过“插入”->“超链接”

在URL 写上模板指令 要以“python://” 开头

文本,写上显示的文字

1.1.3.      输入字段

这个是我们用的最多,通过“插入”->“字段”->“更多字段”->“功能”

类型选择“输入字段”,然后在参照写上模板指令,点“插入”,再写上标识的名称

完成输入字段的定义

1.1.4.      框架

我们有时要在文档中放入图片,比如产品图,这时就要用到框

通过“插入”->框架->框架, 然后选择“选择”标签,在“名称” 框那里输入模板指令

必须以 image: 开头 如: image: asimage(user.company_id.logo)

1.2.     取回数据

前面一节讲了如何在模板中定义容器,这时就要把真实的数据填入其中

当我胶用默认的解析器,创建任何一个模型的报表时,有些预定义的变量

l  objects :当创建报表时,它是对象的一个列表,当你想得到你所选的所有数据,你就要对这个变量做循环处理

l  o: 如查你只选择了一个对象,你就可以直接用这个变量,没必要创建循环

l  data: 来自向导的数据

l  user: 请求生成报表时的用户

l  time: 基于python库操作时间

以合作伙伴对象为例来说明

你想得到你选择第一个客户的名称

<objects[0].name>

你可以得到 erp系统中”设置”->“技术”->”数据结构”->模型  里面所有模型的数据

得到当前用户公司的币种

<user.company_id.currency_id.code>

这个获取方法和系统代码获取数据一样的方式,通过面向对象的“.”

1.3.     条件部分

在现实生活也有很多的判断,这个报表也有。

通过<if> </if> 一对一对出现

如:

<if test="objects[0].customer">

This text is being printed when partner is a customer.

</if>

如果合作伙伴是客户,就打印中间那段话

因为要成对出现,可以看出,至少要定义两个独立的容器

当多重判断时,我们用choose 来定义

<choose>
<when test="objects[0].customer">
This text is being printed when partner is a customer.
</when>
<when test="objects[0].supplier">
This text is being printed when partner is a supplier.
</when>
<otherwise>
This text is being printed in all the other occasions.
</otherwise>
</choose>

如果是客户,就打印客户那段话,若是供应商,就打印供应商那段话,那两个都不是,就打印 otherwise 中间那段话

1.4.     循环部分

这个在系统中还是用的很,当你选择了多个对象时。或你在一个订单里面加入多个产品时,

这些数据要呈现出来都要用到循环。

通过成对的<for> </for>来实现

 <for each="one_partner in objects">
<if test="one_partner.customer">
<one_partner.name>
</if>
</for>

上面用了for来循环,同时中间还有一个条件语句

上面功能是把你所选的合作伙伴,只会是客户类型的,才会打印出来

one_partner 这个面对不同的对象,自己可以取一个对应的名字,用来在内部循环用

1.5.     附加方法

为了方便操作,定义一系列的方法

1.5.1.      语言相关的方法

l  getLang:  为模板设定默认语言

l  gettext:  为给定的文件获得译文

l  _: 功能和gettext一样

l  getLang: 得到当前影响 模板的语言

l  currency_to_text: 转换货币浮点格式

1.5.2.      数学相关的方法

l  sum_field:得到列表中对象的命名字段的和

l  sumif: 得到所选择的列表中对象指定条件的命名字段的和

1.5.3.      统计方法

l  average: 得到所有列表对象字段的平均数

l  count:得到列表中对象的总数

l  count_blank: 得到字段命名为空的列表中对象的数目

l  countif: 得到指定条件的列表中对象的数目

l  larger:得到列表对象最大值 k-th

l  max_field: 得到列表对象最大值

l  min_field: 得到列表对象最小值

l  small: 得到列表对象最小值 k-th

1.5.4.      时间相关方法

l  dec_to_time: 把时间转换为 hh:min 格式

l  time: 得到操作时间

1.5.5.      条形码相关方法

l  barcode: 转换数字为条形码

1.5.6.      帮助方法

l  asarray: 得到所有对象的命名字段为一个列表

l  asimages: 转换二进制数据为图片

l  bool_as_icon: 翻译布尔值 为 文本

l  browse: 得到对象列表

l  chunks: 把对象列表拆分成组

l  debugit: 帮助调试模板

l  erp2_gw: 插入EPL v2’gw’ 命令

l  field_accuracy: 得到对象字段的精度

l  field_size: 得到对象字段的最大范围

l  get_attachments:得到对象的附件

l  get_label:得到字段名称的译文

l  get_name: 得到对象的表术文

l  get_selection_item: 得到下接人工设定的字符

l  html_embed_image:得到html文档中插入的图片

l  html_escape: 过滤html文档中不安全的字符

l  html_builduri: 从字典中组合成uri字符串

l  html_prettyuri: 转换成安全的uri字符串

l  insert-subreport: 插入字报表

l  itemize:

l  safe:得到安全的表达式

l  search:在对象列表中做搜索

l  search_ids:  只在列表对象的id中做搜索

(41) Aeroo 模板设计基础教程的更多相关文章

  1. iOS10 UI设计基础教程

    iOS10 UI设计基础教程 介绍:本教程针对iOS初级开发人员,基于iOS 10系统,使用Swift 3.0语言讲解如何进行UI设计.本教程内容涵盖UI基础构成.UI元素.自动布局.自适应UI.UI ...

  2. 《开源网店系统iWebShop2.0模板开发教程》的说明

    <开源网店系统iWebShop2.0模板开发教程>是网上广为流传的一个文档,有点问题. 其中的第4章: ========================================== ...

  3. GIS案例学习笔记-CAD数据分层导入现有模板实例教程

    GIS案例学习笔记-CAD数据分层导入现有模板实例教程 联系方式:谢老师,135-4855-4328,xiexiaokui#qq.com 1. 原始数据: CAD数据 目标模板 2. 任务:分5个图层 ...

  4. phpcms v9模板制作教程

    phpcms v9模板制作教程(转载) 第一节 1.首先下载phpcms v9的集成安装包并安装,这里就不详细说明了. 2.本地调试建议大家使用APMserver,或者wampserver等,可以到P ...

  5. phpcms新建模板页教程

    phpcms新建模板页教程1 直接去template文件夹里的复制的模板页 比方说list1.html2 去后台 界面模板风格 default 默认模板 点击详情列表 找到list1.htm 设置中文 ...

  6. (42) Aeroo 模板实战

    用writer设计一个采购单的模板 我用的是libreoffice 5.2.x 对于这个表格是通过工具栏上的插入指定的表格行和列完成,然后排版 对于单号po00001 这这样插入的 这样就完成一个订单 ...

  7. phpwind9.0模板制作教程——制作论坛风格

    由于论坛模板机制和门户等模板机制不同,所以今天我就先重点讲讲论坛模板制作的大概过程. 一.先来熟悉下phpwind9.0的论坛模板机制. 其实phpwind9.0的模板机制和discuzx2.5差不多 ...

  8. phpcms v9模板制作教程(转载)

    第一节 1.首先下载phpcms v9的集成安装包并安装,这里就不详细说明了. 2.本地调试建议大家使用APMserver,或者wampserver等,可以到PHPCMS吧官方网站首页链接下载.安装好 ...

  9. ASP.NET CMS模板培训教程

    注意:此文档中出现所有的类,都是公司内部的,也就是说,只是给公司内部人员培训的一篇文章而已,如果其他的人看到了, 看不懂里面的类,那是因为这都是我公司内部的框架. 首先是进入我们的系统的后台,然后选择 ...

随机推荐

  1. VS2015/2013/2012 IIS Express Debug Classic ASP

    参考资料: https://msdn.microsoft.com/en-us/library/ms241740(v=vs.100).aspx When you attach to an ASP Web ...

  2. RDIFramework.NET开发实例━表约束条件权限的使用-WinForm

    RDIFramework.NET开发实例━表约束条件权限的使用-WinForm 在实际的应用中,客户常有这样的需求,指定用户或角色可以看指定条件下的数据,这里的“指定条件”在RDIFramework. ...

  3. Linux系统编程--文件IO操作

    Linux思想即,Linux系统下一切皆文件. 一.对文件操作的几个函数 1.打开文件open函数 int open(const char *path, int oflags); int open(c ...

  4. 让Docker容器使用静态独立的外部IP(便于集群组建)

    需要使用Docker虚拟化Hadoop/Spark等测试环境,并且要可以对外提供服务,要求是完全分布式的部署(尽量模拟生产环境).那么我们会遇到几个问题: Container IP 是动态分配的 Co ...

  5. Shell脚本关于屏幕输出的字符进行颜色控制的问题

    文本终端的颜色可以使用“ANSI非常规字符序列”来生成.举例: echo -e "\033[44;37;5m ME \033[0m COOL" 以上命令设置背景成为蓝色,前景白色, ...

  6. LoadRunner脚本设计、场景设计和结果分析

    本次笔记主要记录LoadRunner脚本设计.场景设计和结果分析   1. 脚本设计       录制模式            手工模式:插入步骤.手动编写       1.1  脚本增强:     ...

  7. mysql++的release版本当机的问题

    今天用mysql++的release写例子,总是当机,仔细查了一下,发现在编mysqlpp库的时候,代码生成设置成了MDD,改成MD就好了.

  8. size_t总结

    1.sizeof返回的必定是无符号整形,在标准c中通过 typedef 将返回值类型定义为size_t. 若用printf输出size_t类型时,C99中定义格式符%zd;若编译器不支持可以尝试%u或 ...

  9. 【转】本地存储-localStroage/sessionStorage存储

    原文地址:[js学习笔记-103]----本地存储-localStroage/sessionStorage存储 客户端存储 l  WEB存储 web存储最初作为html5的一部分被定义成API形式,但 ...

  10. void与void *

    转载:http://blog.csdn.net/geekcome/article/details/6249151 void的含义 void即“无类型”,void *则为“无类型指针”,可以指向任何数据 ...