以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  二维码扫描怎么只增加1行?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=126872)

--  作者:huhu
--  发布时间:2018/10/30 15:28:00
--  二维码扫描怎么只增加1行?

KeyDownEdit

If e.keyCode = Keys.Enter AndAlso e.Table.Cols(e.Table.colSel).Name = "SN"   Then
    e.cancel = True
    Dim r As Row = e.Table.addnew
    If r IsNot Nothing Then
        e.Table.Select(r.Index, 0)
        e.Table.StartEditing
    End If
End If

KeyDown

If e.keyCode = Keys.Enter AndAlso e.Table.Cols(e.Table.colSel).Name = "SN" Then
    e.cancel = True
    e.Table.addnew
End If
DataColChanging
Dim kwbm As WinForm.TextBox = e.Form.Controls("TextBox1")
If e.DataCol.Name = "SN" Then
    If e.NewValue.contains("KW")  Then
        kwbm.text = e.NewValue
        e.DataRow.Delete
        e.DataRow.save
    Else
        Dim str As String = e.NewValue.Replace(chr(10), "").Replace(chr(13), "")
        Dim idx1 As Integer = str.IndexOf("MAC:")
        Dim idx2 As Integer = str.IndexOf("H/W:")
        Dim length As Integer
        If str.Contains("SN:") Then
            length  = IIF(idx1 <> -1,idx1-3,IIF(idx2 <> -1,idx2-4,str.Length - 3))
            e.NewValue = str.SubString(3, length)
        Else
            e.NewValue =str
        End If
        If str.Contains("MAC:") Then
            If idx2 = -1 Then
                e.DataRow("MAC") = str.SubString(idx1+4)
            Else
                e.DataRow("MAC") = str.SubString(idx1+4, idx2-idx1-4)
            End If
        End If
        If str.Contains("H/W:") Then
            e.DataRow("HW") = str.substring(idx2+4)
        End If
    End If
End If

TimerTick

e.Form.TimerEnabled = False
e.Form.Controls("Table1").Select
e.Form.Controls("Table1").Table.Focus
e.Form.Controls("Table1").Table.StartEditing

AfterLoad

e.Form.TimerInterval = 1000
e.Form.TimerEnabled = True

为什么扫了二维码只出现1行?
二维码内容
SN:00252202360 MAC:98:45:62:32:fa:f0
SN:00252202416 MAC:98:45:62:32:fe:70
SN:00252202315 MAC:98:45:62:32:f8:20
SN:00252201886 MAC:98:45:62:32:dd:50
SN:00252202453 MAC:98:45:62:40:00:c0
SN:00252202757 MAC:98:45:62:40:13:c0
SN:00252202815 MAC:98:45:62:40:17:60
SN:00252202298 MAC:98:45:62:32:f7:10
SN:00252202113 MAC:98:45:62:32:eb:80
SN:00252202075 MAC:98:45:62:32:e9:20
SN:00252202801 MAC:98:45:62:40:16:80
SN:00252202226 MAC:98:45:62:32:f2:90
SN:00252202799 MAC:98:45:62:40:16:60
SN:00252202802 MAC:98:45:62:40:16:90
SN:00252201898 MAC:98:45:62:32:de:10
SN:00252202621 MAC:98:45:62:40:0b:40
SN:00252202724 MAC:98:45:62:40:11:b0
SN:00252202588 MAC:98:45:62:40:09:30
SN:00252202785 MAC:98:45:62:40:15:80
SN:00252202150 MAC:98:45:62:32:ed:d0

--  作者:有点甜
--  发布时间:2018/10/30 15:36:00
--  

1、你写的代码,就是只处理一行的情况;

 

2、当扫描一次输入一整段内容的时候,你要把每一行的内容分割出来,然后分别新增行处理才行;

 

3、实例发上来测试。


--  作者:huhu
--  发布时间:2018/10/30 18:17:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目13.rar
大概的一个例子,不完整。你们看一眼应该就清楚了。
事件在表A,窗口1

--  作者:有点甜
--  发布时间:2018/10/30 18:30:00
--  

 

你给的实例和你的问题不相符。请上传具体的实例,可以测试的实例,并说明测试过程。

 

不然,实现这个功能【当扫描一次输入一整段内容的时候,你要把每一行的内容分割出来,然后分别新增行处理才行】