Foxtable(狐表)用户栏目专家坐堂 → 插入行后序号不对


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

主题:插入行后序号不对

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


加好友 发短信
等级:幼狐 帖子:112 积分:1119 威望:0 精华:0 注册:2012/2/26 17:36:00
插入行后序号不对  发帖心情 Post By:2017/4/25 16:36:00 [只看该作者]

For Each dr As DataRow In DataTables("计算表").DataRows
    Sum = Sum + 1
      dr("序号") = Sum
Next
如果是新增行,序号显示是没有问题的,插入行,序号就不按照从上往下顺序显示了,插入的行序号最大,这个问题怎么解决。

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/4/25 16:50:00 [只看该作者]

For Each dr As row In Tables("计算表").Rows 
    dr("序号") = dr.index+1
Next

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


加好友 发短信
等级:幼狐 帖子:112 积分:1119 威望:0 精华:0 注册:2012/2/26 17:36:00
我的意思是按照实际表格来遍历  发帖心情 Post By: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循环这种情形,插入一行后,序号就乱了,不知道是不是有这种按照实际显示表格一行一行往下遍历?

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:112 积分:1119 威望:0 精华:0 注册:2012/2/26 17:36:00
还是有点晕  发帖心情 Post By: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.
我希望遍历是按照表格显示的行号来,该怎么做

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/4/25 23:05:00 [只看该作者]

贴出你的代码

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


加好友 发短信
等级:幼狐 帖子:112 积分:1119 威望:0 精华:0 注册:2012/2/26 17:36:00
插入行在遍历时候在最后了  发帖心情 Post By: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
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:112 积分:1119 威望:0 精华:0 注册:2012/2/26 17:36:00
这样看起来简便一点  发帖心情 Post By: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
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:112 积分:1119 威望:0 精华:0 注册:2012/2/26 17:36:00
  发帖心情 Post By:2017/4/25 23:22:00 [只看该作者]

●主
1.
2.
5.
3.
4.

这个5.就是刚插入的行,我希望插入后是如下表个

●主
1.
2.
3.
4.
5.


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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/4/26 9:17:00 [只看该作者]

改为

 

For Each dr As DataRow In DataTables("成本计算表").Select("", "_Sortkey")
    If dr("项目名称") Like "●*" Then
        Sum1 = 0
        dr("序号") = ""
    Else
        Sum1 = Sum1 +1
        dr("序号") = Sum1 & "."
    End If
Next

[此贴子已经被作者于2017/4/26 9:17:43编辑过]

 回到顶部
总数 11 1 2 下一页