Foxtable(狐表)用户栏目专家坐堂 → 怎么判断当前行有数据之后,在接下来的空白行自动填充内容呢?直到出现有数据行为止,其自动增加序号。


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

主题:怎么判断当前行有数据之后,在接下来的空白行自动填充内容呢?直到出现有数据行为止,其自动增加序号。

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


加好友 发短信
等级:七尾狐 帖子:1571 积分:11238 威望:0 精华:0 注册:2021/1/17 17:06:00
怎么判断当前行有数据之后,在接下来的空白行自动填充内容呢?直到出现有数据行为止,其自动增加序号。  发帖心情 Post By:2022/2/18 12:52:00 [显示全部帖子]

怎么判断当前行有数据之后,在接下来的空白行自动填充内容呢?直到出现有数据行为止,其自动增加序号。(操作红色框中的效果部分,同时在序号列中实现顺序递增),麻烦老师们指导下 谢谢!

当前表图:


图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看

 

说明:当找到第一列袁0且第六列相等的时候  就自动将该序号定义为1

然后将袁0开始的行第一列 第三列  第四列数据  一直复制到张0的上一行

 

当找到第一列张0且第六列相等的时候  就将该行序号定义为1

如果已经是末尾行且末尾行没有其他数据  就一直将张0复制到末尾

然后将袁0开始的行第一列 第三列  第四列数据  一直复制到末尾行

 

最终实现效果如图:


图片点击可在新窗口打开查看此主题相关图片如下:2.png
图片点击可在新窗口打开查看

 

列子:

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.table



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


加好友 发短信
等级:七尾狐 帖子:1571 积分:11238 威望:0 精华:0 注册:2021/1/17 17:06:00
回复:(cd_tdh)比如这样:If e.DataCol.Name = "第...  发帖心情 Post By:2022/2/18 13:54:00 [显示全部帖子]

还是不大明白老师的意思

想实现的效果如下:
第一 第三 第四 第六列袁0  张0出现的第一行都是表中已经有的数据  对应的序号12345…是没有的数据
想实现遍历更新
如果遍历到袁0是属于该记录的第一行  就在第二行内复制对应的第一第三第四列
直到遍历张0所在的行-1  
然后又开始遍历张0所在行及之后的数据行  对应的也是-1复制第一第三第四列 同时递增张0为第一列的所有行序号  依次从1递增

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


加好友 发短信
等级:七尾狐 帖子:1571 积分:11238 威望:0 精华:0 注册:2021/1/17 17:06:00
回复:(cd_tdh)1、第一行直接用find就行了,find默认...  发帖心情 Post By:2022/2/18 14:13:00 [显示全部帖子]

比如找到张0的第一行  接下来后几空行 一直到末尾  
那么从找到的第一行后面的第二行开始  一直到末尾行都自动将第一行的第一第三第四列赋值到下面的空行对应列里  同时更新序号列  以第一列第三列第四列相等为判断
如果找到了下一行中的第一列有李0  那就循环上述操作  
一直到表中第一第三第四都有值 且没有空行为止

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


加好友 发短信
等级:七尾狐 帖子:1571 积分:11238 威望:0 精华:0 注册:2021/1/17 17:06:00
回复:(cd_tdh)试试这样是不是你要的效果If e.Dat...  发帖心情 Post By:2022/2/18 14:21:00 [显示全部帖子]

第一列的张0只会出现第一行哦  接下来的2345…行都是没有的  有可能第7行第一列会出现别的王0  想实现张0出现的第一行  一直到王0出现的第一行之间  都将第一三四列的内容赋值和张0出现的第一行的第一三四列内容

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


加好友 发短信
等级:七尾狐 帖子:1571 积分:11238 威望:0 精华:0 注册:2021/1/17 17:06:00
回复:(有点蓝)[upload=zip,管理项目1 (1).zip]view...  发帖心情 Post By:2022/2/18 15:34:00 [显示全部帖子]

谢谢  有点蓝老师

 

