以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  光标定位  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=115970)

--  作者:huhu
--  发布时间:2018/3/17 16:43:00
--  光标定位
DataColChanged
If e.DataCol.name = "打印二维码" Then
    If e.DataRow.IsNull("机身条形码")  Then
        MessageBox.show("请先扫机身条形码","机身条形码为空!",MessageBoxButtons.OK,MessageBoxIcon.Error)
        e.DataRow.Delete
        e.DataTable.AddNew
    Else
        Dim str1,str2 As String
        str1 = right(e.DataRow("机身条形码"),4)
        str2 = right(e.DataRow("打印二维码"),4)
        If str1 = str2 Then
            e.DataRow("比较结果") = "OK"
            e.DataRow.save
            e.DataRow.Locked = True
            MessageBox.Show("一致OK","放心贴",MessageBoxButtons.OK,MessageBoxIcon.Information)
            e.DataTable.AddNew
        Else
            e.DataRow("比较结果") = "FAIL"
            e.DataRow.save
            e.DataRow.Locked = True
            MessageBox.Show("不一致FAIL","不能贴",MessageBoxButtons.OK,MessageBoxIcon.Error)
            e.DataTable.AddNew
        End If
    End If
End If

对于弹出的msgbox,点击了确定按钮后,新增了一行,不用手动把鼠标放入到"机身条形码"列。而是可以直接在"机身条形码"列自动输入。

--  作者:有点蓝
--  发布时间:2018/3/17 17:12:00
--  
MessageBox.Show("一致OK","放心贴",MessageBoxButtons.OK,MessageBoxIcon.Information)
Dim t As Table = Tables(e.DataTable.name)
Dim r As Row = t.AddNew
t.Select(r.Index,t.Cols("机身条形码").Index)

--  作者:huhu
--  发布时间:2018/3/17 17:33:00
--  
如果放入到一个button里面呢?
Dim tab As WinForm.TabControl = e.Form.Controls("TabControl1")
tab.SelectedIndex = 28
DataTables("机身和二维码一致").SQLDeleteFor("机身条形码 is null or 打印二维码 is null or 比较结果 = \'FAIL\'")
DataTables("机身和二维码一致").LoadFilter = "1 = 0"
DataTables("机身和二维码一致").Load
Dim t As Table = Tables(e.Table.name)
Dim r As Row = t.AddNew
t.Select(r.Index,t.Cols("机身条形码").Index - 1)

--  作者:有点蓝
--  发布时间:2018/3/17 17:36:00
--  
图片点击可在新窗口打开查看
Dim t As Table = Tables("机身和二维码一致")

--  作者:huhu
--  发布时间:2018/3/17 17:53:00
--  
有个问题搞不懂。
r(0,0)----第一行第一列
r(1,0)----第二行第一列
可是在datacolchange里面t.Cols("机身条形码").Index - 1这个列一定要减1才能定位到“机身条形码列”。如果不减1定位到"打印二维码"列了。
MessageBox.Show("不一致FAIL","不能贴",MessageBoxButtons.OK,MessageBoxIcon.Error)
            Dim t As Table = Tables(e.DataTable.name)
            Dim r As Row = t.AddNew
            t.Select(r.Index,t.Cols("机身条形码").Index - 1)  
而在button按钮里面t.Cols("机身条形码").Index,又不用减1才对。才定位到“机身条形码列”
 Dim t As Table = Tables("机身和二维码一致")
            Dim r As Row = t.AddNew
            t.Select(r.Index,t.Cols("机身条形码").Index)  


这2种是怎么个情况?

--  作者:有点甜
--  发布时间:2018/3/18 21:55:00
--  
回复5楼,因为你输入值以后,如果按下了回车,默认就是向右移动一个单元格的,你设置了移动,然后又移动了一个,就会出现此问题。