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