以文本方式查看主题

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

--  作者:rjh4078
--  发布时间:2019/5/5 9:58:00
--  excel报表问题
如何将excel报表设计成所见及所得的预览方式 即 点击不同数据行 报表即刻预览?
--  作者:有点甜
--  发布时间:2019/5/5 10:11:00
--  

 

你可以自己生成和打开显示,也就是本来是按钮生成的,你把代码写到表格点击事件去而已。

 

 


--  作者:rjh4078
--  发布时间:2019/5/5 10:43:00
--  
是的 意思我理解 只是现在要实现在窗口中预览 非常麻烦 用web的话客户端会有各种错误 显示不了
--  作者:有点甜
--  发布时间:2019/5/5 10:45:00
--  

webbrowser显示即可。

 

在生成报表之前,先把webbrowser的address设置成nothing,同时把excel进程kill一下,再去生成新的报表。不然可能冲突。

 

又或者换一种思路:每次生成不同名称的excel文件,然后显示,即可。在关闭项目的时候,再删除那些excel文件。


--  作者:rjh4078
--  发布时间:2019/5/5 11:59:00
--  
kill进程这个不太好办  因为有可能打开了其他excel报表  我现在遇到的问题是开发端能正常显示,但是客户端web显示一个红叉 ,有的又正常
--  作者:有点甜
--  发布时间:2019/5/5 12:03:00
--  
以下是引用rjh4078在2019/5/5 11:59:00的发言:
kill进程这个不太好办  因为有可能打开了其他excel报表  我现在遇到的问题是开发端能正常显示,但是客户端web显示一个红叉 ,有的又正常

 

判断你进程的标题,为空的,可以kill

 

Dim ps As  System.Diagnostics.Process() = System.Diagnostics.Process.GetProcessesByName("excel")
For Each p As System.Diagnostics.Process In ps

    If p.MainWindowTitle = Nothing Then  p.kill
Next


--  作者:rjh4078
--  发布时间:2019/5/5 14:17:00
--  
有的电脑 浏览的时候显示要打开文件 添加注册表无解
--  作者:有点甜
--  发布时间:2019/5/5 14:29:00
--  
以下是引用rjh4078在2019/5/5 14:17:00的发言:
有的电脑 浏览的时候显示要打开文件 添加注册表无解

 

试试执行这个 http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=103646&skin=0

 

如果还是不行,建议嵌入excel程序,如

 

下载信息  [文件大小:876.3 KB  下载次数:48]
图片点击可在新窗口打开查看点击浏览该文件:嵌入exe最大化.zip

 

http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=73007&skin=0


--  作者:rjh4078
--  发布时间:2019/5/5 15:15:00
--  
发现一个问题 下面的代码 可以生成excel报表的父表数据  但是子表明细表数据没有
我的子表不是采用嵌套模式调用 采用的是类似与下面这个坐标调用
[@生产单.生产明细,材料规格,3] [@生产单.生产明细,交货日期,3]

Dim ps As  System.Diagnostics.Process() = System.Diagnostics.Process.GetProcessesByName("excel")
        For Each p As System.Diagnostics.Process In ps            
            If p.MainWindowTitle = Nothing Then  p.kill
        Next 
        DataTables("生产单").LoadFilter="计划日期=\'" & date.today & "\' and 单号=‘1001’"
        DataTables("生产单").Load
        e.form.Controls("Web").address=Nothing       
        e.form.Controls("Web").address= Functions.Execute("预览","生产单","生产单") ‘’这个函数是生成一个excel报表返回地址




--  作者:rjh4078
--  发布时间:2019/5/5 15:16:00
--  
单独用函数 Functions.Execute("预览","生产单","生产单") 在report文件夹下的文件是正常的