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


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

主题: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


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/6/23 10:04:00 [只看该作者]

查询数据的时候直接过滤掉空行不就行了,,然后在输出报表

tables("表A").filter = "姓名 is not null"

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


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

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

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


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/6/23 10:37:00 [只看该作者]

那就生成报表前把不满足条件的数据筛选掉呀

 回到顶部
帅哥哟,离线,有人找我吗?
哈哈哥
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | 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、等等

 回到顶部
帅哥哟,离线,有人找我吗?
哈哈哥
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | 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、等等

 回到顶部
帅哥哟,离线,有人找我吗?
哈哈哥
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | 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、等等

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


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/6/23 13:38:00 [只看该作者]

dim lst as New List(of string)
For Each r As Row In Tables("表A").GetCheckedRows
   lst.add(r("_Identify"))
Next
dim s as string
for each s1 as string in dataTables("表A").getvalues("部门","_Identify in (" &string.join(",",lst.toarray)  & ")")
s  = s & vbcrlf & s1
dim idx as integer = 1
for each dr as datatrow in dataTables("表A").select("部门='" & s1 & "'")
s = s & vbcrlf & idx & "," & dr("姓名")
idx = idx + 1
next
next
msgbox(s)

 回到顶部
帅哥哟,离线,有人找我吗?
哈哈哥
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | 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 & "'")   这行代码显示错误,不知怎么改。完整代码是不是底下加上生成报表的代码就可以

 回到顶部
帅哥哟,离线,有人找我吗?
哈哈哥
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | 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)   ’显示在最前端

 回到顶部
总数 25 1 2 3 下一页