Foxtable(狐表)用户栏目专家坐堂 → 报表锁定


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

主题:报表锁定

帅哥哟,离线,有人找我吗?
qaz17909
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:807 积分:9145 威望:0 精华:0 注册:2017/1/26 14:38:00
报表锁定  发帖心情 Post By:2020/7/16 14:32:00 [只看该作者]


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




 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111390 积分:567014 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:807 积分:9145 威望:0 精华:0 注册:2017/1/26 14:38:00
  发帖心情 Post By:2020/7/16 15:14:00 [只看该作者]

真的没有其他变通的办法了吗?有的时候,必须要同时打开其他文档。

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111390 积分:567014 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/7/16 15:34:00 [只看该作者]

正常打开其它文档不应该会影响要生成的报表。肯定是打开了同名的报表。比如1.docx已经被打开,再生成的报表名称肯定不能是1.docx。如果打开的是2.docx,不可能会影响生成1.docx这个名称的报表的。

 回到顶部
帅哥哟,离线,有人找我吗?
qaz17909
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:807 积分:9145 威望:0 精华:0 注册:2017/1/26 14:38:00
  发帖心情 Post By:2020/7/16 15:38:00 [只看该作者]

打开不同名的报表,也是会报错的,你可以试试,随便打开一个其他word文档,然后再生成报表。

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111390 积分:567014 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:807 积分:9145 威望:0 精华:0 注册:2017/1/26 14:38:00
  发帖心情 Post By: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)

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111390 积分:567014 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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)


 回到顶部