将数据从文本框传输到水晶报表上的unboundstring

时间:2013-07-06 09:59:26

标签: c# asp.net crystal-reports

我正在尝试向我的水晶报告显示一个文本框,作为我已经开始的修改。我的数据表已经工作了,我想将文本从文本框直接传输到crystal report unboundstring。我有问题。这是我的代码示例。你能帮我么。我对这一行有具体问题

((TextObject)objRpt.Section2.ReportObjects["@UnboundString1"]).Text = TextBox1.text;

感谢。

这是错误:  无法将“CrystalDecisions.CrystalReports.Engine.FieldObject”类型的对象强制转换为“CrystalDecisions.CrystalReports.Engine.TextObject”。

protected void Button1_Click(object sender, EventArgs e)
        {
            SqlConnection cnn;
            string connectionString = null;
            string sql = null;
            connectionString = "data source=SERVER; initial catalog= DBO ;user id=sa; password= password";
            cnn = new SqlConnection(connectionString);
            cnn.Open();
            sql = "select Leave_Type as DataColumn1,Reason as DataColumn2, Date_From as DataColumn4, Date_To as DataColumn5 from Leave_Application where Badge_Number = '" + TextBox1.Text + "'";
        SqlDataAdapter dscmd = new SqlDataAdapter(sql, cnn);
        cnn.Close();

        DataSet1 ds = new DataSet1();        

        dscmd.Fill(ds, "DataTable1");

        EmployeeLeave objRpt = new EmployeeLeave();
        ((TextObject)objRpt.Section2.ReportObjects["@UnboundString1"]).Text = TextBox1.text;

        objRpt.SetDataSource(ds.Tables[0]);
        CrystalReportViewer1.ReportSource = objRpt;
        CrystalReportViewer1.RefreshReport();




    }

2 个答案:

答案 0 :(得分:2)

错误说清楚,你试图将FieldObject转换为TextObject,这是不可能的。

  • 当您在报表上添加数据库字段,公式字段,参数字段等对象时,会创建 FieldObject
  • 如果您在区域内右键单击并选择插入 - >,则会创建 TextObject 。文本对象。

我的第一个观察是您正在使用公式字段,因为 @UnboundString1 以“@”符号开头。其次,您不能使用报表中显示的名称来引用字段,而是使用“属性”窗口中显示的对象的名称。

要创建未绑定字段,您可以创建TextObject并使用已使用的方法,也可以创建参数并使用SetParameterValue方法设置其值。

答案 1 :(得分:1)

用VB试试这个

'pass texbox2 to unbounddate1
CrystalReportSource1.ReportDocument.DataDefinition.FormulaFields.Item("unbounddate1").Text = "'" &
Me.TextBox2.Text & "'" 'pass texbox3 to unbounddate2
CrystalReportSource1.ReportDocument.DataDefinition.FormulaFields.Item("unbounddate2").Text = "'" &
Me.TextBox3.Text & "'"