以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  关于合并数据  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=110770)

--  作者:实话实说
--  发布时间:2017/12/9 9:34:00
--  关于合并数据
以下是帮助中关于合并数据的实例,我想从EXCEL表中合并PD05产品1999年的数据,可以吗?

图片点击可在新窗口打开查看此主题相关图片如下:snap1.jpg
图片点击可在新窗口打开查看

Dim Book As New XLS.Book("c:\\test\\订单.xls")
Dim
Sheet As XLS.Sheet = Book.Sheets(0)
Tables("订单").StopRedraw()
\'注意以下数组中列名称的顺序,必须和Excel表中的列顺序一致
Dim
nms() As String = {"编号","产品","客户","雇员","单价","折扣","数量","日期"}
\'注意下面的循环变量从1开始,而不是从0开始,因为Excel表的第一行是标题
For n As Integer = 1 To Sheet.Rows.Count -1
    Dim
r As Row = Tables("订单").AddNew()
    For
m As Integer = 0 To nms.Length - 1
        
r(nms(m)) = Sheet(n,m).Value
    Next
Next
Tables(
"订单").ResumeRedraw()


--  作者:有点蓝
--  发布时间:2017/12/9 9:38:00
--  
合并的条件/逻辑是什么?表中有多个PD05产品,也有多个1999年

参考帮助的第三段代码:http://www.foxtable.com/webhelp/scr/2334.htm



--  作者:实话实说
--  发布时间:2017/12/9 10:11:00
--  
我只想把EXCEL表中1999年的PD05产品合并到foxtable的订单表中,即第2行和第4行
--  作者:有点蓝
--  发布时间:2017/12/9 10:29:00
--  
Dim Book As New XLS.Book("c:\\test\\订单.xls")
Dim Sheet As XLS.Sheet = Book.Sheets(0)
Tables("订单").StopRedraw()
\'注意以下数组中列名称的顺序,必须和Excel表中的列顺序一致
Dim nms() As String = {"编号","产品","客户","雇员","单价","折扣","数量","日期"}
\'注意下面的循环变量从1开始,而不是从0开始,因为Excel表的第一行是标题
For n As Integer = 1 To Sheet.Rows.Count -1
    Dim kh As String = sheet(n,2).Text
    Dim riq As String = sheet(n,7).Text
    If kh="PD05" AndAlso riq.StartsWith("1999")
        Dim r As Row = Tables("订单").AddNew()
        For m As Integer = 0 To nms.Length - 1
            r(nms(m)) = Sheet(n,m).Value
        Next
    End If
Next
Tables("订单").ResumeRedraw()

--  作者:实话实说
--  发布时间:2017/12/9 10:33:00
--  
谢谢,我回去试试
--  作者:实话实说
--  发布时间:2017/12/9 20:24:00
--  
测试通过。进一步,我想在订单窗口中放置2个文本框TextBox1和TextBox2,产品(PDO5)和日期(1999)在文本框中选定。
--  作者:有点甜
--  发布时间:2017/12/10 16:24:00
--  
If kh=e.form.controls("TextBox1").Text AndAlso riq.StartsWith(e.form.controls("TextBox2").Text) Then