Foxtable(狐表)用户栏目专家坐堂 → word 报表给生成的报表中段落编号问题


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

主题:word 报表给生成的报表中段落编号问题

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


加好友 发短信
等级:婴狐 帖子:26 积分:315 威望:0 精华:0 注册:2020/3/11 23:44:00
word 报表给生成的报表中段落编号问题  发帖心情 Post By:2021/6/23 9:48:00 [显示全部帖子]

求助。现已生成了如下的word 报表,段落之间有多余空行,下步需要对生成的报表段落进行操作,删除多余空行,并将特定段落之间的段落进行自动从1生成序号,空行段落不生成序号,保证有文字的段落序号连续。现生成的报表如下:
销售部:
张三


李四
小王

小张
服务部:

哈哈

小陈

等等

销售部和服务部之类为已经实现报表中只出现一次,
但是底下的段落有空行,且无法生成连续序号,想要的效果如下:
销售部
1、张三
2、李四
3、小王
4、小张
服务部:
1、哈哈
2、哈
3、小陈
4、等等


请问代码怎么写?谢谢!

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


加好友 发短信
等级:婴狐 帖子:26 积分:315 威望:0 精华:0 注册:2020/3/11 23:44:00
  发帖心情 Post By:2021/6/23 10:24:00 [显示全部帖子]

不是数据表里有空行,而是生成报表时因先判断,不满足条件的生成了空行。

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


加好友 发短信
等级:婴狐 帖子:26 积分:315 威望:0 精华:0 注册:2020/3/11 23:44:00
  发帖心情 Post By:2021/6/23 12:38:00 [显示全部帖子]

请教一下,在选中行中先筛选出符合条件的行,再生成报表,最开头的代码怎么写。比如我先选中了10行,再筛选出[部门]这一列中等于“销售部”的行,然后再生成报表,代码该怎么写?数据表中[部门]这一列一共只有“销售部”、“服务部”、“联络部”等固定的四个部门,。最终需要行成的报表如下, 求助。现已生成了如下的word 报表,段落之间有多余空行,下步需要对生成的报表段落进行操作,删除多余空行,并将特定段落之间的段落进行自动从1生成序号,空行段落不生成序号,保证有文字的段落序号连续。现生成的报表如下: 销售部: 1、张三 2、李四 3、小王 4、小张 服务部: 1、哈哈 2、哈 3、小陈 4、等等

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


加好友 发短信
等级:婴狐 帖子:26 积分:315 威望:0 精华:0 注册:2020/3/11 23:44:00
  发帖心情 Post By:2021/6/23 12:41:00 [显示全部帖子]

刚才没说清楚,重发一下 请教一下,在选中行中先筛选出符合条件的行,再生成报表,最开头的代码怎么写。比如我先选中了10行,再筛选出[部门]这一列中等于“销售部”的行,然后再生成报表,代码该怎么写?数据表中[部门]这一列一共只有“销售部”、“服务部”、“联络部”等固定的四个部门,。最终需要行成的报表如下 : 
销售部:
 1、张三 
2、李四 
3、小王
 4、小张
 服务部: 
1、哈哈
 2、哈 
3、小陈 
4、等等

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


加好友 发短信
等级:婴狐 帖子:26 积分:315 威望:0 精华:0 注册:2020/3/11 23:44:00
  发帖心情 Post By:2021/6/23 12:54:00 [显示全部帖子]

总体思路就是在表里先选中的N行中,先筛选出[部门]这一列等于“销售部”的行,依次生成内容,再筛选出[部门]这一列等于“服务部”的行,依次生成内容,再筛选出[部门]这一列等于“联络部”的行,依次生成内容等,最终四个部分都在一个word 里面,最终的报表没有空行,每个部分都从1开始产生序列号,最终效果如下:    求助,这样的代码该怎么写
销售部:
 1、张三 
2、李四 
3、小王
 4、小张
 服务部: 
1、哈哈
 2、哈 
3、小陈 
4、等等

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


加好友 发短信
等级:婴狐 帖子:26 积分:315 威望:0 精华:0 注册:2020/3/11 23:44:00
  发帖心情 Post By:2021/6/23 23:18:00 [显示全部帖子]


for each dr as datatrow in dataTables("表A").select("部门='" & s1 & "'")   这行代码显示错误,不知怎么改。完整代码是不是底下加上生成报表的代码就可以

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


