以文本方式查看主题

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

--  作者:happyft
--  发布时间:2015/9/17 23:52:00
--  自动更新序号的问题?

图片点击可在新窗口打开查看此主题相关图片如下:序号.jpg
图片点击可在新窗口打开查看
如上图,想实现左边序号列的序号自动根据所在的行号来自动变动,
1、新增行时,自动为新增行的行号,
2、向下移动一行时,其序号自动加1,而其下面那行因为变到上一行去了,自动减1.
3、删除一行时,其下面所有的行的序号都自动减1

总之,不管怎么操作,序号都永远等于其加载到当前表中时其所在的行号?要怎么实现,

谢谢!

--  作者:e-png
--  发布时间:2015/9/18 9:24:00
--  

你这样的话,平时就不要用序号列了,在需要的时候自动生成一次即可。


--  作者:Hyphen
--  发布时间:2015/9/18 9:36:00
--  

AfterMoveRow事件

If e.NewIndex < e.OldIndex Then
    Tables("表A").Rows(e.OldIndex)("第一列") = e.NewIndex+2
    Tables("表A").Rows(e.NewIndex)("第一列") = e.OldIndex
Else
    Tables("表A").Rows(e.OldIndex)("第一列") = e.NewIndex
    Tables("表A").Rows(e.NewIndex)("第一列") = e.OldIndex+2
End If

 

DataRowAdded事件
e.DataRow("第一列") = e.DataTable.DataRows.Count

 

BeforeDeleteDataRow事件

Dim wz As Integer = e.DataRow("第一列")
For idx As Integer  = wz-1 To e.DataTable.DataRows.Count-1
    e.DataTable.DataRows(idx)("第一列") = idx
Next

 

说实在,这种业务意义不大,而且不能筛选