导出模板共分为两种格式,一种是 Excel 格式,一种是 Jasper 格式。Excel 格式用 WPS 或者 Office 打开制作,Jasper 需要用 JasperSoft Studio 打开制作。
Excel 格式的导出模板根据数据类型分为运单,费用,品名等,表示一行代表什么样的数据。表达式为 ${变量表达式}
如,运单类型的话,就是表示${rows}
代表要导出的运单列表,费用的话,就是表示${rows}
代表要导出的费用列表,品名的话,就是表示${rows}
代表要导出的申报信息(货物信息)列表。
内置变量包括:
一般直接在单元格输入${变量表达式}
即可。如下图例子
这个是一个箱单发票模板,品名类型,意味着每一行代表一个申报信息。firstRow 就是第一行的申报信息,我要显示客户单号,根据 申报信息字典,表达式如下:
${firstRow.yunDanEntity.keHuDanHao}
firstRow.yunDanEntity
就是这个申报信息的 运单字典
firstRow.yunDanEntity.keHuDanHao
就是这个申报信息对应的运单的客户单号
这个模板导出来的结果,标红的单元格就会显示这票单的客户单号
循环就是将数组类型的数据循环显示出来,写到要循环的那一行的第一格的批注上:
jx:each(items="[列表变量表达式]" var="[每一行的变量名字]" lastCell="[覆盖格子范围]")
列表变量表达式 |
要循环的列表数据,表达式返回列表数据,最常用的就是内置变量 |
每一行的变量名字 | 这个自行取名即可,但是后续循环体的单元格的表达式要对用得上,比如 rows 代表申报信息列表的话,你取 row 的话,row 就代表每一行的申报信息,那么单元格里面显示当前申报信息的数据的话,表达式就是 ${row.XXX} 。如果你取名为 product 的话,表达式就是 ${product.XXX} |
覆盖格子范围 |
就是这个循环命令能作用的区域,比如 Z30 ,意思是从当前命令批注单元格,到 Z30格 (第 Z 列,第30 行的单元格) 都会作用到。 一般 30 就是当前循环的行号, Z 就是要覆盖的最大列号。 |
如下图:
上面介绍到基本的循环命令,但是有时候,有些需求需要将当前的列表做一些合并再去循环,这样就借助一些 常用表达式 做一些合并再来循环。
比如,有个费用类型的账单模板,rows
代表费用列表,如果不分组的话,循环命令导出来的将会是一行一笔费用。
现在想一行一票单,那就要将 rows
按照运单分组,达到一行一票单来显示。如下图,循环的命令为:
jx:each(items="rows" groupBy="yunDanId" lastCell="Z5")
这里有一个 groupBy
的参数,意思是将费用列表 rows
按照 费用字典 里的 yunDanId
(运单 id) 分组,然后再循环,每一组的变量名字为 group
。
那么在循环体的单元格里面,group
这个变量就代表同一票单的费用列表。比如下面图,要显示客户单号,表达式就是:
${group.items[0].yunDanEntity.keHuDanHao}
group.items[0]
就是当前分组的费用列表的第一笔 费用字典
group.items[0].yunDanEntity
就是这笔费用的 运单字典
group.items[0].yunDanEntity.keHuDanHao
就是这票单的客户单号
Jasper 格式主要用来制作面单和发票,最终生成 PDF 格式的面单和发票。需要 下载安装 JasperSoft Studio 来打开。 如果你不熟悉Jasper模板制作,请先阅读 Jasper 模板制作的基本教程
$F{字段名}
来显示当前单件的数据,如显示当前单件的子转单号,公式就是 $F{ ziZhuanDanHao}
。注意,字段名需要在 Jasper Studio 界面的左下方的 Fields s事先新建定义好,并且跟对对应的字段名(Name)和类型(Class)一致。$P{yunDanEntity}.getKeHuDanHao()
。注意,要使用参数变量,需要在 Jasper Studio 界面的左下方的 Parameters 事先新建定义好,并且跟对对应的参数名(Name)和类型(Class)一致。注意:Jasper 里面的表达式语法遵循 Java 语法,因此访问字典对应的数据的话,要转换为
getXXXX()
。比如要显示运单的客户单号,表达式不能写成$P{yunDanEntity}.keHuDanHao
,而是应该写成$P{yunDanEntity}.getKeHuDanHao()
,并且大小写敏感, 字典字段名的第一个字母(如此例子就是 k)要改为大写。
介绍 | 类型 | 使用场景 | 数据列表类型 | 参数 |
系统标签 运单的系统标签默认使用的是系统默认模板,你可以根据你的业务制作自己的系统标签。上传模板之后即可生效。新运单将按照模板生成系统标签。
|
运单 | 系统标签 |
单件字典 列表,
|
当前运单的运单字典,如
|
系统发票 运单的系统发票默认使用的是系统默认模板,你可以根据你的业务制作自己的系统发票。上传模板之后即可生效。新运单将按照模板生成系统发票。
|
运单 | 系统发票 |
|
当前运单的运单字典,如
|
自定义 LB 自定义自己的业务面单。 使用
|
自定义 LB | 运单操作 |
单件字典 列表,
|
当前运单的运单字典,如
|
自定义转单发票 转单发票一般经由打单接口从代理获取,但是有些业务(如代理不返回转单发票)是本地生成。这时候,系统会根据转单模板来生成转单发票,你可以根据你的业务制作自己的转单发票。上传模板之后即可生效。新运单将按照模板生成系统发票。
|
运单 | 转单发票 |
|
当前运单的运单字典,如
|
包号标签 包号标签用于打包之后,贴到已经打包的包裹上的面单,一个包号一页,生成PDF。
|
包号 | 运单操作 |
包号字典列表,如:
|
无 |
顺序标签 用于批量打印条码。在运单主列表随便选择一票单,点击下方的打印按钮,即可呼唤出打印对话框。然后,输入要打印的单号格式,打勾顺序标签,即可按照制作好的顺序标签打印,一般用于一些特殊业务需求,批量打印条码。 所输入的单号格式必须符合“任意字符组合 + 一个字母 + 1到3位数字”。例如:ABC123X4 或 XYZ789A56。以 ABC123X4 为例,系统就会将 ABC123 以 billNo 作为参数传入,数据列表为字符串列表,字段名为 orderedBarcode,数据列表一共 4 个: ABC123X, ABC123X002, ABC123X003, ABC123X004。
|
不限 | 顺序标签 |
$ 生成的单号列表,一般用于设置到模板的条码值。如果输入 “ABC123X4”,$ |
主单号, 如果输入 ABC123X4, 那么 |