Foxtable(狐表)用户栏目专家坐堂 → 浏览器打开EXCEL报表,如何关闭


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

主题:浏览器打开EXCEL报表,如何关闭

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57634 威望:0 精华:15 注册:2008/9/1 9:45:00
浏览器打开EXCEL报表,如何关闭  发帖心情 Post By:2012/12/29 13:58:00 [只看该作者]

Dim FName As String = ProjectPath & "Reports\报价表.xls"
If FileSys.FileExists(FName) Then
    Try
        Dim f As New System.IO.FileStream(FName,IO.FileMode.Open,IO.FileAccess.Read,IO.FileShare.None)
        f.Dispose()
    Catch ex As Exception
        MessageBox.Show("报价单打开中,请先关闭!","提示!")
        Dim App As New MSExcel.Application
        Dim Book1 As MSExcel.Workbook = App.Workbooks.Open(ProjectPath & "Reports\报价表.xls")
        App.Visible = True
        Book1.Saved=True
        Book1.Close()
        App.Quit()
        e.Form.Controls("WebBrowser1").AddRess = ""
    End Try
End If

Dim tmp As String = ProjectPath & "Attachments\报价表.xls"
Dim rpt As String = ProjectPath & "Reports\报价表.xls"
Dim Book As New XLS.Book(tmp)
Dim dr As DataRow
Dim r As Row  = Tables("订单主表").Current
If r IsNot Nothing Then
    dr = DataTables("客户档案").Find("客户编号='" & r("客户编号") & "'")
    If dr IsNot Nothing Then
        Book.Marks.Add("联系人",dr("联系人"))
        Book.Marks.Add("联系电话",dr("联系手机"))
    End If
End If
Book.Build()
Book.Save(rpt)
e.Form.Controls("WebBrowser1").AddRess = rpt

  我写了这个代码,但是还是提示报表打开中,如何关闭?

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/12/29 14:04:00 [只看该作者]

 无法测试,我测试的时候,填入地址,无法直接在浏览器里显示,而是弹出一个打开保存的对话框,然后打开了excel显示。

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57634 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2012/12/29 14:09:00 [只看该作者]

这个纠结的  没有办法先关闭的?

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/12/29 14:25:00 [只看该作者]

以下是引用lin_hailun在2012-12-29 14:04:00的发言:
 无法测试,我测试的时候,填入地址,无法直接在浏览器里显示,而是弹出一个打开保存的对话框,然后打开了excel显示。


http://www.foxtable.com/help/topics/1892.htm

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/12/29 14:26:00 [只看该作者]

 测试了一下,为什么不对webbrowser的Address进行一下判断?

 如果符合,就定位到空的地址"",然后再指定回来。

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57634 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2012/12/29 14:42:00 [只看该作者]

林 不行吧  只是清空地址 是没有用的.excel还是打开着.

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57634 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2012/12/29 15:04:00 [只看该作者]

终于可以了:

e.Form.Controls("WebBrowser1").AddRess = ""
Dim FName As String = ProjectPath & "Reports\报价表.xls"
If FileSys.FileExists(FName) Then
    Try
        Dim f As New System.IO.FileStream(FName,IO.FileMode.Open,IO.FileAccess.Read,IO.FileShare.None)
        f.Dispose
    Catch ex As Exception
        If MessageBox.Show("报价单打开中,请先关闭!","提示!", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = DialogResult.Yes Then
            Dim App As New MSExcel.Application
            Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open(FName)
            App.Visible = True
            App.Quit
        Else
            Return
        End If
    End Try
End If

Dim tmp As String = ProjectPath & "Attachments\报价表.xls"
Dim rpt As String = ProjectPath & "Reports\报价表.xls"
Dim Book As New XLS.Book(tmp)
Dim dr As DataRow
Dim r As Row  = Tables("订单主表").Current
If r IsNot Nothing Then
    dr = DataTables("客户档案").Find("客户编号='" & r("客户编号") & "'")
    If dr IsNot Nothing Then
        Book.Marks.Add("联系人",dr("联系人"))
        Book.Marks.Add("联系电话",dr("联系手机"))
    End If
End If
Book.Build()
Book.Save(rpt)
e.Form.Controls("WebBrowser1").AddRess = rpt

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/12/29 15:07:00 [只看该作者]

以下是引用blackzhu在2012-12-29 14:42:00的发言:
林 不行吧  只是清空地址 是没有用的.excel还是打开着.


理应是没有问题的。看看你的进程里是否有多个excel进程,结束一下再试吧。

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57634 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2012/12/29 15:30:00 [只看该作者]

e.Form.Controls("WebBrowser1").Print()   老大的这个应该加入预览功能.


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


加好友 发短信
等级:二尾狐 帖子:599 积分:4188 威望:0 精华:0 注册:2011/12/21 11:25:00
  发帖心情 Post By:2012/12/30 17:24:00 [只看该作者]

Excel报表是不是应该先不用打开,静默报表就行了。当需要查看的时候,再打开就行

比如说

.Build() '后台产生报表

.Save() '保存

.Preview() '预览

.Print() '直接打印

甚至可以根据现有情况,在打开的情况下不能Build,可以有个

.Close()

 

这样能行吗?狐老大?

总之,每次打印都打开Excel,让人觉得不伦不类,主要是利用Excel似的

 


 回到顶部
总数 17 1 2 下一页