精品推荐
在web页面中打印功能的实现问题集锦
日期:2005年6月21日 作者:清风网络学院 查看:[大字体
中字体 小字体 ]
'automation server (craxdrt.dll)载入内存。 ' '我们建立session变量是为了再asp session过程中都使用它们.这样可以减少将craxdrt.dll '载入和卸载的系统开销。在一个session中一旦建立了一个application对象我们就可以不必 '重建对象运行更多的报表 。 ' 建立REPORT 对象 ' '这个REPORT 对象被Application的OpenReport方法建立 Path = Request.ServerVariables("PATH_TRANSLATED") While (Right(Path, 1) <> "\" And Len(Path) <> 0) iLen = Len(Path) - 1 Path = Left(Path, iLen) Wend response.Write path '这个"While/Wend" 循环被用来将当前文件从虚拟路径(eg: http://Domain/Dir )转换成Crystal ' Report file的物理路径(eg: C:\) '打开REPORT (先清除以前的任何对象) If IsObject(session("oRpt")) then Set session("oRpt") = nothing End if On error resume next Set session("oRpt") = session("oApp").OpenReport(path & reportname, 1) '这里用"PATH" 和 "reportname"变量计算出Crystal Report file的物理路径, 并打开它。 If Err.Number <> 0 Then Response.Write "Error Occurred creating Report Object: " & Err.Description Set Session("oRpt") = nothing Set Session("oApp") = nothing Session.Abandon Response.End End If '这个 On erro resume next 块检查在建立report对象时出现的任何错误,我们正明确的捕获任何 '错误如果视图超过许可协议规定的最大并发用户数。 '注意,我们并不只建立一次report对象。这是因为有了ASP session 你可以处理更多的超过一个报表 ' rptserver.asp将仅仅处理一个叫session("oRpt")的report对象。因此,你如果希望处理多个报表 '的话,就要建立一个新的session("oRpt")对象。 session("oRpt").MorePrintEngineErrorMessages = False session("oRpt").EnableParameterPrompting = False '这里不允许错误报告机制,包括Crystal Report Design Component automation server (craxdrt.dll) '内建的错误报告,这是因为两个原因: '1. 打印引擎是在Web Server上执行的, 所以任何错误信息都将被显示在服务端,如果在服务端报告出错了, ' 打印引擎将停止运作,你的应用将被“挂起” '2. rptserver.asp 已经有一些错误处理逻辑在里面了,可以捕获任何非致命错误,并显示在客户端。 ' '**重要** 即使我们禁止了服务端引擎的错误处理,但是致命错误还是会在Web Server服务端被捕获,并 '显示出错误提示对话框。所以我们建议,你在"World Wide Web Publishing" service (IIS service)设置 '"Allow Service to Interact with Desktop"选项。这样如果你的ASP应用死了,你将能看到错误提示。 '======================================================================================
复制本页网址和标题,发送给你QQ/Msn的好友一起分享
上一篇:代理服务器CCProxy的应用
下一篇:超级Mini QQ 只需要不到30个文件
在web页面中打印功能的实现问题集锦 相关文章:
在web页面中打印功能的实现问题集锦 相关软件: