我正在构建一个Flex应用程序,该应用程序在使用SQL Reporting Services构建PDF报告的同一Web服务器上调用.aspx页面。生成报告时,它会提示用户打开或保存PDF。
我们正在尝试找到一种方法来显示进度条,让用户知道他们正在构建他们请求的报告,然后在报告完成后销毁进度条。
我尝试使用JavaScript打开一个新窗口并尝试捕获窗口关闭时,以及尝试XMLHTTPRequest,但似乎没有任何工作。
有人有任何建议吗?
答案 0 :(得分:1)
有两个选项:
FileReference
类以编程方式调用您的aspx文件。您可以通过收听其活动来跟踪Flex内部呼叫的进度。但是用户只能保存PDF,而不能打开它。答案 1 :(得分:0)
如果您无法控制页面以便能够在其上放置JavaScript以访问URL(或回调父/开启者),那么您可能会考虑将自己的aspx页面添加到主机中一个ReportViewer控件,并在其中显示报表。这将要求您创建一个带有页面和web.config的.NET网站 - 您不需要做更多的事情,只需让它接收您的报告需要的任何参数,并且它可以通过inline-to-the来实现。 -aspx代码,而不是需要深入的.NET知识。
或者,您可以点击SS-RS API并直接呈现报告。在这里,您可以使用SS-RS API站点上的报告参数创建一个URL来接受。我想,虽然我不确定,SS-RS UI在幕后使用API本身。默认情况下,API托管在名为“reportserver”的站点中 - 您可能会在呈现报表时嗅探HTTP流量,以便开始使用您需要访问的URL。
答案 2 :(得分:0)
此处未提及的另一个选项是创建.Net webservice,将其添加到flex项目中,当它到达结果处理程序时,您知道该文件是在该点创建的。