CrystalReportViewer1.ReportSource = Server.MapPath("birthday_rpt.rpt")
        Dim conn As OleDbConnection
        conn = New OleDbConnection(session("constr"))
        Dim MyDA As OleDbDataAdapter        Dim str As String = "SELECT * from resident_basicinfo where 1=1 "
        If Request.QueryString("startdate") <> "" Then
            str = str & " and format(resi_dob,'mmdd') >= format(#" & Request.QueryString("startdate") & "#,'mmdd')"
        End If
        If Request.QueryString("enddate") <> "" Then
            str = str & " and format(resi_dob,'mmdd') <= format(#" & Request.QueryString("enddate") & "#,'mmdd')"
        End If
        MyDA = New OleDbDataAdapter(str, conn)
        Dim myDS As New birthday_xsd()
        MyDA.Fill(myDS, "resident_basicinfo")
        Dim oRpt As New birthday_rpt()
        oRpt.SetDataSource(myDS)
        CrystalReportViewer1.ReportSource = oRpt        Dim paramValues As New ParameterValues()
        Dim discreteVal As New ParameterDiscreteValue()
        discreteVal.Value = Request.QueryString("startdate")
        paramValues.Add(discreteVal)
        oRpt.DataDefinition.ParameterFields("startdate").ApplyCurrentValues(paramValues)        discreteVal.Value = Request.QueryString("enddate")
        paramValues.Add(discreteVal)
        oRpt.DataDefinition.ParameterFields("enddate").ApplyCurrentValues(paramValues)

解决方案 »

  1.   

    我是用C#写的,怎么指定*.rpt文件的路径是没有指定啊,能给我一个比较具体的操作步骤吗
      

  2.   

    我的页面源文件是这样的,请帮助诊断
    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Web;
    using System.Web.SessionState;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;
    using CrystalDecisions.CrystalReports.Engine;
    using System.Data.OracleClient;
    using CSXML;namespace CrystalReport
    {
    /// <summary>
    /// ado 的摘要说明。
    /// </summary>
    public class ado : System.Web.UI.Page
    {
    protected CrystalDecisions.Web.CrystalReportViewer CRViewer;
    protected System.Web.UI.WebControls.DataGrid DataGrid;
    protected System.Web.UI.WebControls.Label LabelLert;
    protected System.Web.UI.WebControls.Button Button1;

    private void Page_Load(object sender, System.EventArgs e)
    {
    // 在此处放置用户代码以初始化页面
    } #region Web Form Designer generated code
    override protected void OnInit(EventArgs e)
    {
    //
    // CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
    //
    InitializeComponent();
    base.OnInit(e);
    }

    /// <summary>
    /// 设计器支持所需的方法 - 不要使用代码编辑器修改
    /// 此方法的内容。
    /// </summary>
    private void InitializeComponent()
    {    
    this.Button1.Click += new System.EventHandler(this.Button1_Click);
    this.Load += new System.EventHandler(this.Page_Load); }
    #endregion private void Button1_Click(object sender, System.EventArgs e)
    {
    ConnOracle demo = new ConnOracle();
    DataTable DT = new DataTable();
    int ret = demo.QueryMenu ( "yaoxf" ,out DT ); DataGrid.DataSource =DT;
    DataGrid.DataBind(); try
    {
    ReportDocument Report = new ReportDocument();
    Report.SetDataSource ( DT );
    CRViewer.ReportSource = Report;
    CRViewer.DataBind ();
    }
    catch ( Exception exp )
    {
    LabelLert.Text = exp.Message;
    }
    } private void LoadReport(string reportName)
    {
    ReportDocument Report = new ReportDocument(); // 加载报表。
    Report.Load ( reportName , CrystalDecisions.Shared.OpenReportMethod.OpenReportByTempCopy );
    // 预览报表。
    CRViewer.ReportSource = Report;
    }
    } public class ConnOracle
    {
    private  CSSCXML    CReqXML;
    private  OracleConnection myConn;
    private string sErrorText;
    private string sException;
    private string sConnStr;
    private bool iInit;
    private  int iRet; public ConnOracle()
    {
    CReqXML = new CSSCXML();
    iInit = false;
    } private int Initial()
    {
    CReqXML.Path = @"c:\config.xml";
    if (CReqXML.ErrorText == "")
    {
    sConnStr = "Data Source=" + CReqXML["DataBase","DataSource"];
    sConnStr += ";User ID="+CReqXML["DataBase","UserID"];
    sConnStr += ";Password="+CReqXML["DataBase","Password"]+";";
    myConn = new OracleConnection ( sConnStr );
    if ( myConn.State != ConnectionState.Open )
    {
    myConn.Open ();
    }
    return 0;
    }
    else
    {
    sErrorText = CReqXML.ErrorText;
    return -1;
    }
    } private int Close()
    {
    try
    {
    if ( myConn.State != ConnectionState.Closed )
    {
    myConn.Close ();
    }
    return 0;
    }
    catch
    {
    sErrorText = CReqXML.ErrorText;
    return -1;
    }
    } public int QueryMenu ( string sLoginName,out DataTable dt )
    {
    try
    {
    if (!iInit)
    {
    iInit = true;
    iRet = Initial();
    if (iRet == -1)  
    {
    dt = null;
    return iRet;
    }
    } string select = "select A.vc_LoginName as 登陆名,E.vc_SysTypeName as 业务系统类型,B.vc_MenuID as 菜单编码,C.vc_MenuName as 菜单描述,C.vc_Re as 菜单类型,D.vc_PowerTypeName as 权限类型 ";
    select = select + "from RTQXGL_UserGroupMapUser A,RTQXGL_UserGroupMapMenu B,RTQXGL_Menu C,RTQXGL_PowerType D,RTQXGL_SysType E ";
    select = select + "where A.vc_UserGroupID=B.vc_UserGroupID AND B.vc_SysTypeID=C.vc_SysTypeID AND B.vc_MenuID=C.vc_MenuID AND B.vc_PowerTypeID=D.vc_PowerTypeID ";
    select = select + "AND E.vc_SysTypeID=B.vc_SysTypeID AND A.vc_LoginName = '" + sLoginName + "' order by B.VC_MENUID";

    OracleCommand myCommand = new OracleCommand ( select,myConn );
    OracleDataAdapter myDA  = new OracleDataAdapter();
    myDA.SelectCommand = myCommand;
    DataSet myDS = new DataSet();
    myDA.Fill(myDS, "UserMenu");
    dt = myDS.Tables["UserMenu"];
    // ds = myDS;
    iRet = 0;
    }
    catch 
    {
    // sErrorText = "登陆用户对应菜单查询异常";
    iRet = -1;
    dt = null;
    }
    finally
    {
    Close();
    }
    return iRet;
    }
    }
    }