Foxtable(狐表)用户栏目专家坐堂 → [求助]为什么执行普通的加减法,刚开始是对的,到后面+法变成了-法的结果。-法的接口变成了+法?


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

主题:[求助]为什么执行普通的加减法,刚开始是对的,到后面+法变成了-法的结果。-法的接口变成了+法?

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


加好友 发短信
等级:六尾狐 帖子:1465 积分:10397 威望:0 精华:0 注册:2018/10/16 11:42:00
[求助]为什么执行普通的加减法,刚开始是对的,到后面+法变成了-法的结果。-法的接口变成了+法?  发帖心情 Post By:2019/12/8 23:19:00 [只看该作者]

[求助]为什么执行普通的加减法,刚开始是对的,到后面+法变成了-法的结果。-法的接口变成了+法?
以下是执行的代码。执行的值未变过,只有结果变。


Dim 行 As Row = Tables("出入库").Current
Dim 仓库 As WinForm.ComboBox = e.Form.Controls("仓库")
Dim 操作人 As WinForm.TextBox = e.Form.Controls("操作人")
Dim 类型 As WinForm.ComboBox = e.Form.Controls("类型")
Dim 上下站 As WinForm.ComboBox = e.Form.Controls("上下站")
Dim 数量 As WinForm.NumericComboBox = e.Form.Controls("数量")
Dim 操作图片 As WinForm.TextBox = e.Form.Controls("操作图片")
Dim 件数 As WinForm.NumericComboBox = e.Form.Controls("件数")
Dim 条码区 As WinForm.TextBox = e.Form.Controls("条码区")
Dim 物品 As WinForm.ComboBox = e.Form.Controls("物品")

Dim 新增行 As Row = Tables("出入库").AddNew()
新增行("类型")=类型.value
新增行("仓库")=仓库.value
新增行("上下站")=上下站.value
新增行("物品名称")=物品.value
新增行("数量")=数量.value
新增行("件数")=件数.value
新增行("操作人")=操作人.value
新增行("时间")=Date.Now
新增行("编号")="CR" & Format(Date.Now,"yyMMddHHmmss")
新增行("操作图片")=操作图片.value
新增行.Save


Select Case 类型.value
    Case "入库"
        Dim dr1 As DataRow = DataTables("统计").Find("仓库 = '"& 上下站.value &"' and 物品名称='"& 物品.value &"'")
        If dr1 IsNot Nothing Then
            dr1("当前数量")=dr1("当前数量")-数量.value
            dr1.Save
        Else
            Dim 新增 As Row = Tables("统计").AddNew()
            新增("仓库")=上下站.value
            新增("物品名称")=物品.value
            新增("当前数量")=-数量.value
            新增.Save
        End If
        Dim dr2 As DataRow = DataTables("统计").Find("仓库 = '"& 仓库.value &"' and 物品名称='"& 物品.value &"'")
        If dr2 IsNot Nothing Then
            dr2("当前数量")=dr1("当前数量")+数量.value
            dr2.Save
        Else
            Dim 新增 As Row = Tables("统计").AddNew()
            新增("仓库")=仓库.value
            新增("物品名称")=物品.value
            新增("当前数量")=数量.value
            新增.Save
        End If
        
    Case "应到"
        Dim dr1 As DataRow = DataTables("统计").Find("仓库 = '"& 上下站.value &"' and 物品名称='"& 物品.value &"'")
        If dr1 IsNot Nothing Then
            dr1("当前数量")=dr1("当前数量")+数量.value
            dr1.Save
        Else
            Dim 新增 As Row = Tables("统计").AddNew()
            新增("仓库")=上下站.value
            新增("物品名称")=物品.value
            新增("当前数量")=数量.value
            新增.Save
        End If
        
    Case "出库"
        Dim dr1 As DataRow = DataTables("统计").Find("仓库 = '"& 上下站.value &"' and 物品名称='"& 物品.value &"'")
        If dr1 IsNot Nothing Then
            dr1("当前数量")=dr1("当前数量")-数量.value
            dr1.Save
        Else
            Dim 新增 As Row = Tables("统计").AddNew()
            新增("仓库")=上下站.value
            新增("物品名称")=物品.value
            新增("当前数量")=-数量.value
            新增.Save
        End If
        Dim dr2 As DataRow = DataTables("统计").Find("仓库 = '"& 仓库.value &"' and 物品名称='"& 物品.value &"'")
        If dr2 IsNot Nothing Then
            dr2("当前数量")=dr1("当前数量")-数量.value
            dr2.Save
        Else
            Dim 新增 As Row = Tables("统计").AddNew()
            新增("仓库")=仓库.value
            新增("物品名称")=物品.value
            新增("当前数量")=-数量.value
            新增.Save
        End If
        
    Case "退单"
        Dim dr1 As DataRow = DataTables("统计").Find("仓库 = '"& 上下站.value &"' and 物品名称='"& 物品.value &"'")
        If dr1 IsNot Nothing Then
            dr1("当前数量")=dr1("当前数量")+数量.value
            dr1.Save
        Else
            Dim 新增 As Row = Tables("统计").AddNew()
            新增("仓库")=上下站.value
            新增("物品名称")=物品.value
            新增("当前数量")=数量.value
            新增.Save
        End If
        Dim dr2 As DataRow = DataTables("统计").Find("仓库 = '"& 仓库.value &"' and 物品名称='"& 物品.value &"'")
        If dr2 IsNot Nothing Then
            dr2("当前数量")=dr1("当前数量")+数量.value
            dr2.Save
        Else
            Dim 新增 As Row = Tables("统计").AddNew()
            新增("仓库")=仓库.value
            新增("物品名称")=物品.value
            新增("当前数量")=数量.value
            新增.Save
        End If
 Case "盘点+"
        Dim dr1 As DataRow = DataTables("统计").Find("仓库 = '"& 上下站.value &"' and 物品名称='"& 物品.value &"'")
        If dr1 IsNot Nothing Then
            dr1("当前数量")=dr1("当前数量")-数量.value
            dr1.Save
        Else
            Dim 新增 As Row = Tables("统计").AddNew()
            新增("仓库")=上下站.value
            新增("物品名称")=物品.value
            新增("当前数量")=-数量.value
            新增.Save
        End If
        Dim dr2 As DataRow = DataTables("统计").Find("仓库 = '"& 仓库.value &"' and 物品名称='"& 物品.value &"'")
        If dr2 IsNot Nothing Then
            dr2("当前数量")=dr1("当前数量")+数量.value
            dr2.Save
        Else
            Dim 新增 As Row = Tables("统计").AddNew()
            新增("仓库")=仓库.value
            新增("物品名称")=物品.value
            新增("当前数量")=数量.value
            新增.Save
        End If
 Case "盘点-"
        Dim dr1 As DataRow = DataTables("统计").Find("仓库 = '"& 上下站.value &"' and 物品名称='"& 物品.value &"'")
        If dr1 IsNot Nothing Then
            dr1("当前数量")=dr1("当前数量")+数量.value
            dr1.Save
        Else
            Dim 新增 As Row = Tables("统计").AddNew()
            新增("仓库")=上下站.value
            新增("物品名称")=物品.value
            新增("当前数量")=数量.value
            新增.Save
        End If
        Dim dr2 As DataRow = DataTables("统计").Find("仓库 = '"& 仓库.value &"' and 物品名称='"& 物品.value &"'")
        If dr2 IsNot Nothing Then
            dr2("当前数量")=dr1("当前数量")-数量.value
            dr2.Save
        Else
            Dim 新增 As Row = Tables("统计").AddNew()
            新增("仓库")=仓库.value
            新增("物品名称")=物品.value
            新增("当前数量")=-数量.value
            新增.Save
        End If
