以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 插入行后序号不对 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=99721) |
-- 作者:skyman1188 -- 发布时间:2017/4/25 16:36:00 -- 插入行后序号不对 For Each dr As DataRow In DataTables("计算表").DataRows Sum = Sum + 1
dr("序号") = Sum Next 如果是新增行,序号显示是没有问题的,插入行,序号就不按照从上往下顺序显示了,插入的行序号最大,这个问题怎么解决。
|
-- 作者:有点色 -- 发布时间:2017/4/25 16:50:00 -- For Each dr As row In Tables("计算表").Rows dr("序号") = dr.index+1 Next |
-- 作者:skyman1188 -- 发布时间:2017/4/25 22:35:00 -- 我的意思是按照实际表格来遍历 For Each dr As DataRow In DataTables("成本计算表").DataRows
If Sum < 8 Then
Sum = Sum + 1
dr("序号") = Sum
Else
Sum = 1
dr("序号") = Sum
End If Next 我的意思是序号1-8循环这种情形,插入一行后,序号就乱了,不知道是不是有这种按照实际显示表格一行一行往下遍历?
|
-- 作者:有点蓝 -- 发布时间:2017/4/25 22:48:00 -- DataRowAdded事件 Dim t As Table = Tables(e.DataTable.Name) Dim idx As Integer = t.FindRow(e.DataRow) If idx = 0 Then e.DataRow("序号") = 1 ElseIf idx > 0 e.DataRow("序号") = t.Rows(idx-1)("序号")+1 If e.DataRow("序号") = 9 Then e.DataRow("序号") = 1 End If Dim s As Integer = e.DataRow("序号") For i As Integer = idx + 1 To t.Rows.Count - 1 If s < 8 Then s += 1 Else s = 1 End If t.Rows(i)("序号") = s Next |
-- 作者:skyman1188 -- 发布时间:2017/4/25 23:02:00 -- 还是有点晕 项目一 1. 2. 3. 项目二 1. 2. 3. 如果在项目一的3.之前插入一行应该变为 项目一 1. 2. 3. 4. 项目二 1. 2. 3. 但是按照遍历结果如下了 项目一 1. 2. 4. 3. 项目二 1. 2. 3. 我希望遍历是按照表格显示的行号来,该怎么做
|
-- 作者:有点蓝 -- 发布时间:2017/4/25 23:05:00 -- 贴出你的代码 |
-- 作者:skyman1188 -- 发布时间:2017/4/25 23:10:00 -- 插入行在遍历时候在最后了 For Each dr As DataRow In DataTables("成本计算表").DataRows dr = DataTables("成本计算表").DataRows(Sum) \'引用行 If dr("项目名称") Like "●*" Then Sum1 = 0 Sum2 = 0
\'项目数 dr("序号") = "" Else If dr("项目名称") = Nothing Then
dr("序号") = "" Else Sum2 = Sum2 +1 dr("序号") = Sum2 & "." End If End If Sum = Sum + 1 Next
|
-- 作者:skyman1188 -- 发布时间:2017/4/25 23:17:00 -- 这样看起来简便一点 For Each dr As DataRow In DataTables("成本计算表").DataRows dr = DataTables("成本计算表").DataRows(Sum) \'引用行 If dr("项目名称") Like "●*" Then Sum1 = 0 dr("序号") = "" Else Sum1 = Sum1 +1 dr("序号") = Sum1 & "." End If Sum = Sum + 1 Next 我的感觉是dr = DataTables("成本计算表").DataRows(Sum) 这个有问题,就是插入行后,序号要插入,而不是按照最后一行的数字插入在这里
|
-- 作者:skyman1188 -- 发布时间:2017/4/25 23:22:00 --
●主 1.
2.
5.
3.
4.
这个5.就是刚插入的行,我希望插入后是如下表个
●主 1.
2.
3.
4.
5. |
-- 作者:有点色 -- 发布时间:2017/4/26 9:17:00 -- 改为
For Each dr As DataRow In DataTables("成本计算表").Select("", "_Sortkey") [此贴子已经被作者于2017/4/26 9:17:43编辑过]
|