搜索 提交
  • AOL/AOI

    AOL:anyline office tag library+ Expression Language
    AOV:anyline office 内置变量
    AOI:anyline office 外部接口

    应用场景:在word中经常用来生成动态表格,如表头、数据、行、列都是动态生成的。这时就不是一个简单的占位符替换可以实现的,而是需要aol标签实现,类似于JSTL标签+EL表达式
    但这个模板通常是运行时用户来设置,也就是说编码阶段并不知道模板内容,更不知道模板中有什么占位符以及模板结构。

    大部分情况可以通过AOL + AOV实现
    极个别非常复杂的内容可以通过AOI调用外部接口实现

    标签格式类似于(以下代码是写在word中而不是xml源码中
    <aol:for data="${smaples}" item="samp" begin="0" end = "21" vol="3" dir="v" scope="body" compensate="/,-">${samp.CODE}</al:for>
    还有些情况需要格式化,如日期,数字,人民币金额等
    <aol:date value="${row.REG_TIME}" format="yyyy-MM-dd"/> 这里是取row对象(或map)的REG_TIME属性值
    <aol:img src="${row.IMG_URL}" style="width:100px;height:50px;"/>
    以及其他一切不能简单输出toString()的格式

    因为是写在word中,无法操作 XML标签,所以只能写在单元格内 通过scope来区分标签体是否包含当前单元格参考【aol:for

    因为是写在word中,标签太长会导致表格变形,所以需要压缩一下,如压缩成<aol:date ref="a1"/>a1定义参考【预定义变量或标签
    属性支持String类型的json格式如user.dept="{id:1}" 可以通过${user.dept.id}输出 
    支持下标${users[0].id}支持集合与map的长度${users.size}是否为空${users.empty} 以及一些【内置占位符常量
    为了进一步压缩标签长度,属性支持缩写,如data="a" 缩写成d="a"参考【属性缩写

    应用时特别注意,代码一般不要让用户自己去写,应该提供一个编辑工具生成

  • aol:merge合并单元格

    <aol:merge scope="tc" by="${groupKey}" ignores="null,-,N/A"/> 参数 必填 默认值 说明 scope/s 否 td tc=纵向合并(同列相邻行合并),tr=横向合并(同行相邻列合并) by 否 参考列约束。支持数字索引(by="
  • aol:for多层行遍历

    Word模板 班级 姓名 考试 成绩 ${dept.NAME} $
  • aol:for遍历多行+合并单元格

    模板: 部门 <aol:for items=”${ depts }” var=”dept” scope=”tr”>Name ${dept.NAME} 编号 ${dept.CODE} 名称 ${dept.NAME} </aol:for> Java代码: DataSet<D
  • col:chart属性

    属性值可以用ChartData指定,也可以用标签属性指定,标签属性优先 <aol:chart type="pie" split-type="bar" split-by="percent" split-pos="5" split-size="60" split-gap="200"/> 或子
  • aol:bar条形码

    长宽以px为单位 注意需要设置条码生成工具 doc.setImager(img); img需要实现Imager的bar方法
  • aol:qr二维码

  • 分组与多层遍历(三)

    通过两层遍历生成行
  • 分组与多层遍历(二)

    ${user.code}
  • 分组与多层遍历(一)

    数据源是用户列表,其中包含了部门信息 根据部门分组 分组结果放到depts中 第一层遍历depts 第二层遍历depts中每个条目里的ITEMS集合(当前部门用户) 根据DEPT_ID和DEPT_NAME这两列分组
  • aol:html html格式解析

    有些稍微复制一点的情况可以通过html生成,在aol:hml标签体内的内容按html格式解析 标签体内可以包含aol其他标签及占位符
  • aol:group 分组

    根据指定属性分组后存到新变量中
  • aol:set 变量定义

    对于集合属性经常需要过滤分组等操作,可以通过aol:set计算完后放到新变量中
  • VOI复杂的格式通过外部接口实现

    AOL只能提供简单的编程能力,但有一些比较复杂的结构只通过几个标签难以实现, 可以通过AOI调用外部接口,接口可以返回三种格式 HTML 比较常用的是HTML格式如<table><tr></tr></table>
  • aol:mark 书签

    aol:mark name=”a_${aov:random} 用来生成bookmarkStart + bookmarkEnd
  • 关于标签体中的换行

    如果head/foot所在在段落(p)中没有其他内容,会被删除 正常情况下一般不需要换行,通常是因为标签体中是了个table不得不换行时才会出现。
  • 占位符默认值

    占位符通过:分隔的最后一位引号内或数字表示 ${v1:v2:'张三'} ${v1:v2:123} 多个占位符${a:b:c:'def'} 依次取a,b,c三个key对应的值,直到有值为止,带引号的'张三'表示默认值而不是key 如果没有指定默认值则根据 placeholderDe
  • 内置占位符及属性

    * 当前时间 ${aov:now} * 随机8位字符${aov:random:8} ${aov:string:8} * 随机8位数字${aov:number:8} * 随机10-100数字${aov:number:10:100} * UUID  ${aov:uuid} 对于集合与map类
  • aol:concat 拼接集合或集合条目属性

    用来拼接集合,或集合中条目的属性,也可以根据多列去重
  • aol:for 遍历多行

    把需要遍历的多行,放在aol:for的开始结束标签之内,并指定scope=tr 标题 姓名 ${u.NAME}
  • aol:for 遍历多列

    把需要遍历的个列,入在aol:for的开始结束标签之内,并指定scope=td或tc
  • 几个重要的aol标签属性

    pre:表示预定义标签 var:表示解析结果不输出,但会保存到context中
  • 属性缩写

    为了进一步压缩标签长度,属性支持缩写,如data="a" 缩写成d="a" 注意遇到有相同缩写的属性时,应该写全称避免冲突 data d format f
  • aol:pre 预定义标签

    如果aol标签属性比较多,会造成在表格变形或强制断行。 为了保持排版清晰,可以使用aol:ref预定义标签,在需要输出的位置引用,可以在引用位置以比较短的格式排版。 预定义时统一使用aol:ref不需要限定标签类型如date,for等,只是预定义一些属性,在引用位置如果定义了相同的属性则覆
  • aol:avg/min/max 平均值最大最小值

    平均值 property:计算属性 scale:小数位 * @param round 舍入模式 参考BigDecimal静态常量 *       ROUND_UP        = 0 舍入远离零的舍入模式 在丢弃非零
  • 集合属性

    ${list.size} ${list[0].NAME}
  • aol:for 遍历

    在遇到遍历单元格时for的格式比普通的标签要复杂 与普通标签不同的是,有可能需要控制的是外层tc,tr并且可能是连续的多个 因为tc,tr的外层在word中接触不到所以当前标签只能写在td中 通过scope属性指定 td或tc, tr,默认body即for标签体 先看普通的遍历与JSTL类似 &l
  • aol:checkbox 模拟复选框

    data:先项集合 valuekey:用于判断选中状态的属性 textKey:选项显示文本的属性 vol:每行显示几个选项 rely:根据value集合中的对象的rely属性判断是否选中 split:选项之间的分隔符 value:选中项的值或对象集合,如果是集合需要根据rely取值 type="text" 只显示选中项文本值,不显示选中框
  • aol:money 人民币大写

    人民币大写
  • aol:if 判断

    根据ognl表达式判断
  • aol:number 数字格式化

    format="###,##0.00" 格式化 value="${total}" 值
  • aol:date 日期格式化

    aol:date format="yyyy-MM-dd HH:mm:ss" value="${create_time}"
  • aol:img 图片

    aol:img src=”${FILE_URL_COL}” style=”width:150px;height:150px;” 也可以设置更多占位符 aol:img src=”${FILE_URL_COL}” style=”width:150px;height:${LOGO_HEIGHT}px;”
第一页 上一页 下一页 最后页