End Select

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


加好友 发短信
等级:超级版主 帖子:106665 积分:542508 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/12/8 23:27:00 [只看该作者]

没看懂。请上传实例,说明详细测试步骤

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


加好友 发短信
等级:六尾狐 帖子:1465 积分:10397 威望:0 精华:0 注册:2018/10/16 11:42:00
  发帖心情 Post By:2019/12/9 15:53:00 [只看该作者]

如图我点击添加,自动查找符合仓库值以及上下站值的对应物品进行加减。刚开始加没事,你一直点就会发现后面加减错了
图片点击可在新窗口打开查看此主题相关图片如下:qq截图20191209155111.jpg
图片点击可在新窗口打开查看
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:出入库.zip



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


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

点一下,正确的数据应该是什么,比如点20下,正确的数据应该又是什么。举例说明一下

我发现点一下,第1~2行数量都同时减少1000,他们还是相差1000,点击几十下后,还是相差1000,不过都变为负数了。怎么样的结果才是正确的结果?

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

[此贴子已经被作者于2019/12/9 16:19:18编辑过]

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


加好友 发短信
等级:六尾狐 帖子:1465 积分:10397 威望:0 精华:0 注册:2018/10/16 11:42:00
  发帖心情 Post By:2019/12/9 17:10:00 [只看该作者]

入库 点一下于野增加1000,市场部减少1000。点20下于野增加了2万,市场部减少了2万才对

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


加好友 发短信
等级:六尾狐 帖子:1465 积分:10397 威望:0 精华:0 注册:2018/10/16 11:42:00
  发帖心情 Post By:2019/12/9 17:12:00 [只看该作者]


        Dim dr2 As DataRow = DataTables("统计").Find("仓库 = '"& 仓库.value &"' and 物品名称='"& 物品.value &"'")
        If dr2 IsNot Nothing Then
            dr2("当前数量")=dr1("当前数量")+数量.value
            dr2.Save

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


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

Dim dr2 As DataRow = DataTables("统计").Find("仓库 = '"& 仓库.value &"' and 物品名称='"& 物品.value &"'")
        If dr2 IsNot Nothing Then
            dr2("当前数量")=dr2("当前数量")+数量.value
            dr2.Save

 回到顶部