(41) Aeroo 模板设计基础教程
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 模板设计基础教程的更多相关文章
- iOS10 UI设计基础教程
iOS10 UI设计基础教程 介绍:本教程针对iOS初级开发人员,基于iOS 10系统,使用Swift 3.0语言讲解如何进行UI设计.本教程内容涵盖UI基础构成.UI元素.自动布局.自适应UI.UI ...
- 《开源网店系统iWebShop2.0模板开发教程》的说明
<开源网店系统iWebShop2.0模板开发教程>是网上广为流传的一个文档,有点问题. 其中的第4章: ========================================== ...
- GIS案例学习笔记-CAD数据分层导入现有模板实例教程
GIS案例学习笔记-CAD数据分层导入现有模板实例教程 联系方式:谢老师,135-4855-4328,xiexiaokui#qq.com 1. 原始数据: CAD数据 目标模板 2. 任务:分5个图层 ...
- phpcms v9模板制作教程
phpcms v9模板制作教程(转载) 第一节 1.首先下载phpcms v9的集成安装包并安装,这里就不详细说明了. 2.本地调试建议大家使用APMserver,或者wampserver等,可以到P ...
- phpcms新建模板页教程
phpcms新建模板页教程1 直接去template文件夹里的复制的模板页 比方说list1.html2 去后台 界面模板风格 default 默认模板 点击详情列表 找到list1.htm 设置中文 ...
- (42) Aeroo 模板实战
用writer设计一个采购单的模板 我用的是libreoffice 5.2.x 对于这个表格是通过工具栏上的插入指定的表格行和列完成,然后排版 对于单号po00001 这这样插入的 这样就完成一个订单 ...
- phpwind9.0模板制作教程——制作论坛风格
由于论坛模板机制和门户等模板机制不同,所以今天我就先重点讲讲论坛模板制作的大概过程. 一.先来熟悉下phpwind9.0的论坛模板机制. 其实phpwind9.0的模板机制和discuzx2.5差不多 ...
- phpcms v9模板制作教程(转载)
第一节 1.首先下载phpcms v9的集成安装包并安装,这里就不详细说明了. 2.本地调试建议大家使用APMserver,或者wampserver等,可以到PHPCMS吧官方网站首页链接下载.安装好 ...
- ASP.NET CMS模板培训教程
注意:此文档中出现所有的类,都是公司内部的,也就是说,只是给公司内部人员培训的一篇文章而已,如果其他的人看到了, 看不懂里面的类,那是因为这都是我公司内部的框架. 首先是进入我们的系统的后台,然后选择 ...
随机推荐
- RDIFramework.NET Web版介绍
RDIFramework.NET Web版介绍 B/S结构(Browser/Server,浏览器/服务器模式),是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件.这种模式统一了 ...
- 帝国CMS内容模板IF判断
[e:loop={'selfinfo',50,0,0,"jingshu=$navinfor[jingshu]","id"}]<?php$class1=&q ...
- swift项目初体验--教你打造一款个性化图片浏览器(篇幅过大,慎入)
项目需求:做一个图片浏览器,点击图片查看大图,大图模式下,左右滚动能查看不同的图片. 项目的主要核心技术:图片的弹出和消失动画 项目源代码: Photo-Browser 一.对代码进行重构 ...
- 湖大OJ-实验C----NFA转换为DFA
实验C----NFA转换为DFA Time Limit: 1000ms, Special Time Limit:2500ms, Memory Limit:65536KB Total submit us ...
- 如何关闭windows电脑的开机自启程序
很多时候我们打开电脑会发现,莫名其妙的出现一些已经在运行的程序了,这都是一些开机自启的软件之类的.可能你的电脑配置本来就不怎么高,开机还这样,那估计会很卡顿,那有什么方法可以关闭这些开机自动启动的程序 ...
- jquery一个按钮全选和反选
1.jquery实现复选框全选和反选的方式有好几种,今天遇到一个问题,只用下边的方式生效:function checkAll(){ var check=$('#check_all').is(':che ...
- 五、Standard Controllers
1.standardController:标准的controller 是同页面的standard Object的界面button的功能和逻辑是一样的<apex:page standardCont ...
- Dynamics AX 2012 R2 客制化RDP报表参数对话框
当我们在使用RDP报表时,AX会根据Data Contract,自动生成报表参数对话框上的字段控件.一般情况下,该对话框能够满足我们的需求,但是如果有较为复杂或特殊的需求,就要我们对该对话框进行客制化 ...
- 复选框(checkbox)、单选框(radiobox)的使用
复选框(checkbox).单选框(radiobox)的使用 复选框: HTML: // 复选框 <input type="checkbox" name="chec ...
- window resize的时候禁止频繁触发事件
$(window).resize(function(){ var value=+new Date; assistantForSyncTask.execute(value); assistantForA ...