以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]word 报表出错  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=109030)

--  作者:Engineer1
--  发布时间:2017/11/2 22:11:00
--  [求助]word 报表出错
.NET Framework 版本:2.0.50727.8794
Foxtable 版本:2017.10.26.1
错误所在事件:窗口,理化检测,Button10,Click
详细错误信息:
RPC 服务器不可用。 (异常来自 HRESULT:0x800706BA)
word报表时出现的,看了下文件夹,报表已经生成了,但是窗口没打开,出现上面错误提示
代码如下:
Dim r As Row = Tables("理化检测_table3").Current
r("报告日期") = Date.Today()
Dim tm As String = ProjectPath & "Attachments\\检测报告.doc" \'指定模板文件
Dim ffx As String = ProjectPath & "attachments\\Reports\\fxreports\\" & e.form.controls("TextBox9").Text & ".doc" \'指定目标文件
Dim wrtfx As New WordReport(Tables("理化检测_table3"),tm,ffx) \'定义一个WordReport
Dim fjx As String = ProjectPath & "attachments\\Reports\\jxreports\\" & e.form.controls("TextBox9").Text & ".doc" \'指定目标文件
Dim wrtjx As New WordReport(Tables("理化检测_table3"),tm,fjx)

If user.group = "分析室" Then
    wrtfx.Build() \'逐行生成报表
    wrtfx.quit() \'显示报表
ElseIf user.group = "金相室" Then
    wrtjx.Build()
    wrtjx.quit()
End If
r("检测状态") = "已发报告"

Forms("检测报告").open
[此贴子已经被作者于2017/11/2 22:33:53编辑过]

--  作者:有点甜
--  发布时间:2017/11/2 23:03:00
--  

1、打开任务管理器,把word进程全部删除掉,再测试;

 

2、看看 https://www.baidu.com/baidu?wd=RPC+%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8D%E5%8F%AF%E7%94%A8

 


--  作者:Engineer1
--  发布时间:2017/11/3 8:17:00
--  
老师,后台没有word进程,重新启动都不行,还有RPC调用,我屏蔽其它语句就留其中一个报告,报表就没问题
--  作者:有点甜
--  发布时间:2017/11/3 9:00:00
--  

改代码

 

Dim r As Row = Tables("理化检测_table3").Current
r("报告日期") = Date.Today()

Dim tm As String = ProjectPath & "Attachments\\检测报告.doc" \'指定模板文件
If user.group = "分析室" Then
    Dim ffx As String = ProjectPath & "attachments\\Reports\\fxreports\\" & e.form.controls("TextBox9").Text & ".doc" \'指定目标文件
    Dim wrtfx As New WordReport(Tables("理化检测_table3"),tm,ffx) \'定义一个WordReport
    wrtfx.Build() \'逐行生成报表
    wrtfx.quit() \'显示报表
ElseIf user.group = "金相室" Then
    Dim fjx As String = ProjectPath & "attachments\\Reports\\jxreports\\" & e.form.controls("TextBox9").Text & ".doc" \'指定目标文件
    Dim wrtjx As New WordReport(Tables("理化检测_table3"),tm,fjx)
    wrtjx.Build()
    wrtjx.quit()
End If
r("检测状态") = "已发报告"


Forms("检测报告").open


--  作者:Engineer1
--  发布时间:2017/11/3 10:32:00
--  
老师,这个问题已经解决,但是报表退出后我用新窗口在浏览器中打开,打开分析室的没问题,其他的加载不上怎么回事?
代码如下:
Dim wbr As WinForm.WebBrowser = e.Form.Controls("WebBrowser1")
wbr.OfficeToolBar = False
If user.group = "分析室" Then
    Dim ffx As String = ProjectPath & "attachments\\Reports\\fxreports\\" & Forms("理化检测").controls("TextBox9").Text & ".doc"
    wbr.Address = ffx
ElseIf user.group = "金相室" Then
    Dim fjx As String = ProjectPath & "attachments\\Reports\\jxreports\\" & Forms("理化检测").controls("TextBox9").Text & ".doc"
    wbr.Address = fjx
End If

--  作者:有点蓝
--  发布时间:2017/11/3 11:49:00
--  
测试没有问题。

可能你的office有问题,卸载重新安装,或者换个其他版本安装

--  作者:有点甜
--  发布时间:2017/11/3 11:56:00
--  

1、去项目那里看是否生成了word报表。

 

2、弹出对应的值,看是否进入执行了代码 msgbox(user.group )


--  作者:Engineer1
--  发布时间:2017/11/3 11:57:00
--  
老师,不是0ffice 的事,前面已经没问题了,就是生成的报表因为需要添加一些数据就又在一个新窗口用浏览器打开,添加完以后在保存成PDF格式的现在报表都没问题,报完表后自动打开新窗口,我用上面的代码只能打开分析室的报告,而其余的则浏览器加载不上,生成报表后自动打开窗口的
Forms("检测报告").open

--  作者:Engineer1
--  发布时间:2017/11/3 11:58:00
--  
报表已经生成了
--  作者:有点甜
--  发布时间:2017/11/3 12:48:00
--  

修改代码

 

Forms("检测报告").open

Dim wbr As WinForm.WebBrowser = Forms("检测报告").Controls("WebBrowser1")
wbr.OfficeToolBar = False

Dim fjx As String = ProjectPath & "attachments\\Reports\\jxreports\\" & Forms("理化检测").controls("TextBox9").Text & ".doc"

wbr.Address = fjx