Foxtable(狐表)用户栏目专家坐堂 → 话说word报表想加一些非生成的文字,只要第一篇有,只出现一次。


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

主题:话说word报表想加一些非生成的文字,只要第一篇有,只出现一次。

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


加好友 发短信
等级:幼狐 帖子:120 积分:895 威望:0 精华:0 注册:2017/2/15 20:56:00
话说word报表想加一些非生成的文字,只要第一篇有,只出现一次。  发帖心情 Post By:2017/3/7 10:11:00 [只看该作者]

比如设置数据后  word报表生成的是一条条的数据,但是   比如我希望加 一句话或者一篇话,好好学习天天向上,但是每篇、每条都是好好学习天天向上,我只想让好好学习天天向上在第一篇出现一次,且只出现一次,如何实现?
图片点击可在新窗口打开查看此主题相关图片如下:q4m9g{@97d)qor(@n7j@yg.png
图片点击可在新窗口打开查看

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2017/3/7 10:27:00 [只看该作者]

做两个模版,第一行按照这个模版生成,第二个按照其他模版生成。

反正用代码生成的话,模版随便选:



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


加好友 发短信
等级:幼狐 帖子:120 积分:895 威望:0 精华:0 注册:2017/2/15 20:56:00
回复:(狐狸爸爸)做两个模版,第一行按照这个模版生...  发帖心情 Post By:2017/3/7 10:35:00 [只看该作者]

有简单点的没啊,狐狸爸爸,   不会啊,能不能给个鼠标形式的操作啊?

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


加好友 发短信
等级:幼狐 帖子:120 积分:895 威望:0 精华:0 注册:2017/2/15 20:56:00
回复:(狐狸爸爸)做两个模版,第一行按照这个模版生...  发帖心情 Post By:2017/3/7 10:55:00 [只看该作者]

我尝试了,但是俩模板就不能在一个word显示啦。

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2017/3/7 14:20:00 [只看该作者]

那就不要分开两个模板了,用一个模板,你可以我给你帮助的哪个连接,其中示例四可以满足。

示例四

Replace对模板的修改是全局的。
我们也可以用ReplaceOne修改模板,和Repalce不同,RepalceOne仅对下一条记录生效,需要和BuildOne配合使用,例如:

Dim tm As String  = ProjectPath & "Attachments\订单.doc" '指定模板文件
Dim 
fl As String = ProjectPath & "Reports\订单.doc" '指定目标文件
Dim 
wrt As New WordReport(Tables("订单"),tm,fl'定义一个WordReport
Dim 
sum As Integer
For Each 
r As Row In Tables("订单").rows '逐行生成报表
    
sum = sum + r("数量"'逐行累计
    
wrt.ReplaceOne("[合计]",sum)
    
wrt.BuildOne(r)
Next

wrt
.Show() '显示报表

这样生成报表的时候,每一条记录的合计,都是截止到此行为止的合计。


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2017/3/7 14:24:00 [只看该作者]

套用你这里,大概就是:

Dim tm As String  = ProjectPath & "Attachments\订单.doc" '指定模板文件
Dim fl As String = ProjectPath & "Reports\订单.doc" '指定目标文件
Dim wrt As New WordReport(Tables("订单"),tm,fl) '定义一个WordReport
Dim sum As Integer
Dim cnt As Integer
For Each r As Row In Tables("订单").rows '逐行生成报表
    If cnt  > 0 Then
        wrt.ReplaceOne("文字内容","")
    End If
    cnt = cnt + 1
    wrt.BuildOne(r)
Next
wrt.Show() '显示报表

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


加好友 发短信
等级:幼狐 帖子:120 积分:895 威望:0 精华:0 注册:2017/2/15 20:56:00
回复:(狐狸爸爸)套用你这里,大概就是:Dim tm As ...  发帖心情 Post By:2017/3/9 21:26:00 [只看该作者]

老师这个代码我对么?  应该放在报表事件里么?  放在beforebuild 里么?  我要生成的是word能放报表事件里么?
Dim tm As String  = ProjectPath & "常委会汇报.doc" '指定模板文件
Dim fl As String = ProjectPath & "常委会汇报.doc" '指定目标文件
Dim wrt As New WordReport(Tables("酝酿上会"),tm,fl) '定义一个WordReport
Dim sum As Integer
Dim cnt As Integer
For Each r As Row In Tables("酝酿上会").rows '逐行生成报表
    If cnt  > 0 Then
        wrt.ReplaceOne("42222222222222222222222222222222222222223333333333333333333333333333","")
    End If
    cnt = cnt + 1
    wrt.BuildOne(r)
Next
wrt.Show() '显示报表

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/3/10 2:18:00 [只看该作者]

回复7楼,不需要写到报表事件里面去,单独做一个按钮,生成你的报表

 回到顶部