初次使用 Crystal Report, 在 ASPX 文件中,调用 Crystal Report 出错
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;
}
问题点数:50、回复次数:4Top
1 楼lubosun(大白菜)回复于 2006-03-04 17:37:55 得分 0
帮顶!
你用的是PUSH方法
做简单的水晶表建义用PULL方法Top
2 楼YAOHE(吆喝)回复于 2006-03-06 10:39:50 得分 0
一、不清楚你是否已打开了数据库连接。
二、oRpt.SetDataSource(DS1);中装载的数据源改成DS1.Table[0]试试看
三、没看见你加载过报表文档。
四、考虑你的ASP.net应用是否有操作报表文件所在目录的权限。
Top
3 楼cf_1981(不喜欢编程的程序员)回复于 2006-03-07 13:55:06 得分 0
一:Conn1.Open();
二:oRpt.SetDataSource(DS1);中装载的数据源不要改成DS1.Table[0],试试看原来这样写
三:加入oRpt.SetDatabaseLogon("服务器使用者名","服务器使用者密码");
四、考虑你的ASP.net应用是否有操作报表文件所在目录的权限。Top
4 楼Pek_zfs()回复于 2006-03-07 18:04:04 得分 0
给你个实例,可以参照下:
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
Top




