Foxtable(狐表)用户栏目专家坐堂 → [求助]第一列空白行的行数自动录入


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

主题:[求助]第一列空白行的行数自动录入

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


加好友 发短信
等级:三尾狐 帖子:660 积分:5180 威望:0 精华:0 注册:2019/7/26 12:54:00
[求助]第一列空白行的行数自动录入  发帖心情 Post By:2023/5/3 23:46:00 [只看该作者]

[求助]第一列空白行的行数自动录入

            第一列
第1行     合格
第2行     1      第一列空白行的行数自动录入1(累计连续空白行数)
第3行     合格
第4行     2      一列空白行的行数自动录入2(累计连续空白行数)
第5行     2      一列空白行的行数自动录入2(累计连续空白行数)
第6行     合格
第7行     3       一列空白行的行数自动录入(累计连续空白行数)
第8行     3       一列空白行的行数自动录入(累计连续空白行数)
第9行     3       一列空白行的行数自动录入(累计连续空白行数)
第10行   合格
第11行    1      一列空白行的行数自动录入(累计连续空白行数)

下面代码求助,修改实现上面功能
Dim dt As DataTable '定义一个数据表变量
Dim dr As DataRow = e.DataRow
Select Case e.DataCol.Name
    Case "第一列"
        If dr("第一列")  <> "合格"  Then
            For i As Integer = 0 To  dt.DataRows.Count
                If dr(i)("第一列") <> Nothing Then
                    Dim a As Integer = 0
                    Dim c As Integer = 1
                    For j As Integer = a To i - 1
                        dr(j)("第一列") = c
                    Next
                    s = dr(i)("第一列")
                    a = i
                    c = 1
                Else
                    c += 1
                End If
            Next
        End If
End Select
[此贴子已经被作者于2023/5/4 0:00:12编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

这种用法只能到按钮里写代码处理,试试

dim t as table = tables("a")
dim k as integer = 1
for i as integer = 0 to t.rows.coount - 1
if t.rows(i).isnull("第一列") then
t.rows(i)("第一列") = k
else
k = k + 1
endif
next

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


加好友 发短信
等级:三尾狐 帖子:660 积分:5180 威望:0 精华:0 注册:2019/7/26 12:54:00
回复:(有点蓝)这种用法只能到按钮里写代码处理,试...  发帖心情 Post By:2023/5/4 9:35:00 [只看该作者]

蓝总,根据上楼按钮代码,生成黄的值有误,求助生成绿色的值

Dim t As Table = Tables("表A")
Dim k As Integer = 1
For i As Integer = 0 To t.rows.count - 1
    If t.rows(i).isnull("第一列") Then
        t.rows(i)("第一列") = k
    Else
        k = k + 1
    End If
Next


图片点击可在新窗口打开查看此主题相关图片如下:自动生成黄色的值有误,右边绿色值才对.png
图片点击可在新窗口打开查看
狐表项目高版本打不开,辛苦代码贴出来


[此贴子已经被作者于2023/5/4 9:56:19编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106558 积分:541955 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/5/4 10:06:00 [只看该作者]

Dim t As Table = Tables("表A")
Dim k As Integer = 1
Dim m As Integer = 0
For i As Integer = 0 To t.rows.count - 1
    If t.rows(i).isnull("第一列") Then
       k=k+1
    Else
for each j as integer = m to i
t.rows(j)("第一列") = k
next
m = i
        k = 1
    End If
Next

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


加好友 发短信
等级:三尾狐 帖子:660 积分:5180 威望:0 精华:0 注册:2019/7/26 12:54:00
回复:(有点蓝)Dim t As Table = Tables("表A")Dim ...  发帖心情 Post By:2023/5/4 10:47:00 [只看该作者]

蓝总,楼上代码还是有问题,上楼代码把存在的“合格”全部替换数字了,数字也不对,求助

For ia As Integer = 0 To Tables("表A").rows.count- 1
    If Tables("表A").rows(ia)("第一列") = "合格" Then
    Else
        
        Tables("表A").rows(ia)("第一列") = Nothing
        
        Dim t As Table = Tables("表A")
        Dim k As Integer = 1
        Dim m As Integer = 0
        For i As Integer = 0 To t.rows.count - 1
            If t.rows(i).isnull("第一列") Then
                k=k+1
            Else
                For j As Integer = m To i
                    t.rows(j)("第一列") = k
                Next
                m = i
                k = 1
            End If
        Next
        
    End If
Next
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:狐表项目高版本打不开,辛苦代码贴出来,感谢.foxdb

狐表项目高版本打不开,辛苦代码贴出来,感谢

[此贴子已经被作者于2023/5/4 10:47:08编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106558 积分:541955 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/5/4 10:49:00 [只看该作者]

4楼之外的其它代码都去掉

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


加好友 发短信
等级:三尾狐 帖子:660 积分:5180 威望:0 精华:0 注册:2019/7/26 12:54:00
回复:(有点蓝)4楼之外的其它代码都去掉  发帖心情 Post By:2023/5/4 11:14:00 [只看该作者]

Dim t As Table = Tables("表A")
Dim k As Integer = 1
Dim m As Integer = 0
For i As Integer = 0 To t.rows.count - 1
    If t.rows(i).isnull("第一列") Then
       k=k+1
    Else
for each j as integer = m to i        each删除后,4楼代码才能保存
t.rows(j)("第一列") = k
next
m = i
        k = 1
    End If
Next

上面代码执行后,第一列全部替换成数字有误,想要的效果是:第一列想实现的效果(下图)

此主题相关图片如下:4楼代码执行后的效果有误.png
按此在新窗口浏览图片
 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:狐表项目高版本打不开,辛苦代码贴出来,感谢2.foxdb




[此贴子已经被作者于2023/5/4 11:16:18编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106558 积分:541955 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/5/4 11:16:00 [只看该作者]

Dim t As Table = Tables("表A")
Dim k As Integer = 0
Dim m As Integer = 0
For i As Integer = 0 To t.rows.count - 1
    If t.rows(i).isnull("第一列") Then
       k=k+1
    Else
for j as integer = m+1 to i        each删除后,4楼代码才能保存
t.rows(j)("第一列") = k
next
m = i
        k = 0
    End If
Next

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


加好友 发短信
等级:三尾狐 帖子:660 积分:5180 威望:0 精华:0 注册:2019/7/26 12:54:00
回复:(有点蓝)Dim t As Table = Tables("表A")Dim ...  发帖心情 Post By:2023/5/4 11:22:00 [只看该作者]

蓝总,上楼代码还是有误


图片点击可在新窗口打开查看此主题相关图片如下:8楼代码执行红色圈的值有误,想实现绿色的圈值.png
图片点击可在新窗口打开查看

 回到顶部
帅哥,在线噢!
有点蓝
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106558 积分:541955 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/5/4 11:27:00 [只看该作者]

很简单的问题,看懂代码自行改改

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