编程更改文本对象示例代码(作者:海波.NET,更新:2003-10-21)using CrystalDecisions.CrystalReports.Engine;private const string REPORT_NAME = @"..\..\CrystalReportAnalysis.rpt";
private const string TEXT_OBJECT_NAME = @"Text1";private void Form1_Load(object sender, System.EventArgs e)
{
report = new ReportDocument();
report.Load(REPORT_NAME);
report.Refresh(); crvChart.ReportSource = report;
}private void btnChangeText_Click(object sender, System.EventArgs e)
{
TextObject text;

text = GetTextObject(TEXT_OBJECT_NAME); text.Text = "Hello, Haibo.NET!"; crvChart.RefreshReport();
}private TextObject GetTextObject(string reportObjectName) 
{
TextObject text; // 按名称获取 ReportObject,将其转换为 TextObject,
//并返回此对象。
text = report.ReportDefinition.ReportObjects[reportObjectName] as TextObject;
if (text != null) return text;
else return null;
}

解决方案 »

  1.   

    谢谢。这个,对一般的文本框,是可以的了。
    但是,要对图的标题,X,Y轴改名,就不行了。出错:Graph1.Title 找不到对象。这是图的标题。如何处理?谢谢。
    TextObject title,titlex,titley,item,itemsum;
    title = rpt1.ReportDefinition.ReportObjects["Graph1.Title"] as TextObject;
    title.Text = "航班-净利润排名";
    titlex = rpt1.ReportDefinition.ReportObjects["Graph1.XAxisTitle"] as TextObject;
    titlex.Text = "航班";
    titley = rpt1.ReportDefinition.ReportObjects["Graph1.YAxisTitle"] as TextObject;
    titley.Text = "净利润";
    item = rpt1.ReportDefinition.ReportObjects["Text2"] as TextObject;
    item.Text = "航班";
    itemsum = rpt1.ReportDefinition.ReportObjects["Text3"] as TextObject;
    itemsum.Text = "净利润";
    Crptv_pm.RefreshReport();
      

  2.   

    我改为如下代码,报错:ChartObject是不明确的引用。TextObject item,itemsum;
    ChartObject chart;
    chart = rpt1.ReportDefinition.ReportObjects["Graph1"] as ChartObject;
    chart.Title = "航班-净利润排名";
    chart.XAxisTitle = "航班-净利润排名";
    chart.YAxisTitle = "航班-净利润排名";item = rpt1.ReportDefinition.ReportObjects["Text2"] as TextObject;
    item.Text = "航班";
    itemsum = rpt1.ReportDefinition.ReportObjects["Text3"] as TextObject;
    itemsum.Text = "净利润";
    Crptv_pm.RefreshReport();
      

  3.   

    我再改:
    错误为:chart.Title/chart.XAxisTitle/chart.YAxisTitle 没有这个属性。
    CrystalDecisions.CrystalReports.Engine.ChartObject chart;
    chart = rpt1.ReportDefinition.ReportObjects["Graph1"] as CrystalDecisions.CrystalReports.Engine.ChartObject;
    chart.Title = "航班-净利润排名";
    chart.XAxisTitle = "航班";
    chart.YAxisTitle = "净利润";