| 1.横向逻辑关系：单价、数量、金额三者之间有运算逻辑；数量、库存量、实际可用数三者间也有计算逻辑； 2.纵向逻辑关系：合计行； 3.在粗体列中任意输入数据，查看横向、纵向数据的变化；

注：也可以让合计行紧挨底边(不滚动)：; 　　允许有多个合计行：

1.分析Treelist的XML描述文件，横向逻辑关系表达式就在<express>中, 这2句表达式是其关键:

    <TreeList>
     <Properties editAble="true" rowHeight="22" addRowAble="true" totalBgColor="#ffff00">
      <expresses>
       <!-- 金额 ＝ 单价 X 数量 -->
       <express>total=round(price*num, 2)</express>
       <!-- 单价 ＝ 金额 / 数量 -->
       <express>price=round(total/num, 4)</express>
       ...(略)

为什么要写2句表达式呢? 那是因为第二句相当于是告诉硕正组件： 金额的变化将影响单价、而不是影响数量！
2.纵向的逻辑：合计表达式，在名为“total”的列的属性中：

    ...
    <Col name="total" datatype="double" decimal="2" totalExpress="=@sum">总价</Col>
    ...

上面出现的 round( )函数、@origin宏、@sum宏 的含义请参见“开发文档”之“公共内容”.
3.下面是更复杂的横向计算例子，有更多的列参与计算，表达式需要辅以 isAlone 属性才能正确计算， 请参考XML模板文件
其计算的逻辑关系为：
总金额 = 含税单价 X 数量
未税单价 = 含税单价 / (1+税率)
这4个列，任何一个列的变化都会影响到其它列， "isAlone" 属性的含义为右侧列的输入变化单独影响左侧列：

    <expresses>
     <!-- 含税单价、未税单价、数量 变化将影响 总金额 -->
     <express isAlone="true">总金额 = 含税单价 * 数量</express>
     <express isAlone="true">总金额 = 未税单价 * (1+税率) * 数量</express>
     <!-- 总金额、数量 变化将影响 含税单价、未税单价 -->
     <express isAlone="true">含税单价 = 总金额 / 数量</express>
     <express isAlone="true">未税单价 = 总金额 / 数量 / (1+税率)</express>
     <!-- 两个单价会相互影响 -->
     <express isAlone="true">含税单价 = 未税单价 * (1+税率)</express>
     <express isAlone="true">未税单价 = 含税单价 / (1+税率)</express>
    </expresses>

| 使用够简单吧！