2

我正在尝试在我的水晶报告中显示一个文本框,作为对我已经开始的内容的修改。我的数据表已经在工作,我想将文本从文本框直接传输到水晶报表 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();




    }
4

2 回答 2

3

该错误清楚地表明,您正在尝试将 FieldObject 转换为 TextObject 这是不可能的。

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

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

要创建未绑定字段,您可以创建一个 TextObject 并使用您已经使用过的方法,也可以创建一个 Parameter 并使用 SetParameterValue 方法设置其值。

于 2013-07-06T23:37:35.900 回答
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 & "'"
于 2014-12-10T12:26:09.093 回答