以文本方式查看主题
- Foxtable(狐表) (http://foxtable.net/bbs/index.asp)
-- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2)
---- 话说word报表想加一些非生成的文字,只要第一篇有,只出现一次。 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=97157)
|
-- 作者:guimingze
-- 发布时间:2017/3/7 10:11:00
-- 话说word报表想加一些非生成的文字,只要第一篇有,只出现一次。
比如设置数据后 word报表生成的是一条条的数据,但是 比如我希望加 一句话或者一篇话,好好学习天天向上,但是每篇、每条都是好好学习天天向上,我只想让好好学习天天向上在第一篇出现一次,且只出现一次,如何实现? 此主题相关图片如下:q4m9g{@97d)qor(@n7j@yg.png
|
-- 作者:狐狸爸爸
-- 发布时间:2017/3/7 10:27:00
--
做两个模版,第一行按照这个模版生成,第二个按照其他模版生成。
反正用代码生成的话,模版随便选:
|
-- 作者:guimingze
-- 发布时间:2017/3/7 10:35:00
-- 回复:(狐狸爸爸)做两个模版,第一行按照这个模版生...
有简单点的没啊,狐狸爸爸, 不会啊,能不能给个鼠标形式的操作啊?
|
-- 作者:guimingze
-- 发布时间:2017/3/7 10:55:00
-- 回复:(狐狸爸爸)做两个模版,第一行按照这个模版生...
我尝试了,但是俩模板就不能在一个word显示啦。
|
-- 作者:狐狸爸爸
-- 发布时间: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() \'显示报表 这样生成报表的时候,每一条记录的合计,都是截止到此行为止的合计。
|
-- 作者:狐狸爸爸
-- 发布时间: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
-- 发布时间:2017/3/9 21:26:00
-- 回复:(狐狸爸爸)套用你这里,大概就是:Dim tm As ...
老师这个代码我对么? 应该放在报表事件里么? 放在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() \'显示报表
|
-- 作者:有点色
-- 发布时间:2017/3/10 2:18:00
--
回复7楼,不需要写到报表事件里面去,单独做一个按钮,生成你的报表
|