以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  老问题,求解脱。万分感谢  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=46357)

--  作者:原来那颗白菜
--  发布时间:2014/2/21 15:31:00
--  老问题,求解脱。万分感谢

已解决表问题,能否帮我解决控件代码问题?

我写的代码:

DataTables("表3").DataRows.clear

DataTables("表3").StopRedraw()

Dim B As WinForm.ComboBox = e.Form.Controls("ComboBox1")
If b.Text <> "b" Then
Tables("表3").Filter = " b= \'" & B.Text & "\'"
End If

For Each dr1 As DataRow In DataTables("表1").DataRows
    Dim dr2 As DataRow = DataTables("表3").AddNew
    dr2("a") = dr1("a")
    dr2("b") = dr1("b")
    dr2("c") = dr1("c")
    dr2("d") = dr1("d")
    dr2("e") = dr1("e")
    dr2("f") = dr1("f")
    dr2("g") = 0
    dr2("h") = 0
Next
For Each dr1 As DataRow In DataTables("表2").DataRows
    Dim dr2 As DataRow = DataTables("表3").AddNew
    dr2("a") = dr1("a")
    dr2("b") = dr1("b")
    dr2("c") = 0
    dr2("d") = 0
    dr2("e") = 0
    dr2("f") = 0
    dr2("g") = dr1("g")
    dr2("h") = dr1("h")
Next

Tables("表3").Sort = "a"
DataTables("表3").ResumeRedraw()

 

希望能根据选择,在窗口中生成表3 。表3按a列排序。

不知道什么原因就是生成不了表。求指导

 

实例已改,求指导完成效果。

-------------------------------------------------------------

 

这样说简单点:  

表1:a,b,1,2,3列

表2:a,b,4,5,6列

表C:a,b,1,2,3,4,5,6列

生成的表C数据:

        a,b,1,2,3,0,0,0

        a,b,0,0,0,4,5,6

空值填0

 

不知道说清楚了没

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:abc对账单.foxdb

[此贴子已经被作者于2014-2-21 22:11:33编辑过]

--  作者:Bin
--  发布时间:2014/2/21 15:41:00
--  
1.你要怎么生成对账单?


--  作者:原来那颗白菜
--  发布时间:2014/2/21 15:51:00
--  

有三个表

销售表(列):发货日期|客户单位|产品名称|发货数量|发货单价|产品单价|销售金额(表达式列)

发货表(列):日期|客户单位|付款金额

对账单(列):日期|客户单位|产品名称|发货数量|发货单价|产品单价|销售金额|付款金额

 

对账单表可以用控件点击生成,离开控件后删除表数据。

发货表和付款表之前没关联关系。

对账单表中的列:日期|客户单位|产品名称|发货数量|发货单价|产品单价|销售金额。 数据来自销售表的列:发货日期|客户单位|产品名称|发货数量|发货单价|产品单价|销售金额.其他列填充值为0

对账单表中的列:日期|客户单位|付款金额。数据来自发货表的列日期|客户单位|付款金额,其他列填充值为0

 

 


--  作者:Bin
--  发布时间:2014/2/21 15:53:00
--  
没有看得很懂你想实现的效果
--  作者:原来那颗白菜
--  发布时间:2014/2/21 16:09:00
--  

销售表和发货表数据填充到对账单表。用日期排序


--  作者:狐狸爸爸
--  发布时间:2014/2/21 16:41:00
--  

用select语句:

 

select 发货日期 as 日期, 客户单位,产品名称,销售数量,产品单价,销售数量 * 产品单价 as 销售金额,0 as 付款金额,0 as 欠款金额 From {发货表} Union All Select 付款日期 As 日期,客户单位,"" AS 产品名称,0 as 销售数量,0 as 产品单价,0 as 销售金额,付款金额,0 as 欠款金额 From {付款表}


--  作者:原来那颗白菜
--  发布时间:2014/2/21 16:42:00
--  

这样说简单点:  

表1:a,b,1,2,3列

表2:a,b,4,5,6列

表C:a,b,1,2,3,4,5,6列

生成的表C数据:

        a,b,1,2,3,0,0,0

        a,b,0,0,0,4,5,6

空值填0

 

不知道说清楚了没

 


--  作者:狐狸爸爸
--  发布时间:2014/2/21 16:48:00
--  

呵呵,早说啊,也可以不用SQL语句:

 

DataTables("表3").StopRedraw()

For Each dr1 As DataRow in DataTables("表1").DataRows

      Dim dr2 As DataRow = DataTables("表3").AddNew

      dr2("a") = dr1("a")
      dr2("b") = dr1("b")

      dr2("1") = dr1("1")

      dr2("2") = dr1("2")
      dr2("3") = dr1("3")

      dr2("4") = 0

      dr2("5") = 0
      dr2("6") = 0

Next

For Each dr1 As DataRow in DataTables("表2").DataRows

      Dim dr2 As DataRow = DataTables("表3").AddNew

      dr2("a") = dr1("a")
      dr2("b") = dr1("b")

      dr2("1") = 0

      dr2("2") = 0
      dr2("3") = 0

      dr2("4") = dr1("4")

      dr2("5") = dr1("5")
      dr2("6") = dr1("6")

Next
DataTables("表3").ResumeRedraw()

[此贴子已经被作者于2014-2-21 16:48:32编辑过]

--  作者:原来那颗白菜
--  发布时间:2014/2/21 20:26:00
--  

表代码参透了。能否请教狐爸帮我设置一下窗口控件【生成对账单】代码

 

需要

选择客户单位后点击【生成对账单】按钮,对账单表显示此客户的对账单。

 

 


--  作者:有点甜
--  发布时间:2014/2/21 21:14:00
--  
 回复9楼,是这样吗?