Foxtable(狐表)用户栏目专家坐堂 → [分享]插入行的代码


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

主题:[分享]插入行的代码

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


加好友 发短信
等级:幼狐 帖子:117 积分:1003 威望:0 精华:1 注册:2008/12/2 22:51:00
[分享]插入行的代码  发帖心情 Post By:2009/11/23 21:48:00 [只看该作者]

Dim dt As String = CurrentTable.Name
Dim cname As String = "InsertRowTemp"
If DataTables(dt).DataCols.Contains(cname) = False Then
   Datatables(dt).DataCols.Add(cname,GetType(Double))
   Tables(dt).Cols(cname).Visible = False
End If
Dim ds As Integer = DataTables(dt).DataRows.Count
Dim r As Integer
For r = 0 To ds-1
    Tables(dt).Rows(r)(cname) = r+1
Next
Dim i As Integer = CurrentTable.Position
If i < 0 Then
    CurrentTable.AddNew()
ElseIf i = 0 Then
    Dim v As Double = CurrentTable.Current(cname) - 1
    CurrentTable.AddNew()(cname) = v
Else
    Dim v1 As Double = CurrentTable.Current(cname)
    Dim v2 As Double = CurrentTable.Rows(CurrentTable.Position - 1)(cname)
    CurrentTable.AddNew()(cname) = (v1+v2) / 2
End If
CurrentTable.Sort = cname
CurrentTable.Position = i

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


加好友 发短信
等级:九尾狐 帖子:2649 积分:19390 威望:0 精华:1 注册:2008/9/12 9:19:00
  发帖心情 Post By:2009/11/24 6:04:00 [只看该作者]

有个问题,插入后,如果重新排序后如何恢复呢,我测试了一下,插入后重新排序,将插入顺序打乱,再按升序或降序或取消都不能回到插入的顺序状态

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


加好友 发短信
等级:幼狐 帖子:117 积分:1003 威望:0 精华:1 注册:2008/12/2 22:51:00
  发帖心情 Post By:2009/11/24 9:10:00 [只看该作者]

插入排序是按照隐藏列“InsertRowTemp”的顺序排列,如果在打乱前没有再次插入,可使用此字段恢复排序。表中唯一可以无限向前恢复的字段就是_identify,但此字段是按照添加次序排序,不能保存插入顺序。插入顺序本来就是为了方便手工排序而定义的功能,不适合代码再次恢复排序

 回到顶部
美女呀,离线,留言给我吧!
yangming
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2009/11/24 10:03:00 [只看该作者]

其实,如果想保持插入前排序,只要增加一个辅助列,在插入前清空此列内容,重新加入一个序列数就可以,当然,这只能是一次恢复,不可能保持N次的

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


加好友 发短信
等级:三尾狐 帖子:787 积分:6349 威望:0 精华:0 注册:2008/9/1 8:26:00
  发帖心情 Post By:2009/11/24 10:09:00 [只看该作者]

保存后重新打开原来插入的行排在最后一行,这与增加行没有什么区别,因此插入行没有太大的意义

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


加好友 发短信
等级:九尾狐 帖子:2649 积分:19390 威望:0 精华:1 注册:2008/9/12 9:19:00
  发帖心情 Post By:2009/11/24 11:16:00 [只看该作者]

我觉得这个插入按钮还是好用,为了保存插入的顺序,可以做个恢复按钮:Tables(“表A”).Sort = "InserRowTemp",只是要针对不同的表设计这个按钮

 回到顶部