以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  统计表与引用  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=25278)

--  作者:wilson
--  发布时间: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
--  发布时间: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
--  发布时间: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
--  发布时间:2012/11/6 10:54:00
--  

问题已解决

谢谢!