以文本方式查看主题

-  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=126243)

--  作者:Engineer1
--  发布时间:2018/10/17 13:14:00
--  [求助]word 报表没反应了
换了个电脑,现在单击按钮生成word报表程序假死,文件夹里没生成word 文档,看后台word程序已经启动,请老师看下是什么问题,谢谢!office 是2007

Dim r As Row = Tables("理化检测_table3").Current
r("报告日期") = Date.Today()
Dim tmfx As String = ProjectPath & "Attachments\\分析报告模板.doc" \'指定模板文件
Dim tmjx As String = ProjectPath & "Attachments\\金相报告模板.doc"
Dim tmhg As String = ProjectPath & "Attachments\\化工报告模板.doc"
Dim tmxn As String = ProjectPath & "Attachments\\性能报告模板.doc"
Dim tmwsjc As String = ProjectPath & "Attachments\\无损检测报告模板.doc"
Dim f As String = ProjectPath & "attachments\\Reports\\" & e.form.controls("TextBox9").Text & ".doc" \'指定目标文件

If user.group = "分析室" Then
     Dim wrtfx As New WordReport(Tables("理化检测_table3"),tmfx,f) \'定义一个WordReport
    wrtfx.Build() \'逐行生成报表
    wrtfx.quit() \'退出报表

ElseIf user.group = "金相室" Then
     Dim wrtjx As New WordReport(Tables("理化检测_table3"),tmjx,f)
    wrtjx.Build()
    wrtjx.quit()
ElseIf user.group = "化工室" Then
     Dim wrthg As New WordReport(Tables("理化检测_table3"),tmhg,f)
    wrthg.Build()
    wrthg.quit()
ElseIf user.group = "性能室" Then
      Dim wrtxn As New WordReport(Tables("理化检测_table3"),tmxn,f)
    wrtxn.Build()
    wrtxn.quit()
ElseIf user.group = "无损检测" Then
      Dim wrtwsjc As New WordReport(Tables("理化检测_table3"),tmwsjc,f)
    wrtwsjc.Build()
    wrtwsjc.quit()
End If


Forms("检测报告").open
Dim wbr As WinForm.WebBrowser = Forms("检测报告").Controls("WebBrowser1")
wbr.OfficeToolBar = False
Dim file As String
    file= ProjectPath & "attachments\\Reports\\" & Forms("理化检测").controls("TextBox9").Text & ".doc"
    
If file > "" Then
    Dim web As Object = wbr.basecontrol
    web.Navigate(file)
    
    Do Until axWebBrowser IsNot Nothing
        Application.DoEvents
    Loop
    
    Dim oDocument As object = axWebBrowser.Gettype().InvokeMember("Document", System.Reflection.BindingFlags.GetProperty, Nothing, axWebBrowser, Nothing)
    Dim oApplication As object = axWebBrowser.Gettype().InvokeMember("Application", System.Reflection.BindingFlags.GetProperty, Nothing, oDocument, Nothing)
    
    vars("doc") = oDocument
End If
[此贴子已经被作者于2018/10/17 13:15:18编辑过]

--  作者:有点甜
--  发布时间:2018/10/17 15:11:00
--  

新建一个项目,新建一个word报表,单独测试,看是否也卡死不能生成。

 

如果也是卡死,就是你ms office没有安装正确。请安装完整版本的32位的ms office,不要安装绿色版。


--  作者:Engineer1
--  发布时间:2018/10/17 16:42:00
--  
新建一个试了正常打开
--  作者:有点甜
--  发布时间:2018/10/17 17:17:00
--  
以下是引用Engineer1在2018/10/17 16:42:00的发言:
新建一个试了正常打开

 

做一个窗口,加入webbrowser控件,绑定一个doc,看能否显示这个word文档。

 

如果没有在WebBrowser显示Word报表,而是在一个新的IE窗口显示,那么请双击Foxtable目录下的Office.reg文件,将其添加到注册表中。


--  作者:Engineer1
--  发布时间:2018/10/17 17:19:00
--  
office 是2010完整版32位的,但还是运行不了啊
--  作者:有点甜
--  发布时间:2018/10/17 17:37:00
--  

做一个窗口,加入webbrowser控件,绑定一个doc,看能否显示这个word文档。

 

如果没有在WebBrowser显示Word报表,而是在一个新的IE窗口显示,那么请双击Foxtable目录下的Office.reg文件,将其添加到注册表中


--  作者:Engineer1
--  发布时间:2018/10/17 19:10:00
--  
仍然没显示word,但是报表已经生成,在文件夹里找到了,这样我没法直接修改文档了
--  作者:有点甜
--  发布时间:2018/10/17 19:11:00
--  
一个窗口,加入webbrowser控件,绑定一个doc,看能否显示这个word文档。

 

如果没有在WebBrowser显示Word报表,而是在一个新的IE窗口显示,那么请双击Foxtable目录下的Office.reg文件,将其添加到注册表中


--  作者:Engineer1
--  发布时间:2018/10/17 21:43:00
--  
老师,完全按你说的做个实例都没问题,可还是假死啊
--  作者:有点甜
--  发布时间:2018/10/17 22:03:00
--  
以下是引用Engineer1在2018/10/17 21:43:00的发言:
老师,完全按你说的做个实例都没问题,可还是假死啊

 

出错的实例发上来测试。