以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  代码提示错误,请指一点一下问题出在哪个,,,急......  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=11535)

--  作者:jackshen888
--  发布时间:2011/8/1 20:10:00
--  代码提示错误,请指一点一下问题出在哪个,,,急......

 Dim t1,t2,t3 As Table
Dim i,n As Integer
t1 =Tables("入库单")
n =t1.Cols("入库总数").Index


Dim jb As New SQLJoinTableBuilder("查询表1","入库单")
jb.AddCols("{入库单}.*")
jb.Addexp("入库总数","0.1-0.1")
jb.build


t2 =Tables("查询表1")
t2.StopRedraw
t2.Cols("入库总数").Move(n)
For Each r As Row In t2.Rows
    r("入库总数") = t1.Rows(i)("入库总数")
    i+=1
  r("入库总数") = DataTables("入库单明细").Compute("sum(数量)","入库单号=\'" & r("入库单号") & "\'")
Next
t2.ResumeRedraw

 

t3=Tables("销售订单")
Dim sk As New SQLJoinTableBuilder("查询表2","t2")
sk.AddTable("t2","订单号","t3","订单号")
sk.AddCols("t3.*")
sk.build

 

 

 

 


此主题相关图片如下:tt.jpg
按此在新窗口浏览图片

--  作者:狐狸爸爸
--  发布时间:2011/8/1 21:49:00
--  
你这是外部表,没有指定数据源?
--  作者:jackshen888
--  发布时间:2011/8/1 22:37:00
--  

我现在的目的是这样的,

       父                           子                             孙

销售订单的进度情况-----------从入库单提取(使用交叉统计)------------入库明细单提取入库总数

                          一对多关系                            多对多关系                     

 

 

1、销售订单的订单总数,从销售订单明细中提取各明细的数量

代码    

Dim t1,t2 As Table
Dim i,n As Integer
t1 =Tables("销售订单")
n =t1.Cols("订单总数").Index


Dim jb As New SQLJoinTableBuilder("查询表1","销售订单")
jb.AddCols("{销售订单}.*")
jb.Addexp("订单总数","0.1-0.1")
jb.build


t2 =Tables("查询表1")
t2.StopRedraw
t2.Cols("订单总数").Move(n)
For Each r As Row In t2.Rows
    r("订单总数") = t1.Rows(i)("订单总数")
    i+=1
  r("订单总数") = DataTables("销售订单明细").Compute("sum(数量)","订单号=\'" & r("订单号") & "\'")
Next
t2.MainTable = t2ResumeRedraw

 

 

 

2、计算入库单总数,从入库单明细提取

 代码    Dim s1,s2 As Table
Dim i,f As Integer
s1 =Tables("入库单")
f =s1.Cols("入库总数").Index


Dim cb As New SQLJoinTableBuilder("查询表2","入库单")
jc.AddCols("{入库单}.*")
jc.Addexp("入库总数","0.1-0.1")
jc.build


s2 =Tables("查询表2")
s2.StopRedraw
s2.Cols("入库总数").Move(f)
For Each r As Row In s2.Rows
    r("入库总数") = t1.Rows(i)("入库总数")
    i+=1
  r("入库总数") = DataTables("入库单明细").Compute("sum(数量)","入库单号=\'" & r("入库单号") & "\'")
Next
s2.ResumeRedraw
MainTable = s2

 

3、t2 (销售订单) 和  s2(入库单)进行交叉统计

CrossTableBuilder

 

 

 

这样能在一个命令窗口中写代码吗,,,怎么写,,,,我对这个不太明白,,,谢谢

[此贴子已经被作者于2011-8-1 22:38:47编辑过]

--  作者:blackzhu
--  发布时间:2011/8/2 8:38:00
--  
这个是临时表产生的,我碰到过,应该看得见此表的存在,删除就可.或者项目关掉再开应该可以.
--  作者:狐狸爸爸
--  发布时间:2011/8/2 8:43:00
--  
查询表不能作为SQLJoinTableBuilder的数据来源表,表达式列也不可以的。
--  作者:jackshen888
--  发布时间:2011/8/2 20:02:00
--  
狐爸,,,,,那像我这个问题有没有什么方案可以解决??
--  作者:狐狸爸爸
--  发布时间:2011/8/3 8:33:00
--  

SQLJoinTableBuilder本身可以来自多个数据表,本身也可以使用表达式,本身可以组合多个SQLJoinTableBuilder的查询结果。

还可以作为GroupTableBuilder或者CrossTableBuilder的数据来源。

多看一下帮助,实在搞不定,再做好表上来,输入一点测试数据,说说需要得到的结果。