以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 更新报表(生产另一报表),提示文档未保存 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=152972) |
-- 作者:lzgt -- 发布时间:2020/7/27 16:02:00 -- 更新报表(生产另一报表),提示文档未保存 引用模板生成了报表,并另存为dpf在WebBrowser窗体中显示,功能正常。我刷新了数据后,想在同一窗体中(不关闭),生成另一份新报表。提示文档未保存。请教是打开的模板文件还是新的pdf文件未保存?应该如何实现 这个功能? 先谢过了。 代码如下 Case "上条记录" ‘更新数据源 For Each c As WinForm.Control In Forms("frmxs01xsddedit").Controls If Typeof c Is WinForm.Button Then \'判断控件是否是按钮 Dim but As WinForm.button = c \'使用特定类型的变量引用控件 If but.TEXT = "上条记录" Then but.PerformClick Exit For End If End If Next Dim tmp As String = ProjectPath & "Attachments\\销售定单.xls" Dim mht As String = ProjectPath & "Reports\\销售定单.pdf" Dim rpt As New XLS.Book(tmp) rpt.Build() rpt.Sheets(0).Rows(0).Visible = False \'隐藏第一个空行 rpt.SaveToPDF (mht) e.Form.Controls("WebBrowser1").address = mht [此贴子已经被作者于2020/7/27 16:03:08编辑过]
|
-- 作者:lzgt -- 发布时间:2020/7/27 16:10:00 -- 查看帮助 加了红代码,还是报错,是excel 退出不保存 还有参数吗? Case "上条记录" For Each c As WinForm.Control In Forms("frmxs01xsddedit").Controls If Typeof c Is WinForm.Button Then \'判断控件是否是按钮 Dim but As WinForm.button = c \'使用特定类型的变量引用控件 If but.TEXT = "上条记录" Then but.PerformClick Exit For End If End If Next Dim tmp As String = ProjectPath & "Attachments\\销售定单.xls" Dim mht As String = ProjectPath & "Reports\\销售定单.pdf" Dim rpt As New XLS.Book(tmp) rpt.Build() rpt.Sheets(0).Rows(0).Visible = False \'隐藏第一个空行 rpt.SaveToPDF (mht) Dim App As New MSExcel.Application App.WorkBooks.Open(tmp).close app.quit e.Form.Controls("WebBrowser1").address = mht
|
-- 作者:有点蓝 -- 发布时间:2020/7/27 16:43:00 -- 每次都保存为不同的名称,否则WebBrowser在打开这个文件的时候,第二次是无法保存的 Dim mht As String = ProjectPath & "Reports\\销售定单.pdf"
|
-- 作者:lzgt -- 发布时间:2020/7/27 16:56:00 -- 报错好像是EXCEL 发出的? 那还是退出book吗? [此贴子已经被作者于2020/7/27 17:02:22编辑过]
|
-- 作者:lzgt -- 发布时间:2020/7/27 17:03:00 -- 此主题相关图片如下:报表报错.png |
-- 作者:有点蓝 -- 发布时间:2020/7/27 17:07:00 -- 看3楼。动作是execl组件发起的,当然提示execl了 |
-- 作者:lzgt -- 发布时间:2020/7/28 9:44:00 -- 按你教的方法保存为不同的文件名是可行的,但每次关闭窗体后又要删除这些文件(不然文件太多了)。还有其它的折中方法吗? |
-- 作者:有点蓝 -- 发布时间:2020/7/28 9:48:00 -- 没有折中方法。 可以在关闭窗口的时候写代码删除文件:http://www.foxtable.com/webhelp/topics/0331.htm
|
-- 作者:lzgt -- 发布时间:2020/7/28 12:18:00 -- 还是这个主题,根据查阅到的其它帮助方件 我将代码改写如下 测试可以运行(没有报错出现) 但我拿掉红色的测试代码 MessageBox.show(mht & "文件打开") 就会报错 “文档未保存”。 这是什么情况? 有办法解决吗?
Case "下条记录" Dim tmp As String = ProjectPath & "Attachments\\销售定单.xls" Dim mht As String = ProjectPath & "Reports\\销售定单.PDF" e.Form.Controls("WebBrowser1").address = "" If FileIsOpened(mht)= True Then MessageBox.show(mht & "文件打开") ShowAppWindow("销售定单.PDF",5) End If ‘刷新记录 For Each c As WinForm.Control In Forms("frmxs01xsddedit").Controls If Typeof c Is WinForm.Button Then \'判断控件是否是按钮 Dim but As WinForm.button = c \'使用特定类型的变量引用控件 If but.TEXT = "下条记录" Then but.PerformClick Exit For End If End If Next If Tables("tblxsxsdd").Current("shry") = "" Then MessageBox.show("此单据未经审核,暂不提供预览","提示") Return End If Dim rpt As New XLS.Book(tmp) rpt.Build() rpt.Sheets(0).Rows(0).Visible = False \'隐藏第一个空行 rpt.SaveToPDF (mht) e.Form.Controls("WebBrowser1").address = mht |
-- 作者:有点蓝 -- 发布时间:2020/7/28 13:36:00 -- 试试 Case "下条记录" Dim tmp As String = ProjectPath & "Attachments\\销售定单.xls" Dim mht As String = ProjectPath & "Reports\\销售定单.PDF" e.Form.Controls("WebBrowser1").address = "" Application.DoEvents() If FileIsOpened(mht)= True Then MessageBox.show(mht & "文件打开") ShowAppWindow("销售定单.PDF",5) End If Application.DoEvents() ……
|