以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]第一列空白行的行数自动录入  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=186443)

--  作者:miaoqingqing
--  发布时间: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编辑过]

--  作者:有点蓝
--  发布时间: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
--  发布时间: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编辑过]

--  作者:有点蓝
--  发布时间: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
--  发布时间:2023/5/4 10:47:00
--  回复:(有点蓝)Dim t As Table = Tables("表A")Dim ...
蓝总,楼上代码还是有问题,上楼代码把存在的“合格”全部替换数字了,数字也不对,求助

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编辑过]

--  作者:有点蓝
--  发布时间:2023/5/4 10:49:00
--  
4楼之外的其它代码都去掉
--  作者:miaoqingqing
--  发布时间:2023/5/4 11:14:00
--  回复:(有点蓝)4楼之外的其它代码都去掉
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编辑过]

--  作者:有点蓝
--  发布时间: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
--  发布时间:2023/5/4 11:22:00
--  回复:(有点蓝)Dim t As Table = Tables("表A")Dim ...
蓝总,上楼代码还是有误


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

--  作者:有点蓝
--  发布时间:2023/5/4 11:27:00
--  
很简单的问题,看懂代码自行改改