2016-02-02 4 views
1

У меня есть отчет о кристалле, в котором мне нужно получить значение текстового поля в отчете о кристалле. Если я помещаю textbox1 = 1, то в отчете о кристалле он отображается как 1. Как я могу это сделать? Это мой кристальный отчетный код на странице default.aspx.Получите значение текстового поля в отчете кристалла

protected void Page_Load(object sender, EventArgs e) 
{ 
    TextBox1.Text = "9"; 
    TextBox2.Text = "02/02/2015"; 
    TextBox3.Text = "02/03/2015"; 
    DataTable dt = new DataTable(); 
    String str = "select * from tbl1 where [email protected] and Date between @search1 and @search2 "; 
    SqlCommand xp = new SqlCommand(str, con); 
    xp.Parameters.Add("@search", SqlDbType.VarChar).Value = TextBox1.Text; 
    xp.Parameters.Add("@search1", SqlDbType.VarChar).Value = TextBox2.Text; 
    xp.Parameters.Add("@search2", SqlDbType.VarChar).Value = TextBox3.Text; 
    con.Open(); 
    SqlDataAdapter da = new SqlDataAdapter(); 
    da.SelectCommand = xp; 
    da.Fill(dt); 
    con.Close(); 
    if (dt.Rows.Count > 0) 
    { 
     ReportDocument crystalReport = new ReportDocument(); 
     crystalReport.Load(Server.MapPath("CrystalReport.rpt")); 
     crystalReport.SetDatabaseLogon("xx", "xxxx"); 
     crystalReport.SetDataSource(dt); 
     CrystalReportViewer1.ReportSource = crystalReport; 
     CrystalReportViewer1.DataBind(); 
    } 

Здесь мне нужно отобразить textbox1,2 и 3 значения в кристаллическом отчете

+0

Вы хотите сказать, что хотите отправить 3 параметра в свой отчет? –

+0

Да, сэр Мне нужно отправить эти три параметра в отчет о кристалле –

ответ

4

Сначала вы должны создать 3 параметра в CrystalReport панели инструментов под поля параметров, как показано на следующем рисунке.

enter image description here

Затем вам нужно передать значения из вашего кода за

var rpt=new ReportDocument(); 
rpt.SetParameterValue("Search1","I am search1"); 
rpt.SetParameterValue("Search2","I am search2"); 
rpt.SetParameterValue("Search3","I am search3"); 
CrystalReportViewer1.ReportSource = rpt; 
+0

Он показывает ошибку «Не вызывающий элемент» CrystalDecisions.CrystalReports.Engine.ReportDocument.ParameterFields 'не может использоваться как метод. « –

+0

var rpt = new ReportDocument() ; rpt.ParameterFields ("поиск"). Currentvalues.Addvalue ("branch"); rpt.ParameterFields ("search1"). CurrentValues.AddValue ("date1"); rpt.ParameterFields ("search1"). CurrentValues.AddValue ("date2"); –

+0

Здесь ветка, дата, дата1 являются параметрами, которые я добавил –

0
protected void Page_Load(object sender, EventArgs e) 
{ 
    TextBox1.Text = "9"; 
    DataTable dt = new DataTable(); 
    String str = "select * from tbl1 where [email protected] and Date between @search1 and @search2 "; 
    SqlCommand xp = new SqlCommand(str, con); 
    xp.Parameters.Add("@search", SqlDbType.VarChar).Value = TextBox1.Text; 
    xp.Parameters.Add("@search1", SqlDbType.VarChar).Value = TextBox2.Text; 
    xp.Parameters.Add("@search2", SqlDbType.VarChar).Value = TextBox3.Text; 
    con.Open(); 
    SqlDataAdapter da = new SqlDataAdapter(); 
    da.SelectCommand = xp; 
    da.Fill(dt); 
    con.Close(); 
    if (dt.Rows.Count > 0) 
    { 
     ReportDocument crystalReport = new ReportDocument(); 
     crystalReport.SetParameterValue("search", "I am search"); 
     crystalReport.Load(Server.MapPath("CrystalReport.rpt")); 
     crystalReport.SetDatabaseLogon("xx", "xxxx"); 
     crystalReport.SetDataSource(dt); 
     CrystalReportViewer1.ReportSource = crystalReport; 
     CrystalReportViewer1.DataBind(); 
    } 

}

Я добавил имя параметра в качестве поиска.

, но он показывает ошибку недействительный путь отчета. Если я удалю эту строку crystalReport.SetParameterValue («поиск», «Я ищу»); то его работа.

Смежные вопросы