以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]代码增加表达式列的问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=49354)

--  作者:klg1011
--  发布时间:2014/4/16 16:43:00
--  [求助]代码增加表达式列的问题
http://www.foxtable.com/help/topics/2305.htm
此帮助里最下面有这么一段代码,是把组合后的统计结果绑定到窗口中的Table控件上显示,其中代码的意思是增加了一列表达式列。那么有没有办法在主界面上实现这种效果呢?

Tables("窗口1_Table1").DataSource = dt1 \'将统计结果绑定到Table
With DataTables("窗口1_Table1").DataCols  \'用表达式列计算库存数据
    .Add("库存_数量",Gettype(Integer), "IsNull([进货_数量],0) - ISNULL([销售_数量],0) - ISNULL([退货_数量],0)")
    .Add("库存_金额",Gettype(Double), "[库存_数量] /[进货_数量] * [进货_金额]") 
End With

--  作者:Bin
--  发布时间:2014/4/16 16:46:00
--  
同样可以这么做的啊.你自己动手试试不就知道了. 无须问的,这类问题.
--  作者:klg1011
--  发布时间:2014/4/16 16:59:00
--  
因为dt1是fxDataSource类型,没有DataCols 属性的,帮助里是把dt1绑定到窗口Table上后使用的,但在主界面数据表里怎么办呢?不能直接使用dt1的。
--  作者:Bin
--  发布时间:2014/4/16 17:01:00
--  
你生成表.不就有Datatable了么.你不生成表.和来的主界面?  你生成fxDataSource 位置给窗口表,窗口表不就是主界面么?



--  作者:klg1011
--  发布时间:2014/4/16 17:07:00
--  
谢谢!!!改好了,代码测试通过!!!

Dim b1 As New SQLGroupTableBuilder("统计表1","开票明细表")
Dim dt1 As fxDataSource
b1.C     ‘  奇怪,此段连接外部数据源名称的代码放到论坛上不显示哦 b 1 .  C  o  n  ecti 
b1.Groups.AddDef("公司名称") 
b1.Totals.AddDef("金额","2014年_开票金额")

b1.Filter =" [开票日期] >= #1/1/1999# And [开票日期] <= #12/29/2014#"

dt1 = b1.BuildDataSource()
Dim b2 As New SQLGroupTableBuilder("统计表2","回款明细表")
Dim dt2 As fxDataSource
b2.C
b2.Groups.AddDef("公司名称") 
b2.Totals.AddDef("回款金额","2014年_回款金额")

b2.Filter =" [开票日期] >= #1/1/1999# And [开票日期] <= #12/29/2014#"
dt2 = b2.BuildDataSource()
dt1.Combine("公司名称",dt2,"公司名称") 
dt1.Show("统计表1")
With DataTables("统计表1").DataCols  
       .Add("2014年_金额",Gettype(Double), "IsNull([2014年_开票金额],0) - ISNULL([2014年_回款金额],0) ") 
End With

MainTable = Tables("统计表1")

[此贴子已经被作者于2014-4-16 17:10:30编辑过]