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


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

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

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


加好友 发短信
等级:管理员 帖子:47480 积分:251289 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2017/3/7 10:27:00 [显示全部帖子]

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

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



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


加好友 发短信
等级:管理员 帖子:47480 积分:251289 威望: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() '显示报表

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


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


加好友 发短信
等级:管理员 帖子:47480 积分:251289 威望: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() '显示报表

 回到顶部