Foxtable(狐表)用户栏目专家坐堂 → 统计表与引用


  共有8911人关注过本帖树形打印复制链接

主题:统计表与引用

帅哥哟,离线,有人找我吗?
wilson
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:419 积分:3316 威望:0 精华:0 注册:2012/3/21 10:44:00
统计表与引用  发帖心情 Post By:2012/11/5 19:14:00 [只看该作者]

 

Dim bd1 As New GroupTableBuilder("统计表",DataTables("订单表"))
Dim dt1 As fxDataSource
bd1.FromServer = True  '后台统计
bd1.Groups.AddDef("订单号") '根据型号分组
bd1.Groups.AddDef("编号") '根据型号分组
bd1.Totals.AddDef("数量","数量") '对数量进行统计
dt1 = bd1.BuildDataSource()


Tables("统计表_Table1").DataSource = dt1 '将统计结果绑定到Table

With DataTables("统计表_Table1").DataCols
    .Add("单价",Gettype(Decimal))  '增加数据列
End With

 

我想把产品表的单价引用到("统计表_Table1")表。上述代码调试没问题。下面的代码不知如何编写,调试N次都不成功。

For Each r As Row In Tables("统计表_Table1").Rows
    Dim acmd As New SQLCommand
    Dim adt As DataRow
    acmd.C
    acmd.CommandText = "SELECT 销售价,折扣,金额 From {产品表} Where 订单号 = '" & r("订单号") & "' And  编号 = '" & r("编号") & "'"
    adt = acmd.ExecuteScalar()
    r("单价") = adt("单价")
Next

 

求助,如何将产品表的单价引用到("统计表_Table1")表对应行的单价列里

谢谢!


 回到顶部
帅哥哟,离线,有人找我吗?
wilson
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:419 积分:3316 威望:0 精华:0 注册:2012/3/21 10:44:00
  发帖心情 Post By:2012/11/5 19:20:00 [只看该作者]

窗口按钮代码

我想通过点击按钮动态生成 统计表_Table1

Dim bd1 As New GroupTableBuilder("统计表",DataTables("订单表"))
Dim dt1 As fxDataSource
bd1.FromServer = True '后台统计
bd1.Groups.AddDef("订单号") '根据型号分组
bd1.Groups.AddDef("编号") '根据型号分组
bd1.Totals.AddDef("数量","数量") '对数量进行统计
dt1 = bd1.BuildDataSource()


Tables("统计表_Table1").DataSource = dt1 '将统计结果绑定到Table

With DataTables("统计表_Table1").DataCols
.Add("单价",Gettype(Decimal)) '增加数据列
End With

 

我想把产品表的单价引用到("统计表_Table1")表。上述代码调试没问题。下面的代码不知如何编写,调试N次都不成功。

For Each r As Row In Tables("统计表_Table1").Rows
Dim acmd As New SQLCommand
Dim adt As DataRow
acmd.C
acmd.CommandText = "SELECT 单价 From {产品表} Where 订单号 = '" & r("订单号") & "' And 编号 = '" & r("编号") & "'"
adt = acmd.ExecuteScalar()
r("单价") = adt("单价")
Next

 

求助,如何将产品表的单价引用到("统计表_Table1")表对应行的单价列里

谢谢!


 回到顶部
帅哥哟,离线,有人找我吗?
sgs
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:365 积分:2693 威望:0 精华:1 注册:2011/11/25 7:55:00
  发帖心情 Post By:2012/11/5 21:49:00 [只看该作者]

楼主这样做不是太累了吗?

 

简化一下:

dim Tbl as table = tables("统计表_Table1")

1.直接用sql语句:

dim Sqlstring as string = "select a.订单号,a.编号,b.单价,a.数量 from (select 订单号,编号,sum(数量) as 数量 from 订单表 group by 订单号,编号) a,产品表 b where a.订单号 = b.订单号 and a.遍号 = b.编号"

Tbl.fill(Sqlstring,"数据源",true)

2.代码实现:

Dim gb As New SqlGroupTableBuilder("统计表","订单表")
gb.Connection Name = "数据源"
Dim Cols1() As String = {"订单号","编号"}
Dim Cols2() As String = {"订单号","编号"}
gb.AddTable("订单表",Cols1,"产品表",Cols2)
gb.Groups.AddDef("{订单表}.订单号")
gb.Groups.AddDef("{订单表}.编号")
gb.Groups.AddDef("单价")
gb.Totals.AddDef("数量","数量") '对数量进行统计
Tbl = gb.BuildDataSource()


 回到顶部
帅哥哟,离线,有人找我吗?
wilson
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:419 积分:3316 威望:0 精华:0 注册:2012/3/21 10:44:00
  发帖心情 Post By:2012/11/6 10:54:00 [只看该作者]

问题已解决

谢谢!


 回到顶部