以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]如何在加载的table(SQLTable类型)实现列于列之间的公式运算?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=74307)

--  作者:twef
--  发布时间:2015/9/8 10:56:00
--  [求助]如何在加载的table(SQLTable类型)实现列于列之间的公式运算?
 

查询“窗口1”中的SQLTable类型的“table1”加载了表A中的“应支付金额”、“ 已支付金额”列数据,我在“窗口1 _table1”中通过代码“DataTables("窗口1_Table1").DataCols.Add("未支付金额", Gettype(Double))”新增了“未支付金额”列,请教如何通过代码实现“未支付金额=应支付金额-已支付金额”功能


--  作者:Hyphen
--  发布时间:2015/9/8 11:11:00
--  

方法一,使用表达式列

http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=74305

 

方法二,在DataColChanged 中跟踪“应支付金额”和“ 已支付金额”列值的变动,然后更新未支付金额列的值

http://www.foxtable.com/help/topics/0625.htm


--  作者:yan2006l
--  发布时间:2015/9/8 11:24:00
--  
DataTables("订单").DataCols.Add("金额", GetType(Double), "[数量] * [单价] * (1 - [折扣])")
--  作者:twef
--  发布时间:2015/9/8 11:28:00
--  

方法一、新增的“未支付金额”表达式列不能实现统计功能

方法二、不可行,“未支付金额”列没有数据。我想直接点击查询按钮就能实现计算功能


--  作者:大红袍
--  发布时间:2015/9/8 11:31:00
--  

1、DataTables("窗口1_Table1").DataCols.Add("未支付金额", Gettype(Double),"应支付金额-已支付金额")

 

2、直接用表达式列吧,看1


--  作者:twef
--  发布时间:2015/9/8 11:50:00
--  

未支付金额列还是没有数据,大红袍老师麻烦您帮忙看一下代码有没有错误

Dim Filter As String

.............

.............

DataTables("窗口1_Table1").LoadFilter = Filter \'设置加载条件
DataTables("窗口1_Table1").Load() \'加载数据
DataTables("窗口1_Table1").DataCols.Add("未支付金额", Gettype(Double),"[应支付金额] - [已支付金额]")
With Tables("窗口1_Table1")
    .Cols("应支付金额").GrandTotal = True 

    .Cols("已支付金额").GrandTotal = True
    .Cols("未支付金额").GrandTotal = True
    .GrandTotal = True \'显示合计模式
End With


--  作者:大红袍
--  发布时间:2015/9/8 11:55:00
--  

呃,不可能吧?

 

DataTables("窗口1_Table1").DataCols.Add("未支付金额", Gettype(Double),"isnull([应支付金额],0) - isnull([已支付金额],0)")


--  作者:twef
--  发布时间:2015/9/8 12:02:00
--  
 大红袍老师,还有个问题就是用了表达式列后未支付金额是显示出来了,但是“.Cols("未支付金额").GrandTotal = True”这个功能没有实现,不知道怎么实现

--  作者:大红袍
--  发布时间:2015/9/8 12:12:00
--  
呃,不应该,例子说明。
--  作者:twef
--  发布时间:2015/9/8 12:32:00
--  

问题已解决了,谢谢大红袍老师