Foxtable(狐表)用户栏目专家坐堂 → 根据 生产表的 生产数量,如何快速的 把产品入库,然后增加库存数量


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

主题:根据 生产表的 生产数量,如何快速的 把产品入库,然后增加库存数量

帅哥哟,离线,有人找我吗?
狐狸爸爸
  21楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/8/10 12:09:00 [只看该作者]

根据错误提示,是因为PtypeID列不允许为空。

 

虽然有下面的代码:

 

dr("ptypeid") =e.DataRow("ptypeid")

 

但说不定e.datarow的ptypeid列本来就是空值。

 

 


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


加好友 发短信
等级:二尾狐 帖子:532 积分:4020 威望:0 精华:0 注册:2011/6/18 12:41:00
  发帖心情 Post By:2011/8/10 16:39:00 [只看该作者]

确定ptypeid 列不是空值。

只要 所有nothing 情况下 都不可以新增列,如下图79行。

 


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

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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/8/10 16:43:00 [只看该作者]

计算机是不会撒谎的,这样测试一下:

 

Select Case e.DataCol.Name
    Case "ruku"
        Dim val As Integer = e.DataRow("shuliang")
        If e.DataRow("ruku") = False Then
            val = -val
        End If
        Dim dr As DataRow = DataTables("GoodsStocks").find("ptypeid = '" & e.DataRow("Ptypeid") & "'")
        If dr IsNot Nothing Then
            dr("Qty") = dr("Qty") + val
            dr("total") = dr("Qty") * dr("price")
        Else
            dr = DataTables("GoodsStocks").AddNew()
            dr("ptypeid") =e.DataRow("ptypeid")
            dr("KtypeId")="00001"
            dr("qty")=dr("qty")
            dr("price")=0
            dr("total")=0
            dr("GOODSORDERID")=0
        End If

         Messagebox.show(dr.IsNull("ptypeid"))

         Messagebox.show(e.DataRow.IsNull("ptypeid"))
        dr.Save()
        e.DataRow.Save()
End Select

[此贴子已经被作者于2011-8-10 16:43:26编辑过]

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


加好友 发短信
等级:二尾狐 帖子:532 积分:4020 威望:0 精华:0 注册:2011/6/18 12:41:00
  发帖心情 Post By:2011/8/10 18:30:00 [只看该作者]

按照23贴的 方法还是不行

就连这样都不行呢

一样的错误提示

 

Select Case e.DataCol.Name
    Case "ruku"
        Dim val As Integer = e.DataRow("shuliang")
        If e.DataRow("ruku") = False Then
            val = -val
        End If
        Dim dr As DataRow = DataTables("GoodsStocks").find("ptypeid = '" & e.DataRow("Ptypeid") & "'")
        If dr IsNot Nothing Then
            dr("Qty") = dr("Qty") + val
            dr("total") = dr("Qty") * dr("price")
        Else
            dr = DataTables("GoodsStocks").AddNew()
            dr("ptypeid") ="00002"
            dr("KtypeId")="00001"
            dr("qty")=val
            dr("price")=0
            dr("total")=0
            dr("GOODSORDERID")=0
        End If

         Messagebox.show(dr.IsNull("ptypeid"))

         Messagebox.show(e.DataRow.IsNull("ptypeid"))
        dr.Save()
        e.DataRow.Save()
End Select

成功的时候  出现两次 False 窗口。 


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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/8/10 20:49:00 [只看该作者]

23楼的代码不是解决问题的,而是用来判断到底哪一行的ptypeid为空,也就是说判断到底是dr还是e.DataRow的ptypeid为空,因为你的代码中,同时保存了这两行。

既然24楼的代码直接设置了dr列的ptypeid的值,还是出现问题,那么说明是e.DataRow的ptypeid列为空。

你删除倒数第二行的代码:

e.DataRow.Save()
如果不出现错误提示,就说明前面的判断没错。

[此贴子已经被作者于2011-8-10 21:14:33编辑过]

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


加好友 发短信
等级:二尾狐 帖子:532 积分:4020 威望:0 精华:0 注册:2011/6/18 12:41:00
  发帖心情 Post By:2011/8/10 22:53:00 [只看该作者]

管理员,麻烦您再帮我看一下吧。

生产记录表 点击入库,如果仓库里面没有相应的产品,则仓库添加相应的产品,和数量。如何实现呢?

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


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


加好友 发短信
等级:等待验证 帖子:386 积分:2482 威望:0 精华:1 注册:2011/5/10 11:13:00
  发帖心情 Post By:2011/8/10 23:21:00 [只看该作者]

......
 dr("ptypeid") =e.DataRow("ptypeid")

请问楼主:[生产记录表]及[仓库]有[ptypeid]字段吗?
[此贴子已经被作者于2011-8-10 23:56:17编辑过]

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


加好友 发短信
等级:二尾狐 帖子:532 积分:4020 威望:0 精华:0 注册:2011/6/18 12:41:00
  发帖心情 Post By:2011/8/11 0:02:00 [只看该作者]

不好意思  搞错了 。应该是 产品id。改成 产品id 就可以运行了。

在实际操作中 有 ptypeid 列的。真的有。但是不知道为什么不成功。实例是用的外表SQL数据。所以不方便上传实例。只能另外做了一个简单的模拟例子。在两个例子中切换,搞晕头了。

管理员也是很辛苦呀。这几天白天黑夜都在帮我解决问题。我经常在想,少问一些吧,管理员不容易。但是没办法,我的基础比较差,而且目前我的功能也不多,先暂时设置好这个 生产记录的功能。如果可以用的话 要先缓一缓,先把仓库管理好了,以后再慢慢考虑开发一个自己的管理系统。毕竟管家婆真的不太好用。

明天再认真检查一下实例,不行的话还得请管理员再帮忙一下。

 

[此贴子已经被作者于2011-8-11 0:15:06编辑过]

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


加好友 发短信
等级:等待验证 帖子:386 积分:2482 威望:0 精华:1 注册:2011/5/10 11:13:00
  发帖心情 Post By:2011/8/11 0:33:00 [只看该作者]

If e.DataCol.Name ="入库" Then
    Dim dr,dr1 As DataRow
    dr = e.DataRow
    If dr.isnull("产品id") Then
        MessageBox.Show("产品id不能为空!")
    Else
        Dim s As String = "产品id = '" & dr("产品id") & "'"
        dr1= DataTables("仓库").find(s)
        If dr1 IsNot Nothing Then
            Dim val As Integer = dr("生产数量")
            If dr("入库") = False Then
                val = -val
            End If
            dr1("库存数量")+ = val
            dr1.Save()
        Else
            Dim Ls As String() = {"产品ID","产品名称","规格","单位"}
            dr1 = DataTables("仓库").AddNew()
            For Each s In Ls
                dr1(s) = dr(s)
            Next
            dr1("库存数量") = dr("生产数量")
            dr1.Save()
        End If
        dr.Save()
    End If
End If

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


加好友 发短信
等级:二尾狐 帖子:532 积分:4020 威望:0 精华:0 注册:2011/6/18 12:41:00
  发帖心情 Post By:2011/8/11 8:43:00 [只看该作者]

[此贴子已经被作者于2011-8-11 9:04:46编辑过]

 回到顶部
总数 36 上一页 1 2 3 4 下一页