Foxtable(狐表)用户栏目专家坐堂 → 表事件DataColChanging 问题


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

主题:表事件DataColChanging 问题

美女呀,离线,留言给我吧!
Springamy
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:427 积分:2969 威望:0 精华:0 注册:2017/4/6 15:51:00
表事件DataColChanging 问题  发帖心情 Post By:2017/7/7 14:56:00 [只看该作者]

问题如图: 1、审核之后库存减少,但是审核还是false状态,再次点击就报错,索引超出数组界限的错误

部分代码:

 s = "select * fr om 入库条码明细 where 条码 = '" & tm & "'"
    cmd.CommandText = s
    dt2 = cmd.ExecuteReader
    Dim dr As DataRow = dt2.DataRows(0)
    s = "select * fr om 出库条码明细 where 条码 = '" & tm & "'"
    cmd.CommandText = s
    dt = cmd.ExecuteReader
    s = "select * fr om 库存表 where 条码 = '" & tm & "'"
    cmd.CommandText = s
    dt1 = cmd.ExecuteReader
    rkrq = dt1.DataRows(0)("入库日期")
    If ckdd = "" OrElse cpx = "" OrElse cbs = "" OrElse kclx = "" OrElse cksx = "" OrElse cghth = "" OrElse tm = "" OrElse bom = "" OrElse sl <= 0 OrElse ckrq.year <= 2015 Then
        e.Cancel = True '取消变动
        StatusBar.Message1= "关键信息不全,请核查!"
    End If
    If e.NewValue = True And e.DataRow("审核") = False Then  '审核出库

        If dt1.DataRows.Count > 0 Then  '库存中有此条码的数据
            cmd.CommandText = "delete 库存表  where 仓库地点 = '" & ckdd & "' and 产品线 = '" & cpx & "'and 库存类型 = '" & kclx & "' and 仓库属性 = '" & cksx & "' and 条码 = '" & tm & "' and BOM编码 = '" & bom &  "' and 产品型号 = '" & cpxh &  "' and 采购合同号 = '" & cghth &  "' and 入库日期 = '" & rkrq & "'"
            cmd.ExecuteReader
            StatusBar.Message1 = tm & "出库审核成功!库存减少"
            MessageBox.Show("出库审核成功!库存减少!")
            DataTables("出库录入_Table1").Save
        Else
            MessageBox.Show("库存1中无此条码,请重新输入")
        End If
    End If  '
    If e.NewValue = False And e.DataRow("审核") = True Then  '反审入库
        ' If r("单据类型") = "出库" Then
        If dt1.DataRows.Count <= 0 Then  '库存中没有此条码的数据
            If dt.DataRows.Count > 0 Then  '并且出库条码明细中有数据,才能插入数据到库存中
                cmd.CommandText = "insert into 库存表(id,仓库地点,产品线,库存类型,仓库属性,条码,BOM编码,产品型号,数量,采购合同号,入库日期) values (" & dr("rkid") &  ",'"  & ckdd & "','" & cpx &  "','"  & kclx &  "','"  & cksx &  "','"  & tm &  "','"  & bom &  "','"  & cpxh &  "'," & sl &  ",'"  & cghth &  "','"  & rkrq & "')"
                cmd.ExecuteReader
                StatusBar.Message1 = tm & "反审成功!库存增加"
                MessageBox.Show("反审成功,库存增加!")
                DataTables("出库录入_Table1").Save
            Else '库存中没有这条码并且明细中也没有
                MessageBox.Show("库存2,条码都没有此条码,请核对")
            End If
        End If
    End If
End If


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

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

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

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


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

报错,查询到的表没有数据,你直接引用,就会报错

 

Dim dr As DataRow = dt2.DataRows(0)

 

你要加入判断

 

If dt2.DataRows.Count > 0 Then

 

End If

[此贴子已经被作者于2017/7/7 15:00:13编辑过]

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


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

 审核状态的问题,你去掉多余代码,单独测试看看。

 

 不行,就做个例子发上来测试


 回到顶部
美女呀,离线,留言给我吧!
Springamy
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:427 积分:2969 威望:0 精华:0 注册:2017/4/6 15:51:00
例子  发帖心情 Post By:2017/7/7 15:11:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:测试1.rar


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


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

 数据发上来,无法连接测试。

 回到顶部
美女呀,离线,留言给我吧!
Springamy
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:427 积分:2969 威望:0 精华:0 注册:2017/4/6 15:51:00
  发帖心情 Post By:2017/7/7 15:27:00 [只看该作者]

暂时先不用,谢谢阿,貌似应该是找到问题了

我插入数据的时候用了库存表的入库日期,审核之后库存是delete了的是吧?

所以这个入库日期应该是没有了的吧,是这样的吧???

我再测试测试,有问题再发过来给你


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

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


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

查询后,都应该加上判断,不能直接用

 

If dt1.DataRows.Count > 0 Then

 

End If


 回到顶部