加好友 发短信
等级:婴狐 帖子:26 积分:315 威望:0 精华:0 注册:2020/3/11 23:44:00
  发帖心情 Post By:2021/6/24 1:33:00 [显示全部帖子]

还有就是,由于生成报表后无端多了很多空行,但是加入下段代码后,仅能删除部分空行,还是有些空行无法删除,不明白是什么原因。求助!
Dim app As New MSWord.Application
        try
            Dim doc = app.Documents.Open(fl)           
            For Each k As object In doc.Paragraphs
                k.Range.Select
                If Len(k.Range.text) = 1 Then k.Range.Delete
                Do
                    If app.Selection.Characters(1).Text = Chr(10) Then app.Selection.Characters(1).Delete
                Loop Until app.Selection.Characters(1).Text <> Chr(10)
            Next
            doc.save                    
        catch ex As exception
            msgbox(ex.message)
            app.quit
        End try
        wrt.show()
        ShowAppWindow("-报表.doc",2)   ’显示在最前端

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


加好友 发短信
等级:婴狐 帖子:26 积分:315 威望:0 精华:0 注册:2020/3/11 23:44:00
  发帖心情 Post By:2021/6/25 13:50:00 [显示全部帖子]

还是这个问题,总体思路就是在表里先选中的N行中,先筛选出[部门]这一列等于“销售部”的行,依次生成内容,再筛选出[部门]这一列等于“服务部”的行,依次生成内容,再筛选出[部门]这一列等于“联络部”的行,依次生成内容等,最终四个部分都在一个word 里面,最终的报表没有空行,每个部分都从1开始产生序列号,最终效果如下:   
 

出情况差

 

销售部:

1(省外)派出二娃。赴石河子出差。

2、派出二娃。赴深圳出差。

服务部:

1(省外)派出李。赴迪拜出差。

2(省外)派出李思。赴广州出差。

生产部:

联络部:

1(省外)派出哈哈。赴美国出差。

2、派出李仪。赴南昌出差。

3、派出王二。赴南京出差。

4(省外)派出哈哈。出差。


但问题是前面建议的那种方法,给的 for each dr as datatrow in dataTables("表A").select("部门='" & s1 & "'")   这行代码显示错误,不知怎么改。所以自己写了代码想要实现,但由于每个部分自动从1开始编号的代码始终没有写对,结果生成的报表,每段没有序号,且无端多出很多空行,如下:

出情况差

 

销售部:

 

 

 

 

(省外)派出二娃。赴石河子出差。

 

 

 派出二娃。赴深圳出差。

 

 

 

服务部:

(省外)派出李。赴迪拜出差。

 

 

 

 

 

 

 

(省外)派出李思。赴广州出差。

 

 

生产部:

 

 

 

 

 

 

 

 

 

 

 

联络部:

 

(省外)派出哈哈。赴美国出差。

 派出李仪。赴南昌出差。

 

 

 派出王二。赴南京出差。

 

 

 

(省外)派出哈哈。出差。

 



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


加好友 发短信
等级:婴狐 帖子:26 积分:315 威望:0 精华:0 注册:2020/3/11 23:44:00
  发帖心情 Post By:2021/6/25 14:00:00 [显示全部帖子]

现将项目及代码上传,请老师们给帮忙看看,我的代码写的不好,或者思路不对,还请多指导。另外,部门一列共四个值,报表的效果是需要按照销售部、服务部、生产部、联络部的固定顺序组成四个部分,但假如选中行中没有生产部的人,则“生产部”这一部分不出现在报表中,最终为销售部、服务部、联络部的固定顺序组成三个部分,其他部门也是一样,总体顺序不变,根据实际情况显示。项目如下:
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:实验代码项目.rar


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


加好友 发短信
等级:婴狐 帖子:26 积分:315 威望:0 精华:0 注册:2020/3/11 23:44:00
  发帖心情 Post By:2021/6/25 15:56:00 [显示全部帖子]

感谢大师!确实已经满足我当前需求了,但还有个问题,目前报表中部门的排序是按照服务部、联络部、生成部、销售部的顺序进行,但后期如果固定的版块需要变化顺序,这个顺序怎么设定,刚才在项目中没有找到对部门四个部分的顺序设定,比如以后调整报表需要将 生成部提到第一段作为第一部分, 按照 生成部、联络部、销售部、服务部这样的排序进行。

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