以文本方式查看主题

-  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=5130)

--  作者:实话实说
--  发布时间:2009/11/25 10:12:00
--  狐爸的插入行代码为什么删了呢?

有什么问题吗?我正准备用呢


--  作者:czy
--  发布时间:2009/11/25 10:36:00
--  
下次更新会启用内置的插入行方法,等几天吧。
--  作者:实话实说
--  发布时间:2009/11/25 10:37:00
--  
高兴
--  作者:mr725
--  发布时间:2009/11/25 11:21:00
--  
以下是引用czy在2009-11-25 10:36:00的发言:
下次更新会启用内置的插入行方法,等几天吧。

这样好~ 啊 !   还希望有插入多行的更新~


--  作者:yangming
--  发布时间:2009/11/25 11:25:00
--  

这样更好!


--  作者:mr725
--  发布时间:2009/11/25 11:43:00
--  

很早时东拼西凑做了一个插入多行的代码,提供参考:

\'dim n as integer = e.form.controls("textbox1").text
if currenttable.position < 0 then
    CurrentTable.AddNew(9)    ‘(注解:这个数字9 可用文本框(第一行的变量n替换),下同
    For i As Integer = 0 To CurrentTable.Rows.Count-1
        CurrentTable(i,"ID") = i+1
    next
    currenttable.position =0
else   
    dim ii as integer = CurrentTable.Position
    dim d as integer = currenttable.current("ID")
    dim ia as integer = CurrentTable.rows.count
    dim xh as integer = currenttable.current("_identify")
    CurrentTable.AddNew(9)     ‘(注解:这个数字9 可用文本框(第一行的变量n替换)
    for i as integer = ia to CurrentTable.Rows.count-1
        if ii =0
            currenttable(i,"ID") = d-1 -0.001*(i-ia)
        elseif ii+1 = ia
            if d - CurrentTable.rows(ii-1)("id") = 1
                currenttable(i,"ID") = CurrentTable.rows(ii-1)("id") +0.0001*(i+1-ia)
            else
                currenttable(i,"ID") = CurrentTable.rows(ii-1)("id") +0.0001*(i+1-ia)*xh/100
            end if
        else
            if d - CurrentTable.rows(ii-1)("id") = 1
                currenttable(i,"ID") = CurrentTable.rows(ii-1)("id")+0.0001*(i+1-ia)
            else
                currenttable(i,"ID") = CurrentTable.rows(ii-1)("id")+0.00001*(i+1-ia)                
            end if
        end if
    next
    CurrentTable.Sort = "ID"
    For i As Integer = 0 To CurrentTable.Rows.Count-1
        CurrentTable(i,"ID") = i+1
    next   
    With CurrentTable
        Dim r As Integer
        r = .FindRow("[_identify] = " & xh & " ", .Position + 1, True ) 
        If r >= 0 Then 
            .Position = r-9     ‘(注解:这个数字9 可用文本框(第一行的变量n替换)
        End If
    End With
end if

\'很多地方我也解释不清了,但效果很好,速度也很快最大插入行数为9999行由代码中0.0001来限定的


--  作者:舜风
--  发布时间:2009/11/25 12:13:00
--  

图片点击可在新窗口打开查看如果能把移动行顺序,加入内置的更好


--  作者:yangming
--  发布时间:2009/11/25 12:23:00
--  
以下是引用舜风在2009-11-25 12:13:00的发言:

图片点击可在新窗口打开查看如果能把移动行顺序,加入内置的更好

楼主是想在上移或下移行吧,我也需要,支持一下!


--  作者:mr725
--  发布时间:2009/11/25 12:52:00
--  
以下是引用舜风在2009-11-25 12:13:00的发言:

图片点击可在新窗口打开查看如果能把移动行顺序,加入内置的更好

这个不复杂吧,比如向上移动5行:currenttable.current("ID") = currenttable.current("ID") - 4.5   
再从新排序ID列即可: CurrentTable.Sort = "ID"
再重算ID:
For i As Integer = 0 To CurrentTable.Rows.Count-1
    CurrentTable(i,"ID") = i+1
next

[此贴子已经被作者于2009-11-25 12:54:46编辑过]

--  作者:blackzhu
--  发布时间:2009/11/25 14:40:00
--  
以下是引用czy在2009-11-25 10:36:00的发言:
下次更新会启用内置的插入行方法,等几天吧。

真的还是假的