以文本方式查看主题 - 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=68655) |
||||
-- 作者:wusim -- 发布时间:2015/5/22 7:25:00 -- [求助]WORD报表打印 Dim dr As DataRow = Tables("表A").current.DataRow If dr("设备名称") Like "自*" Then Dim tm As String = ProjectPath & "Attachments\\记录1模板.doc" \'指定模板文件 Dim fl As String = ProjectPath & "Reports\\记录1.doc" \'指定目标文件 Dim wrt As New WordReport(Tables("表A"),tm,fl) \'定义一个WordReport wrt.Build() \'生成报表 wrt.Show() \'显示报表 Else Dim tm As String = ProjectPath & "Attachments\\记录2模板.doc" \'指定模板文件 Dim fl As String = ProjectPath & "Reports\\记录2.doc" \'指定目标文件 Dim wrt As New WordReport(Tables("表A"),tm,fl) \'定义一个WordReport wrt.Build() \'生成报表 wrt.Show() \'显示报表 End If 当我只选一个记录打印WORD报表时,可以正确选择显示报表,但是当我用鼠标选取多行记录打印时,只有用鼠标选取的第一行记录的可以正确选择显示报表,其他行的显示都会与第一行显示的一样。 请问题能不能解决多行打印时,每一行记录也可以正解选择所显示的报表。 如果能解决,能不能与这段代码结合 Dim t As Table = Tables("表A") For i As Integer = t.TopPosition To t.BottomPosition Dim fdr As Row = t.Rows(i) If fdr.IsNull("报告编号") = False Then fdr("打印次数") = val(fdr("打印次数")) + 1 e.Form.Controls("Label1").Text = val(fdr("打印次数")) End If Next [此贴子已经被作者于2015/5/22 7:32:27编辑过]
|
||||
-- 作者:Bin -- 发布时间:2015/5/22 8:35:00 -- 上个例子看看 |
||||
-- 作者:wusim -- 发布时间:2015/5/22 9:18:00 -- 例子 |
||||
-- 作者:wusim -- 发布时间:2015/5/22 9:18:00 -- 这个才是
[此贴子已经被作者于2015/5/22 9:19:32编辑过]
|
||||
-- 作者:Bin -- 发布时间:2015/5/22 9:23:00 -- 我测试的情况是选那些行,就有打印那些行哦 |
||||
-- 作者:大红袍 -- 发布时间:2015/5/22 9:32:00 -- 不会有你这种情况,模板肯定有问题。
请上传具体例子 |
||||
-- 作者:wusim -- 发布时间:2015/5/22 11:09:00 -- 自动扶梯是模板1 曳引式客梯是模板2 你的截图全是模板2 |
||||
-- 作者:Bin -- 发布时间:2015/5/22 11:13:00 -- Dim t As Table = Tables("表A") For i As Integer = t.TopPosition To t.BottomPosition Dim dr As DataRow = Tables("表A").Rows(i).DataRow If dr("设备名称") Like "自*" Then Dim tm As String = ProjectPath & "Attachments\\模板1.doc" \'指定模板文件 Dim fl As String = ProjectPath & "Reports\\模板1.doc" \'指定目标文件 Dim wrt As New WordReport(Tables("表A"),tm,fl) \'定义一个WordReport wrt.BuildOne(dr) \'生成报表 wrt.Show() \'显示报表 Else Dim tm As String = ProjectPath & "Attachments\\模板2.doc" \'指定模板文件 Dim fl As String = ProjectPath & "Reports\\模板2.doc" \'指定目标文件 Dim wrt As New WordReport(Tables("表A"),tm,fl) \'定义一个WordReport wrt.BuildOne (dr) \'生成报表 wrt.Show() \'显示报表 End If Dim fdr As Row = t.Rows(i) If fdr.IsNull("报告编号") = False Then fdr("打印次数") = val(fdr("打印次数")) + 1 End If Next 这个意思?
[此贴子已经被作者于2015/5/22 11:13:33编辑过]
|
||||
-- 作者:大红袍 -- 发布时间:2015/5/22 11:18:00 -- 以下是引用wusim在2015/5/22 11:09:00的发言:
自动扶梯是模板1 曳引式客梯是模板2 你的截图全是模板2
word模板是不能按照你这样分开打印的,所选取的行,必须打印在同一个报表里面。
除非你这样做:1、做一个临时表,把同类型的行,添加进去,生成报表;2、在把另一个类型的行添加进去,再生成一次报表。 |