3.宏

1.TreeList中的宏

@origin
含义:取修改前的原始值
示例:
 //计算列表达式:
 <express>total2=round(price * num@origin, 4)</express>
 //num@origin表示num列的原始数据


@parent
含义:用于下拉Treelist的过滤表达式中,取父Treelist的当前行、指定列的内容
示例:
 //对city列的下拉执行过滤:
 AF.func("Filter", "province=prov@parent\r\ncity");
 //prov@parent表示取父Treelist的当前行、prov列的内容
 //“父”是相对于下拉Treelist而言


@sum @sumdim @average(或@ave) @max @min @first @last @rows @parentSum
含义:用于Treelist的小计、合计表达式中,分别表示:
@sum - 求和
@sumdim - 数组(以某个字符作为分隔)求和
@parentSum - 求小计中, 树的上一层的合计
@average@ave - 求平均值
@rows - 行数
@max - 最大值
@min - 最小值
@first - 首行值
@last - 末行值
示例:
 //某列的小计表达式:
 <col name="price" subtotalExpress="='均价: '+@ave" />
 
 //复杂一点的:
 <col name="pct" subtotalExpress="='占比例: '+ percent(@sum / @parentSum, 2)" />
  
 <col name="price" subtotalExpress="='方差: '+js('delta', @max, @min)" />


@TreeLevel
含义:1.表示树的级次;
2.如果用于Treelist的小计表达式,则表示小计的分类级次(返回0表示非小计行,1表示最外层).
示例:
//某列的小计表达式:
<col name="price" subtotalExpress="=if(@TreeLevel==1, '总计: '+@sum, '小计: '+@sum)" />


2.Report中的宏

@单元名
含义:该宏很重要,表示数据源填充区内、总行数不确定时的动态单元名,常用于求合计
示例:
 //B列求和:
 =sum(B4:@B4)
 //@B4是取第四行、第二列单元格的内容,由于行是动态填充,所以
 //取数后公式中的该单元格名将被自动改为B5, B6, B7...

@sheet
含义:取其它工作表数据,一般写在单元名后面
示例:
 //取第一个工作表的B4单元格内容
 =B4@sheet1
 
 //取第一个工作表的B4单元格内容和第三个工作表的K8单元格内容之和
 =B4@sheet1 + K8@sheet3
 
 //取第三个工作表的B3:D8矩形区域内的所有单元格内容之和
 =sum(B4:D8@sheet3)

@Alias
含义:取某个别名的单元
示例:
 //取别名为“Price”的单元格内容
 =@AliasPrice
 
 //取第二个工作表、别名为“Sales”的单元格内容
 =@sheet2@AliasSales