Dim r0 As Row
Dim idx As Integer = 1
For Each r As Row In Tables("表A").Rows
    If r0 IsNot Nothing Then
        If r.IsNull("第一列") OrElse r0("第一列") = r("第一列")
            r("第一列") = r0("第一列")
            r("第三列") = r0("第三列")
        Else
            idx = 1
        End If
    End If
    r("序号") = idx
    idx += 1
    r0 = r
Next

 

如果我要反过来  将第一三四列内容都相同的行的列合并单元格  只显示一行怎么操作呢?

 

袁0  团员

袁0  团员

袁0  团员

 

三行都相同   那就把他们三行两列合并成一行

袁0  团员


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


加好友 发短信
等级:七尾狐 帖子:1571 积分:11238 威望:0 精华:0 注册:2021/1/17 17:06:00
回复:(有点蓝)方法基本一样。和上一行比较,如果相...  发帖心情 Post By:2022/2/18 16:23:00 [显示全部帖子]

老师  试了一下 貌似还是没有理解老师的方法

 

当前代码如下:【运行没有得到想要的效果】

Dim r0 As Row
If DataTables("在职及亲属").DataRows.Count = 0 Then
    Return "" '返回
End If
Dim ColNames As String() = {"姓名","职务","政治面貌","身份证号码"}
Dim drs As List(Of DataRow)
drs = DataTables("在职及亲属").Select("身份证号码 = '" & r0("身份证号码") & " '","序号 DESC")
For Each r As DataRow In drs
    For Each ColName As String In ColNames
        If r0 IsNot Nothing Then
            If r0("身份证号码") = r("身份证号码")
                'r(ColName) = r0(ColName)
            'Else
                r(ColName) =Nothing
            End If
        End If
    Next
Next


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


加好友 发短信
等级:七尾狐 帖子:1571 积分:11238 威望:0 精华:0 注册:2021/1/17 17:06:00
回复:(有点蓝)哦,看错了,是要合并单元格?http:/...  发帖心情 Post By:2022/2/18 16:43:00 [显示全部帖子]

With Tables("在职及亲属")
    .MergeMode = MergeModeEnum.Standard '标准合并模式
    .MergeCols.Clear() '清除原来的合并列
    .MergeCols.Add("姓名") '加入要合并的列
    .MergeCols.Add("职务")
    .MergeCols.Add("政治面貌")
    .MergeCols.Add("身份证号码")
    .AllowMerge = true'启用合并模式
End With

 

 

经过合并模式操作后将这个表导出为excel

 

又要将这个excel导入项目表中时,怎么将合并列全部取消  根据对应的序号值  拆分成对应的行  并且每一行 姓名  职务  政治面貌  身份证号码都一样的值呢?


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


加好友 发短信
等级:七尾狐 帖子:1571 积分:11238 威望:0 精华:0 注册:2021/1/17 17:06:00
回复:(有点蓝)去掉合并:http://www.foxtable.com/...  发帖心情 Post By:2022/2/18 17:47:00 [显示全部帖子]

还得麻烦老师   我貌似思路不对  麻烦老师继续指导下 谢谢!

 

直接将ecexl表中对应行空值的列  对应全部赋值上第一行对应的列值

 

Dim Book As New XLS.Book("d:\在职及亲属.xlsx")
Dim count As Integer
Dim count1 As Integer
Dim Sheet As XLS.Sheet = Book.Sheets(0)
count =Sheet.Rows.Count
count1 =Sheet.Cols.Count

Dim r0 As Row
Dim idx As Integer = 1
For Each r As Row In Book.Sheets(0).Rows
    For i As Integer = 0 To Sheet.Rows.Count -1
        If r0 IsNot Nothing Then
            If r(i).IsNull("第一列") OrElse r0("第一列") = r(i)("第一列")
                r(i)("第一列") = r0("第一列")
                r(i)("第三列") = r0("第三列")
            Else
                idx = 1
            End If
        End If
        r(i)("序号") = idx
        idx += 1
        r0 = r
    Next
Next


 回到顶部