以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]WORD报表打印  (http://www.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
--  

这个才是 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.rar

[此贴子已经被作者于2015/5/22 9:19:32编辑过]

--  作者:Bin
--  发布时间:2015/5/22 9:23:00
--  
我测试的情况是选那些行,就有打印那些行哦


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20150522092300.png
图片点击可在新窗口打开查看


--  作者:大红袍
--  发布时间: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、在把另一个类型的行添加进去,再生成一次报表。