将值从第一种形式传递到多种水晶报告

时间:2016-02-02 14:17:55

标签: c# crystal-reports

我有问题,每次重新加载其他水晶报告时,参数都在寻找值。我只使用一个crystalreportviewer。

    ReportDocument rd = new ReportDocument();

    public string user;
    string repCust = @"C:\Users\Jeff Enad\Desktop\TEST1\Cebu Hallmark Hotel Management System\Cebu Hallmark Hotel Management System\cryCustomer.rpt";
    string repRept = @"C:\Users\Jeff Enad\Desktop\TEST1\Cebu Hallmark Hotel Management System\Cebu Hallmark Hotel Management System\cryReport.rpt";
    string repRooms = @"C:\Users\Jeff Enad\Desktop\TEST1\Cebu Hallmark Hotel Management System\Cebu Hallmark Hotel Management System\cryRooms.rpt";
    public frmReport(string User)
    {
        InitializeComponent();
        loadReport();
        this.user = User;
    }
首先加载水晶报告:

        public void loadReport()
        {
            rd.Load(repRept);
            SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;Initial Catalog=dbCebuHallmark;Integrated Security=True");
            SqlDataAdapter da = new SqlDataAdapter("GetAllReport", con);
            da.SelectCommand.CommandType = CommandType.StoredProcedure;
            DataSet ds = new System.Data.DataSet();
            da.Fill(ds, "REPORT");
            rd.SetDataSource(ds);
            crystalReportViewer1.ReportSource = rd;
            crystalReportViewer1.Refresh();
        }

传递参数:

    private void frmReport_Load(object sender, EventArgs e)
    {
        cmbLoadReport.SelectedIndex = 0;
        rd.SetParameterValue("UserPrinted", this.user);
        rd.SetParameterValue("DatePrinted", DateTime.Today.ToString("MM-dd-yyyy hh:mm tt"));
    }

我用来重新加载多个水晶报告的代码:

    private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
    {
        string cryBy = "";
        string loadBy = "";
        string tableBy = "";
        string paraBy = "";
        if (cmbLoadReport.SelectedIndex == 0)
        {
            cryBy = repRept;
            loadBy = "GetAllReport";
            tableBy = "REPORT";
        }
        else if (cmbLoadReport.SelectedIndex == 1)
        {
            cryBy = repRooms;
            loadBy = "GetRoom";
            tableBy = "ROOM";
            paraBy = "Vacant";
        }
        else if (cmbLoadReport.SelectedIndex == 2)
        {
            cryBy = repRooms;
            loadBy = "GetRoom";
            tableBy = "ROOM";
            paraBy = "Occupied";
        }
        else if (cmbLoadReport.SelectedIndex == 3)
        {
            cryBy = repCust;
            loadBy = "GetCustomer";
            tableBy = "CUSTOMER";
        }
        rd.Load(cryBy);
        SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;Initial Catalog=dbCebuHallmark;Integrated Security=True");
        SqlDataAdapter da = new SqlDataAdapter(loadBy, con);
        da.SelectCommand.CommandType = CommandType.StoredProcedure;
        if (cmbLoadReport.SelectedIndex != 0 && cmbLoadReport.SelectedIndex != 3)
        {
            da.SelectCommand.Parameters.Add("@availability", System.Data.SqlDbType.VarChar, 50).Value = paraBy;
        }
        DataSet ds = new System.Data.DataSet();
        da.Fill(ds, tableBy);
        rd.SetDataSource(ds);
        crystalReportViewer1.ReportSource = rd;
        crystalReportViewer1.Refresh();
    }

0 个答案:

没有答案