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: 得到下接人工设定的字符

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. RDIFramework.NET Web版介绍

    RDIFramework.NET  Web版介绍 B/S结构(Browser/Server,浏览器/服务器模式),是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件.这种模式统一了 ...

  2. 帝国CMS内容模板IF判断

    [e:loop={'selfinfo',50,0,0,"jingshu=$navinfor[jingshu]","id"}]<?php$class1=&q ...

  3. swift项目初体验--教你打造一款个性化图片浏览器(篇幅过大,慎入)

    项目需求:做一个图片浏览器,点击图片查看大图,大图模式下,左右滚动能查看不同的图片. 项目的主要核心技术:图片的弹出和消失动画     项目源代码: Photo-Browser   一.对代码进行重构 ...

  4. 湖大OJ-实验C----NFA转换为DFA

    实验C----NFA转换为DFA Time Limit: 1000ms, Special Time Limit:2500ms, Memory Limit:65536KB Total submit us ...

  5. 如何关闭windows电脑的开机自启程序

    很多时候我们打开电脑会发现,莫名其妙的出现一些已经在运行的程序了,这都是一些开机自启的软件之类的.可能你的电脑配置本来就不怎么高,开机还这样,那估计会很卡顿,那有什么方法可以关闭这些开机自动启动的程序 ...

  6. jquery一个按钮全选和反选

    1.jquery实现复选框全选和反选的方式有好几种,今天遇到一个问题,只用下边的方式生效:function checkAll(){ var check=$('#check_all').is(':che ...

  7. 五、Standard Controllers

    1.standardController:标准的controller 是同页面的standard Object的界面button的功能和逻辑是一样的<apex:page standardCont ...

  8. Dynamics AX 2012 R2 客制化RDP报表参数对话框

    当我们在使用RDP报表时,AX会根据Data Contract,自动生成报表参数对话框上的字段控件.一般情况下,该对话框能够满足我们的需求,但是如果有较为复杂或特殊的需求,就要我们对该对话框进行客制化 ...

  9. 复选框(checkbox)、单选框(radiobox)的使用

    复选框(checkbox).单选框(radiobox)的使用 复选框: HTML: // 复选框 <input type="checkbox" name="chec ...

  10. window resize的时候禁止频繁触发事件

    $(window).resize(function(){ var value=+new Date; assistantForSyncTask.execute(value); assistantForA ...