![]() |
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> |
![]() | 使用够简单吧! |