Foxtable(狐表)用户栏目专家坐堂 → [求助]库存先进先出,一直错误,求教高手


  共有3046人关注过本帖树形打印复制链接

主题:[求助]库存先进先出,一直错误,求教高手

帅哥哟,离线,有人找我吗?
yds
  1楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:632 积分:3619 威望:0 精华:0 注册:2011/5/21 18:05:00
[求助]库存先进先出,一直错误,求教高手  发帖心情 Post By:2017/9/16 17:10:00 [只看该作者]

DataTables("产品库").load()
DataTables("产品出入明细").load()
Dim ssck As String = e.Form.Controls("所属仓库").Value
Dim rq As Date = e.Form.Controls("日期").Value
Dim cpmc As String = e.Form.Controls("产品名称").Value
Dim cplx As String = e.Form.Controls("产品类型").Value
Dim lqry As String = e.Form.Controls("领取人员").Value
Dim ddbh As String = e.Form.Controls("订单编号").Value
Dim lqsl As Integer = e.Form.Controls("领取数量").Value
Dim kc As Double = DataTables("产品库").SQLCompute("Sum(库存数量)", "产品类型 = '" & cplx & "' And 产品名称 = '" & cpmc & "' And 所属仓库 = '" & ssck & "'")
If lqsl > 0 Then
    If kc >= lqsl Then
        Dim count As Integer = 0
        Dim drs As List(Of DataRow) = DataTables("产品库").Select("产品类型 = '" & cplx & "' And 产品名称 = '" & cpmc & "' And 库存数量  > 0 And 所属仓库 = '" & ssck & "'", "产品批次, 存储位置_架,存储位置_层")
        For i As Integer = 0 To drs.count - 1
            Dim dr As DataRow = drs(i)
            Dim sy As Integer = lqsl - dr("库存数量")
            If sy > 0 Then
                Dim cr As DataRow = DataTables("产品出入明细").AddNew()
                cr("方向") = "出库"
                cr("所属仓库") = ssck
                cr("日期") = rq
                cr("产品批次") = dr("产品批次")
                cr("产品名称") = cpmc
                cr("产品类型") = cplx
                cr("交接人") = lqry
                cr("数量") = dr("库存数量")
                cr("存储位置_架") = dr("存储位置_架")
                cr("存储位置_层") = dr("存储位置_层")
                cr("订单编号") = ddbh
                dr("库存数量") = 0
                lqsl = lqsl - dr("库存数量")
            Else
                Dim cr As DataRow = DataTables("产品出入明细").AddNew()
                cr("方向") = "出库"
                cr("所属仓库") = ssck
                cr("日期") = rq
                cr("产品批次") = dr("产品批次")
                cr("产品名称") = cpmc
                cr("产品类型") = cplx
                cr("交接人") = lqry
                cr("数量") = lqsl
                cr("存储位置_架") = dr("存储位置_架")
                cr("存储位置_层") = dr("存储位置_层")
                cr("订单编号") = ddbh
                dr("库存数量") = dr("库存数量") - lqsl
                Exit For
            End If
        Next
    Else
        msgbox("库存不够")
    End If
Else
    msgbox("领取数量必须大于零")
End If
DataTables("产品库").load()
DataTables("产品出入明细").load()

 回到顶部
帅哥哟,离线,有人找我吗?
YDS
  2楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:632 积分:3619 威望:0 精华:0 注册:2011/5/21 18:05:00
  发帖心情 Post By:2017/9/16 17:11:00 [只看该作者]


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

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

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


 回到顶部
帅哥哟,离线,有人找我吗?
YDS
  3楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:632 积分:3619 威望:0 精华:0 注册:2011/5/21 18:05:00
  发帖心情 Post By:2017/9/16 17:11:00 [只看该作者]


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

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

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



 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110773 积分:563797 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/9/16 17:41:00 [只看该作者]

上传实例测试

 回到顶部
帅哥哟,离线,有人找我吗?
YDS
  5楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:632 积分:3619 威望:0 精华:0 注册:2011/5/21 18:05:00
  发帖心情 Post By:2017/9/17 8:00:00 [只看该作者]

以下是引用有点蓝在2017/9/16 17:41:00的发言:
上传实例测试

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:仓库管理.foxdb



 回到顶部
帅哥哟,离线,有人找我吗?
YDS
  6楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:632 积分:3619 威望:0 精华:0 注册:2011/5/21 18:05:00
  发帖心情 Post By:2017/9/17 8:00:00 [只看该作者]

请大神帮帮忙,看看程序哪里错了!

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/9/17 14:18:00 [只看该作者]

修改红色代码

 

                Dim cr As DataRow = DataTables("产品出入明细").AddNew()
                cr("方向") = "出库"
                cr("所属仓库") = ssck
                cr("日期") = rq
                cr("产品批次") = dr("产品批次")
                cr("产品名称") = cpmc
                cr("产品类型") = cplx
                cr("交接人") = lqry
                cr("数量") = dr("库存数量")
                cr("存储位置_架") = dr("存储位置_架")
                cr("存储位置_层") = dr("存储位置_层")
                cr("订单编号") = ddbh
                lqsl = lqsl - dr("库存数量")
                dr("库存数量") = 0

 回到顶部
帅哥哟,离线,有人找我吗?
YDS
  8楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:632 积分:3619 威望:0 精华:0 注册:2011/5/21 18:05:00
  发帖心情 Post By:2017/9/20 12:14:00 [只看该作者]

非常感谢,问题完美解决

 回到顶部
帅哥哟,离线,有人找我吗?
aizaishuzui
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:250 积分:2089 威望:0 精华:0 注册:2014/3/25 14:24:00
  发帖心情 Post By:2017/9/20 18:39:00 [只看该作者]

Select 是针对已经加载进来的行,如果是要后台的用 SQLSelect吗?怎么改写呢?老师能帮忙写个例子让参考一下

 回到顶部
帅哥哟,离线,有人找我吗?
aizaishuzui
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:250 积分:2089 威望:0 精华:0 注册:2014/3/25 14:24:00
  发帖心情 Post By:2017/9/20 18:55:00 [只看该作者]

测试了一下   SQLSelect(Filter,“”,Sort) 是可以的,但好像要加DataTables("表").SQLUpdate(drs)
目前还在测试应该放在哪个位置,Exit For上面?

脑子短路了,应该放在 Next 下一行
[此贴子已经被作者于2017/9/20 19:55:33编辑过]

 回到顶部