水晶报表发布和导出问题

lnok 2003-07-25 06:10:25
我的水晶报表发布到web服务器(win2000)水晶报表可以显示
但是导出时出错,本地可以导出,错误提示:

Error in File D:\wwwroot\bankjewelry\chinajewelry\Rjew.rpt: Access to report file denied. Another program may be using it.
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: CrystalDecisions.CrystalReports.Engine.LoadSaveReportException: Error in File D:\wwwroot\bankjewelry\chinajewelry\Rjew.rpt: Access to report file denied. Another program may be using it.

源错误:


行 100: opt.DiskFileName=@"e:\Output.Doc";
行 101: oCR.ExportOptions.DestinationOptions =opt;
行 102: oCR.Export();


...全文
44 5 打赏 收藏 举报
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
OutcastXP 2003-07-26
  • 打赏
  • 举报
回复
Imports DMIS.MMSoft
Public Class Test11
Inherits System.Web.UI.Page

#Region " Web 窗体设计器生成的代码 "

'该调用是 Web 窗体设计器所必需的。
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()

End Sub

'注意: 以下占位符声明是 Web 窗体设计器所必需的。
'不要删除或移动它。
Private designerPlaceholderDeclaration As System.Object

Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
'CODEGEN: 此方法调用是 Web 窗体设计器所必需的
'不要使用代码编辑器修改它。
InitializeComponent()
End Sub

#End Region

Dim oRpt As New rptTest001
Dim HRsoft As New MMSoft
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'在此处放置初始化页的用户代码
If Not IsPostBack Then
BindReport()
Dim strPDF As String = Server.MapPath("QQQ.pdf")
HRsoft.ExportToDisk(strPDF, oRpt)
Response.Write("<script language=javascript> window.open('QQQ.pdf',target='_self');</script>")
End If
End Sub

Sub BindReport()
Dim myCon As New SqlClient.SqlConnection
myCon.ConnectionString = "workstation id=BILLGATES;packet size=4096;user id=DMIS;data source='(local)';persist security info=True;initial catalog=DMIS;password=DMIS"
Dim myCom As New SqlClient.SqlCommand
MyCom.Connection = myCon
MyCom.CommandText = "Select * from Test"
MyCom.CommandType = CommandType.Text
Dim MyDA As New SqlClient.SqlDataAdapter
MyDA.SelectCommand = MyCom
'Dim myDS As New DSDisNoteFix
Dim myDS As New DataSet("DSDisNoteFix")
MyDA.Fill(myDS, "Test")
oRpt.SetDataSource(myDS)
End Sub

End Class

Public Sub ExportToDisk(ByVal fileName As String, ByVal Report As ReportDocument)
' 声明变量并获取导出选项。
Dim exportOpts As New ExportOptions()
Dim diskOpts As New DiskFileDestinationOptions()
exportOpts = Report.ExportOptions

' 设置导出格式。
exportOpts.ExportFormatType = ExportFormatType.PortableDocFormat
exportOpts.ExportDestinationType = ExportDestinationType.DiskFile

' 设置磁盘文件选项。
diskOpts.DiskFileName = fileName
exportOpts.DestinationOptions = diskOpts

If System.IO.File.Exists(fileName) Then
File.Delete(fileName)
Else
End If

' 导出报表。
Report.Export()
End Sub
编码人V1 2003-07-25
  • 打赏
  • 举报
回复
到处报表之后,加入下面这些语句发到客户端。前提是客户但装了Acrobat Reader,就可以直接在IE中查看了。如果把文件格式改一下,也可以在OFFICE中查看。 给分吧。
Response.ClearContent();
Response.ClearHeaders();
Response.ContentType="application/pdf";
Response.WriteFile(filename);//filename为导出文件名
Response.Flush();
Response.Close();
chenee543216 2003-07-25
  • 打赏
  • 举报
回复
不过我的是在server 端导出,谁可以告诉我如何在client端导出???
我开贴送分200
chenee543216 2003-07-25
  • 打赏
  • 举报
回复
我的是C#
private void EXP()
{
//水晶报表导出到服务器端.pdf ---- CrystalReport1 cRpt;

CrystalDecisions.Shared.DiskFileDestinationOptions DiskOpts=new CrystalDecisions.Shared.DiskFileDestinationOptions();
cRpt.ExportOptions.ExportDestinationType = CrystalDecisions.Shared.ExportDestinationType.DiskFile;
cRpt.ExportOptions.ExportFormatType = CrystalDecisions.Shared.ExportFormatType.PortableDocFormat;
DiskOpts.DiskFileName = "D:\\Output.pdf";
cRpt.ExportOptions.DestinationOptions = DiskOpts;
cRpt.Export();
}
OutcastXP 2003-07-25
  • 打赏
  • 举报
回复
我是用VB.net 不知对你有没有帮助
Public Sub ExportToDisk(ByVal fileName As String, ByVal Report As ReportDocument)
' 声明变量并获取导出选项。
Dim exportOpts As New ExportOptions
Dim diskOpts As New DiskFileDestinationOptions
exportOpts = Report.ExportOptions

' 设置导出格式。
exportOpts.ExportFormatType = ExportFormatType.WordForWindows
exportOpts.ExportDestinationType = ExportDestinationType.DiskFile

' 设置磁盘文件选项。
diskOpts.DiskFileName = fileName
exportOpts.DestinationOptions = diskOpts

If System.IO.File.Exists(fileName) Then
File.Delete(fileName)
Else
End If

' 导出报表。
Report.Export()
End Sub
相关推荐
发帖
.NET社区

6.1w+

社区成员

.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
帖子事件
创建了帖子
2003-07-25 06:10
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。