以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  在窗口副表中粘贴新增N行  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=123061)

--  作者:ZJZK2018
--  发布时间:2018/8/7 14:29:00
--  在窗口副表中粘贴新增N行
窗口副表中粘贴新增N行,在窗口KeyDown事件中:

\'\'============粘贴新增N行================
Dim t As Table = CurrentTable  \' Tables("企业信用_table1")
If e.Control = True AndAlso t.Current IsNot Nothing Then
    Dim r As Integer = t.RowSel
    If e.KeyCode = keys.V Then
        Dim str As String = ClipBoard.GetText 
        Dim nr As Integer = str.Replace(vblf,"").Trim(vbcr).Split(vbcr).Length + (t.RowSel) - t.Rows.Count 
        If nr > 0 Then
            t.AddNew(nr)
            t.Select(r,t.ColSel)
        End If
    End If
End If

出现下图错位错误:


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


--  作者:有点甜
--  发布时间:2018/8/7 14:52:00
--  

是不是从excel复制过来的数据?先执行下面代码处理一下,再执行你1楼代码

 

If e.control = True AndAlso e.keycode = keys.v Then
    \'执行代码
    Dim str As String = ClipBoard.GetText
    Dim nstr As String = ""
    Dim tempstr As String = ""
    Dim flag As Boolean = False
    For i As Integer = 0 To str.length - 1
        If str(i) = """" Then
            If i = 0 OrElse str(i-1) = chr(9) OrElse str(i-1) = chr(10) Then \'开始
                flag = True
            ElseIf i = str.length-1 OrElse str(i+1) = chr(9) OrElse str(i+1) = chr(13) Then \'结束
                tempstr = tempstr.Replace(chr(13), "")
                nstr &= tempstr
                tempstr = ""
                flag = False
            End If
        End If
        If flag = True Then
            tempstr &= str(i)
        Else
            nstr &= str(i)
        End If
    Next
    ClipBoard.SetText(nstr)
End If


--  作者:ZJZK2018
--  发布时间:2018/8/7 15:05:00
--  
数据是从excel复制过来的,老师上面这段代码写在哪个事件里?
--  作者:有点甜
--  发布时间:2018/8/7 15:07:00
--  
keydown事件。
--  作者:ZJZK2018
--  发布时间:2018/8/7 15:27:00
--  
老师还是不行。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:粘贴新增n行.foxdb



--  作者:有点甜
--  发布时间:2018/8/7 16:01:00
--  

1、代码没问题;

 

2、你窗口表对表格的筛选,代码改成

 

tb1.Filter = "_Identify not in (" & tb1.DataTable.GetComboListString("_Identify", "[企业名称] Is not Null").replace("|", ",") & ")"