Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共5 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:高速合并如何实现相同物料代码合并数量

1楼
zjykyy 发表于:2025/4/13 8:21:00
高速合并多个excel文件时,如何能够将物料代码相同的行的自动合并为一行,并且数量自动累加。即确保物料代码列唯一,而总数量不变。物料代码没有重复的行正常引入即可。
2楼
zjykyy 发表于:2025/4/13 8:25:00
如果可以在高速合并的三个选项中增加这个功能就更好了。

3楼
有点蓝 发表于:2025/4/13 20:13:00
参考:http://www.foxtable.com/webhelp/topics/2334.htm,合并的时候先查一查是否有同代码的行,有就合并,没有就新增

Dim Book As New XLS.Book("c:\test\订单.xls")
Dim 
Sheet As XLS.Sheet = Book.Sheets(0)
Tables(
"订单").StopRedraw()
Dim 
nms() As String = {"物料代码","数量","列1","列2","……"}
For n As Integer = 1 To Sheet.Rows.Count -1
    
Dim bh As String = sheet(n,0).Text
    
Dim dr As DataRow = DataTables("订单").Find("物料代码 = '" & bh & "'")
    If 
dr Is Nothing Then '如果不存在同编号的订单
        
dr =  DataTables("订单").AddNew()
    For 
m As Integer = 0 To nms.Length - 1
        
dr(nms(m)) = Sheet(n,m).Value
    Next
else ‘如果存在就合并数量
dr("数量") = dr("数量")+Sheet(n,1).Value
    End If
Next
Tables(
"订单").ResumeRedraw()
4楼
zjykyy 发表于:2025/4/14 21:21:00
通过版主的指导,已实现需求。但是又碰到另一个问题。我想用OpenFileDialog对话框方式选择excel,而不是只能指定名称和目录读取,请教如何实现。代码如下:

DataTables("随货单引入").DataRows.Clear() '清除以前引入的数据

Dim Book As New XLS.Book("c:\test\工作簿3.xls")

Dim Sheet As XLS.Sheet = Book.Sheets(0)

Dim nms() As String = {65,"商品编码","商品名称","规格","生产企业","产地","单位","通用名称","按批号开piao"}

For n As Integer = 1 To Sheet.Rows.Count -1

    Dim bh As String = sheet(n,1).Text

    Dim dr As DataRow = DataTables("随货单引入").Find("商品编码 = '" & bh & "'")

    If dr Is Nothing Then '如果不存在同编号的订单

        dr =  DataTables("随货单引入").AddNew()

    For m As Integer = 0 To nms.Length - 1

        dr(nms(m)) = Sheet(n,m).Value

    Next

Else '如果存在就合并数量

dr("销售数量") = dr("销售数量") + Sheet(n,10).Value

    End If

Next

DataTables("随货单引入").DeleteFor("单位 Is Null")'删除合计行


5楼
有点蓝 发表于:2025/4/14 22:25:00
Dim dlg As New OpenFileDialog '定义一个新的OpenFileDialog
dlg.Filter= 
"Excel文件|*.xls" '设置筛选器
If
 dlg.ShowDialog = DialogResult.Ok Then '如果用户单击了确定按钮
    MessageBox.Show(
"你选择的是:" & dlg.FileName,"提示"'提示用户选择的文件

DataTables("随货单引入").DataRows.Clear() '清除以前引入的数据

Dim Book As New XLS.Book(dlg.FileName)

……

……

End If
共5 条记录, 每页显示 10 条, 页签: [1]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .03516 s, 2 queries.