Foxtable(狐表)用户栏目专家坐堂 → 此行已从表中移除并且没有任何数据。BeginEdit() 将允许在此行中创建新数据


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

主题:此行已从表中移除并且没有任何数据。BeginEdit() 将允许在此行中创建新数据

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


加好友 发短信
等级:三尾狐 帖子:603 积分:4090 威望:0 精华:0 注册:2019/11/14 23:06:00
此行已从表中移除并且没有任何数据。BeginEdit() 将允许在此行中创建新数据  发帖心情 Post By:2020/6/15 2:45:00 [只看该作者]


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

表属性数据变动代码
Select Case e.DataCol.name
    Case "SPDM","GG1DM","GG2DM"
        Dim dr As DataRow = e.DataRow
        If dr.IsNull("SPDM") = False AndAlso dr.IsNull("GG1DM") = False AndAlso dr.IsNull("GG2DM") = False Then
            If e.DataTable.Compute("Count([_Identify])","SPDM = '" & dr("SPDM") & "' And GG1DM = '" & dr("GG1DM") & "' And GG2DM ='" & dr("GG2DM") & "' ") > 1 Then
                MessageBox.Show("该商品已挂板","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
                e.DataRow.Delete
            End If
        End If
End Select

窗口按下压键代码
If e.KeyCode = keys.Enter Then
    Dim title As WinForm.TextBox = e.Form.Controls("title")
    Dim s As String = title.Text
    If s.Length <> 11 AndAlso s.Length <> 12
        MessageBox.Show("货号输入错误","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
        Return
    End If
    Dim r As DataRow = DataTables("GB").AddNew
    If s.Length = 11 Then
        r("SPDM") = s.SubString(0,7)
        r("GG1DM") = s.SubString(7,2)
        r("GG2DM") = s.SubString(9,2)
        r("MDDM") = User.Name
        r.save()
    Else
        r("SPDM") = s.SubString(0,8)
        r("GG1DM") = s.SubString(8,2)
        r("GG2DM") = s.SubString(10,2)
        r("MDDM") = User.Name
        r.save()
    End If
    e.Cancel = True
    title.SelectAll
End If
应该是红色部分冲突了吧
[此贴子已经被作者于2020/6/15 2:46:12编辑过]

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


加好友 发短信
等级:超级版主 帖子:107135 积分:544918 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/6/15 8:36:00 [只看该作者]

确实有冲突

        r("SPDM") = s.SubString(0,7)
        r("GG1DM") = s.SubString(7,2)
        r("GG2DM") = s.SubString(9,2)
到这里,触发datacolchanged事件,判断有重复的数据,执行【e.DataRow.Delete】,下面再赋值就出错了,因为这一行已被删除
        r("MDDM") = User.Name
        r.save()

建议如果有重复的,最后录入的比如GG2DM还原为空值即可,用户可以重新录入

 回到顶部