以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- word 报表给生成的报表中段落编号问题 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=169615) |
-- 作者:哈哈哥 -- 发布时间:2021/6/23 9:48:00 -- word 报表给生成的报表中段落编号问题 求助。现已生成了如下的word 报表,段落之间有多余空行,下步需要对生成的报表段落进行操作,删除多余空行,并将特定段落之间的段落进行自动从1生成序号,空行段落不生成序号,保证有文字的段落序号连续。现生成的报表如下: 销售部: 张三 李四 小王 小张 服务部: 哈哈 哈 小陈 等等 销售部和服务部之类为已经实现报表中只出现一次, 但是底下的段落有空行,且无法生成连续序号,想要的效果如下: 销售部 1、张三 2、李四 3、小王 4、小张 服务部: 1、哈哈 2、哈 3、小陈 4、等等 请问代码怎么写?谢谢!
|
-- 作者:有点蓝 -- 发布时间:2021/6/23 10:04:00 -- 查询数据的时候直接过滤掉空行不就行了,,然后在输出报表 tables("表A").filter = "姓名 is not null"
|
-- 作者:哈哈哥 -- 发布时间:2021/6/23 10:24:00 -- 不是数据表里有空行,而是生成报表时因先判断,不满足条件的生成了空行。 |
-- 作者:有点蓝 -- 发布时间:2021/6/23 10:37:00 -- 那就生成报表前把不满足条件的数据筛选掉呀 |
-- 作者:哈哈哥 -- 发布时间:2021/6/23 12:38:00 -- 请教一下,在选中行中先筛选出符合条件的行,再生成报表,最开头的代码怎么写。比如我先选中了10行,再筛选出[部门]这一列中等于“销售部”的行,然后再生成报表,代码该怎么写?数据表中[部门]这一列一共只有“销售部”、“服务部”、“联络部”等固定的四个部门,。最终需要行成的报表如下, 求助。现已生成了如下的word 报表,段落之间有多余空行,下步需要对生成的报表段落进行操作,删除多余空行,并将特定段落之间的段落进行自动从1生成序号,空行段落不生成序号,保证有文字的段落序号连续。现生成的报表如下: 销售部: 1、张三 2、李四 3、小王 4、小张 服务部: 1、哈哈 2、哈 3、小陈 4、等等 |
-- 作者:哈哈哥 -- 发布时间:2021/6/23 12:41:00 -- 刚才没说清楚,重发一下 请教一下,在选中行中先筛选出符合条件的行,再生成报表,最开头的代码怎么写。比如我先选中了10行,再筛选出[部门]这一列中等于“销售部”的行,然后再生成报表,代码该怎么写?数据表中[部门]这一列一共只有“销售部”、“服务部”、“联络部”等固定的四个部门,。最终需要行成的报表如下 : 销售部: 1、张三 2、李四 3、小王 4、小张 服务部: 1、哈哈 2、哈 3、小陈 4、等等
|
-- 作者:哈哈哥 -- 发布时间:2021/6/23 12:54:00 -- 总体思路就是在表里先选中的N行中,先筛选出[部门]这一列等于“销售部”的行,依次生成内容,再筛选出[部门]这一列等于“服务部”的行,依次生成内容,再筛选出[部门]这一列等于“联络部”的行,依次生成内容等,最终四个部分都在一个word 里面,最终的报表没有空行,每个部分都从1开始产生序列号,最终效果如下: 求助,这样的代码该怎么写 销售部: 1、张三 2、李四 3、小王 4、小张 服务部: 1、哈哈 2、哈 3、小陈 4、等等 |
-- 作者:有点蓝 -- 发布时间: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)
|
-- 作者:哈哈哥 -- 发布时间:2021/6/23 23:18:00 -- for each dr as datatrow in dataTables("表A").select("部门=\'" & s1 & "\'") 这行代码显示错误,不知怎么改。完整代码是不是底下加上生成报表的代码就可以
|
-- 作者:哈哈哥 -- 发布时间: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) ’显示在最前端
|