初次使用 Crystal Report, 在 ASPX 文件中,调用 Crystal Report 出错

walter_lee68 2006-03-04 03:32:49
protected CrystalDecisions.Web.CrystalReportViewer CrystalReportViewer1;
protected System.Web.UI.WebControls.TextBox TextBox1;
public CrystalReport1 oRpt=null;

private void Page_Load(object sender, System.EventArgs e)

#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);

oRpt=new CrystalReport1();


SqlConnection Conn1=....;

string SQLSE1="SELECT ZW_F FROM rszd"; SqlDataAdapter Dapt1=new SqlDataAdapter(SQLSE1, Conn1);

Dataset1 DS1=new Dataset1();//Dataset1.xsd 文件已经生成,Dataset1 对象已经建立

Dapt1.Fill(DS1, "rszd");//出错语句:无法找到清单资源中的报告


oRpt.SetDataSource(DS1);

CrystalReportViewer1.ReportSource =oRpt;

}
...全文
116 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Pek_zfs 2006-03-07
  • 打赏
  • 举报
回复
给你个实例,可以参照下:
Imports CrystalDecisions.CrystalReports.Engine
Imports CrystalDecisions.Web

Public Class WFrmNotReigningInfo
Inherits System.Web.UI.Page
Dim oRptd As ReportDocument = New ReportDocument
Private Flag As String

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

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

End Sub
Protected WithEvents CrystalReportViewer1 As CrystalDecisions.Web.CrystalReportViewer

'注意: 以下占位符声明是 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

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'在此处放置初始化页的用户代码
'根据登陆信息取得当前操作类型
Flag = Session("ModuleType").ToString

Dim ds As New DsNotReigningInfo
Dim ds2 As New DsNotReigningInfo

Dim strCon As String

'自行填充数据集ds()
strCon = System.Configuration.ConfigurationSettings.AppSettings.Get("CMPSDBConnection")
Dim CN As New Data.OracleClient.OracleConnection(strCon)
'打开数据连接
CN.Open()

Dim da As New Data.OracleClient.OracleDataAdapter("SELECT a.LEAVE_ID,b.C_NAME as P_CODE,a.BEGIN_DATE,a.END_DATE,a.OP_DATE," & _
" c.C_NAME as OPERATOR,d.CLASS_NAME as CAUSATION,e.C_NAME as IMPOWER_P" & _
" FROM CM_T6016 a,(SELECT * FROM CM_T1002) b,(SELECT * FROM CM_T1002) c," & _
" (SELECT * FROM CM_T8001) d,(SELECT * FROM CM_T1002) e" & _
" WHERE (a.P_CODE=b.P_CODE) AND (a.OPERATOR=c.P_CODE) AND (a.CAUSATION=d.CLASS_CODE)" & _
" AND (a.IMPOWER_P=e.P_CODE) AND exists(SELECT * FROM CM_T1002 WHERE P_CODE=a.IMPOWER_P)" & _
" AND MODULE_FLAG='" & Flag & "'", CN)

da.Fill(ds, "CM_T6016")

Dim da2 As New Data.OracleClient.OracleDataAdapter("SELECT a.LEAVE_ID,b.C_NAME as P_CODE,a.BEGIN_DATE,a.END_DATE,a.OP_DATE," & _
" c.C_NAME as OPERATOR,d.CLASS_NAME as CAUSATION,a.IMPOWER_P" & _
" FROM CM_T6016 a,(SELECT * FROM CM_T1002) b,(SELECT * FROM CM_T1002) c,(SELECT * FROM CM_T8001) d" & _
" WHERE (a.P_CODE=b.P_CODE) AND (a.OPERATOR=c.P_CODE) AND (a.CAUSATION=d.CLASS_CODE)" & _
" AND not exists(SELECT * FROM CM_T1002 WHERE P_CODE=a.IMPOWER_P)" & _
" AND MODULE_FLAG='" & Flag & "'", CN)
da2.Fill(ds2, "CM_T6016")

ds.Merge(ds2)

oRptd.Load("D:\CMPSCrystalReport\Report\RptNotReigningInfo.rpt")
oRptd.Refresh()

'使用“报表引擎”对象模型将填充的数据集,传递给报表
oRptd.SetDataSource(ds)

CrystalReportViewer1.ReportSource = oRptd
End Sub

End Class
cf_1981 2006-03-07
  • 打赏
  • 举报
回复
一:Conn1.Open();
二:oRpt.SetDataSource(DS1);中装载的数据源不要改成DS1.Table[0],试试看原来这样写
三:加入oRpt.SetDatabaseLogon("服务器使用者名","服务器使用者密码");
四、考虑你的ASP.net应用是否有操作报表文件所在目录的权限。
YAOHE 2006-03-06
  • 打赏
  • 举报
回复
一、不清楚你是否已打开了数据库连接。
二、oRpt.SetDataSource(DS1);中装载的数据源改成DS1.Table[0]试试看
三、没看见你加载过报表文档。
四、考虑你的ASP.net应用是否有操作报表文件所在目录的权限。
lubosun 2006-03-04
  • 打赏
  • 举报
回复
帮顶!
你用的是PUSH方法
做简单的水晶表建义用PULL方法

4,820

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 图表区
社区管理员
  • 图表区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