Foxtable(狐表)用户栏目专家坐堂 → 狐爸的插入行代码为什么删了呢?


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

主题:狐爸的插入行代码为什么删了呢?

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2009/11/25 11:21:00 [显示全部帖子]

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

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


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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By: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来限定的


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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By: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编辑过]

 回到顶部