以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]明白人帮指导一下  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=25957)

--  作者:eboe
--  发布时间:2012/11/20 18:16:00
--  [求助]明白人帮指导一下
思路是,入库表,入库汇总,实时库存三个表,入库表对入库汇总和实时库存进行数据写入操作,以货号为标准,当入库汇总和实时库存有相同货号的,就在原基础上累计,没有的,就新起一行,进行记录。附件附上,现在的问题是,操作已有的货号总会出现累计上面算错,比如货号A连进10次数量为10,在入库汇总里并没进100个,找不到原因在哪,明白人帮忙看一下。谢谢
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目3.rar


--  作者:mr725
--  发布时间:2012/11/20 19:08:00
--  
入库表对入库汇总和实时库存进行数据写入操作:怎么操作呢?
[此贴子已经被作者于2012-11-20 19:11:43编辑过]

--  作者:eboe
--  发布时间:2012/11/20 22:11:00
--  
以下是引用mr725在2012-11-20 19:08:00的发言:
入库表对入库汇总和实时库存进行数据写入操作:怎么操作呢?
[此贴子已经被作者于2012-11-20 19:11:43编辑过]

入库表建窗体,加按键啊,你不下来看一下,怎么能知道呢?光凭想像呢?


--  作者:mr725
--  发布时间:2012/11/20 22:31:00
--  

呵呵,挺凶的呀,你1楼也没说有窗体嘛 我看看哈。


--  作者:mr725
--  发布时间:2012/11/20 22:36:00
--  
Dim s As Row=Tables("入库").Current
Dim t As String = s("货号")
If Tables("入库").Current.IsNull("货号") Then
    MessageBox.Show("货号不能为空!")
Else
    Dim dt1,dt2,dt3 As DataTable
    dt1 = DataTables("入库")
    dt2 = DataTables("实时")
    dt3 = DataTables("入库汇总")
    For Each dr As DataRow In dt1.DataRows
        Dim dr2 As DataRow = dt2.find("货号 = \'"& t &"\'")
        Dim dr3 As DataRow = dt3.find("货号 = \'"& t &"\'")
        If dr2 Is Nothing Then
            dr2 = dt2.AddNew
            dr2("货号") = dr("货号")
            dr2("数量") = dr("数量")
            dr2("单价") = dr("单价")
        Else
            dr2("数量") = dr2("数量") + s("数量")
        End If
        If dr3 Is Nothing Then
            dr3 = dt3.AddNew
            dr3("货号") = dr("货号")
            dr3("数量") = dr("数量")
            dr3("单价") = dr("单价")
        Else
            dr3("数量") = dr3("数量") + s("数量")
        End If
    Next
    MessageBox.Show("商品入库成功!")
    Tables("入库").AddNew()
End If

--  作者:eboe
--  发布时间:2012/11/20 23:23:00
--  

十分感谢,你一指点,马上就明白了,谢谢谢谢


--  作者:mr725
--  发布时间:2012/11/21 9:11:00
--  

你只要保存当前入库的行,是不需要循环的·



Dim s As Row=Tables("入库").Current
Dim t As String = s("货号")
If Tables("入库").Current.IsNull("货号") Then
    MessageBox.Show("货号不能为空!")
Else
    Dim dt1,dt2,dt3 As DataTable
    dt1 = DataTables("入库")
    dt2 = DataTables("实时")
    dt3 = DataTables("入库汇总")

        Dim dr2 As DataRow = dt2.find("货号 = \'"& t &"\'")
        Dim dr3 As DataRow = dt3.find("货号 = \'"& t &"\'")
        If dr2 Is Nothing Then
            dr2 = dt2.AddNew
            dr2("货号") = t
            dr2("数量") = s("数量")
            dr2("单价") = s("单价")
        Else
            dr2("数量") = dr2("数量") + s("数量")
        End If
        If dr3 Is Nothing Then
            dr3 = dt3.AddNew
            dr3("货号") = t
            dr3("数量") = s("数量")
            dr3("单价") = s("单价")
        Else
            dr3("数量") = dr3("数量") + s("数量")
        End If

    MessageBox.Show("商品入库成功!")
    Tables("入库").AddNew()
End If

 

[此贴子已经被作者于2012-11-21 9:12:23编辑过]