以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  报表锁定  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=152614)

--  作者:qaz17909
--  发布时间:2020/7/16 14:32:00
--  报表锁定

图片点击可在新窗口打开查看此主题相关图片如下:微信图片_20200716142941.png
图片点击可在新窗口打开查看
生成word或excel报表的时候,如果打开着其他word或者excel,便会提示文档被锁定,应如何改进,另外希望生成的文档自动最大化显示。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:报表锁定.rar




--  作者:有点蓝
--  发布时间:2020/7/16 15:04:00
--  
只能先关闭已经打开的报表,或者使用代码强制关闭:

Dim ps As  System.Diagnostics.Process() = System.Diagnostics.Process.GetProcesses()
For Each p As System.Diagnostics.Process In ps
    output.show(p.processName)
    If ("Excel" = p.ProcessName)
        msgbox(p.MainWindowTitle)
        \'p.kill
    End If
Next


--  作者:qaz17909
--  发布时间:2020/7/16 15:14:00
--  
真的没有其他变通的办法了吗?有的时候,必须要同时打开其他文档。
--  作者:有点蓝
--  发布时间:2020/7/16 15:34:00
--  
正常打开其它文档不应该会影响要生成的报表。肯定是打开了同名的报表。比如1.docx已经被打开,再生成的报表名称肯定不能是1.docx。如果打开的是2.docx,不可能会影响生成1.docx这个名称的报表的。
--  作者:qaz17909
--  发布时间:2020/7/16 15:38:00
--  
打开不同名的报表,也是会报错的,你可以试试,随便打开一个其他word文档,然后再生成报表。
--  作者:有点蓝
--  发布时间:2020/7/16 15:43:00
--  
Dim t As Table = CurrentTable
Dim tm As String  = ProjectPath & "Attachments\\1.docx" \'指定模板文件
Dim fl As String = ProjectPath & "Reports\\1.docx"
Dim wrt As New WordReport(t,tm,fl) \'定义一个WordReport
wrt.RecordsOnEachPage = 1
wrt.Build()
wrt.show()
去掉下面代码,wrt.show()就已经打开报表了,不需要Process,下面就相当于重复打开,肯定就冲突了
\'Dim Proc As New Process \'定义一个新的Process
\'Proc.File = fl \'指定要打开的文件
\'Proc.Start()

--  作者:qaz17909
--  发布时间:2020/7/16 15:51:00
--  
可以同时打开,但是最大化显示没能实现,我代码如下:

Dim t As Table = CurrentTable

Dim tm As String  = ProjectPath & "Attachments\\1.docx" \'指定模板文件
Dim fl As String = ProjectPath & "Reports\\1.docx"
Dim wrt As New WordReport(t,tm,fl) \'定义一个WordReport
wrt.RecordsOnEachPage = 1
wrt.Build()
wrt.show()
ShowAppWindow(fl,2)

--  作者:有点蓝
--  发布时间:2020/7/16 16:25:00
--  

语法:

ShowAppWindow(Caption, State)

  • Caption
    字符型,查找窗口标题包括的字符。
     
  • State
    整数型,指定窗口状态。
    1:正常大小显示
    2:最大化显示
    3:最小化
    4:隐藏
    5、关闭

如果找到指定标题的窗口,在完成指定操作后,会返回True,否则返回False。

示例一

假定用Excel打开了一个名为"订单.xls"的文件,希望最大化显示此窗口:

ShowAppWindow("订单.xls",2)

如果你要关闭这个窗口,只需:

ShowAppWindow("订单.xls",5)