Foxtable(狐表)用户栏目专家坐堂 → 打印报错


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

主题:打印报错

帅哥,在线噢!
qaz17909
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:778 积分:8879 威望:0 精华:0 注册:2017/1/26 14:38:00
打印报错  发帖心情 Post By:2018/6/4 17:54:00 [显示全部帖子]

点击控件后打印复选框中的勾选的行,第一次可以,但是第二次点击的时候报错,“报告.doc已被锁定,无法编制”
Dim rs As List(of Row) = t.GetCheckedRows
        If rs.Count > 0 Then '如果存在符合条件的行
            Dim tm As String  = ProjectPath & "Attachments\报告.doc" '指定模板文件
            Dim fl As String = ProjectPath & "Reports\报告.doc"
            Dim wrt As New WordReport(Tables("报告_Table1"),tm,fl) '定义一个WordReport
            For Each r As Row In rs '逐行生成报表
                wrt.BuildOne(r)
                wrt.RecordsOnEachPage = 1
            Next
            'wrt.Show() '显示报表
            Dim Proc As New Process '打开工作簿
            Proc.File = fl
            Proc.Verb= "Print"
            Proc.Start()
        Else
            MessageBox.show("请先勾选要打印的报告!")
        End If


 回到顶部
帅哥,在线噢!
qaz17909
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:778 积分:8879 威望:0 精华:0 注册:2017/1/26 14:38:00
  发帖心情 Post By:2018/6/4 20:52:00 [显示全部帖子]

这样写对吗,好像“报告.doc”文件未保存仍然占用,所以无法打印。

Dim rs As List(of Row) = t.GetCheckedRows
        If rs.Count > 0 Then '如果存在符合条件的行
            Dim tm As String  = ProjectPath & "Attachments\报告.doc" '指定模板文件
            Dim fl As String = ProjectPath & "Reports\报告.doc"
            Dim wrt As New WordReport(Tables("报告_Table1"),tm,fl) '定义一个WordReport
            For Each r As Row In rs '逐行生成报表
                wrt.BuildOne(r)
                wrt.RecordsOnEachPage = 1
            Next
            'wrt.Show() '显示报表
            Dim app As New MSWord.Application
            try
                Dim doc = app.Documents.Open(fl)
                Doc.PrintPreview
                app.Visible = True
                Doc.PrintOut '打印
            catch ex As exception
                msgbox(ex.message)
            finally
                app.Quit
            End try
        Else
            MessageBox.show("请先勾选要打印的报告!")
        End If


 回到顶部
帅哥,在线噢!
qaz17909
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:778 积分:8879 威望:0 精华:0 注册:2017/1/26 14:38:00
  发帖心情 Post By:2018/6/5 8:13:00 [显示全部帖子]

这样写是哪个地方有问题,提示“目标报表文件已经被其他进程打开,生成的报表将存为一个临时文件”,然后打印出来的都是第一个文件

Dim rs As List(of Row) = t.GetCheckedRows
        If rs.Count > 0 Then '如果存在符合条件的行
            For Each r As Row In rs '逐行生成报表
                If r("送样方式") = "自送样" Then
                    Dim tm As String  = ProjectPath & "Attachments\自送样报告首页.doc" '指定模板文件
                    Dim fl As String = ProjectPath & "Reports\自送样报告首页.doc"
                    Dim wrt As New WordReport(Tables("报告打印_Table1"),tm,fl) '定义一个WordReport
                    wrt.BuildOne(r)
                    wrt.RecordsOnEachPage = 1
                    wrt.Quit
                    Dim app As New MSWord.Application
                    try
                        Dim doc = app.Documents.Open(fl)
                        Doc.PrintPreview
                        app.Visible = True
                        Doc.PrintOut '打印
                    catch ex As exception
                        msgbox(ex.message)
                    finally
                        app.Quit
                    End try
                Else If r("送样方式") = "自采样" Then
                    Dim tm As String  = ProjectPath & "Attachments\自采样报告首页.doc" '指定模板文件
                    Dim fl As String = ProjectPath & "Reports\自采样报告首页.doc"
                    Dim wrt As New WordReport(Tables("报告打印_Table1"),tm,fl) '定义一个WordReport
                    wrt.BuildOne(r)
                    wrt.RecordsOnEachPage = 1
                    wrt.Quit
                    Dim app As New MSWord.Application
                    try
                        Dim doc = app.Documents.Open(fl)
                        Doc.PrintPreview
                        app.Visible = True
                        Doc.PrintOut '打印
                    catch ex As exception
                        msgbox(ex.message)
                    finally
                        app.Quit
                    End try
                End If
            Next
        Else
            MessageBox.show("请先勾选要打印的报告!")
        End If


 回到顶部
帅哥,在线噢!
qaz17909
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:778 积分:8879 威望:0 精华:0 注册:2017/1/26 14:38:00
  发帖心情 Post By:2018/6/5 8:57:00 [显示全部帖子]

没有改变,还是出现一样的情况

 回到顶部
帅哥,在线噢!
qaz17909
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:778 积分:8879 威望:0 精华:0 注册:2017/1/26 14:38:00
  发帖心情 Post By:2018/6/5 10:47:00 [显示全部帖子]

可以了,谢谢!

 回到顶部