我在水晶报表中有很多相同的文本对象,我想用c#.net更改它们的文本这是我的代码:
TextObject textObj = (TextObject)MyReport.Sections[2].ReportObjects[3];
Run Code Online (Sandbox Code Playgroud)
但我不能改变文本 textObj
我不认为您引用文本对象的位置而不是它的名称.所以尝试类似的东西:
CrystalDecisions.CrystalReports.Engine.TextObject txtReportHeader;
txtReportHeader = MyReport.ReportDefinition.ReportObjects["txtHeader"] as TextObject;
txtReportHeader.Text = "My Text";
Run Code Online (Sandbox Code Playgroud)
"txtHeader"将是报表中文本对象的名称.
编辑:您可以在运行时更改文本的值.您无需删除并创建新标签.我调整了代码以适用于我的一个报告,并将标签"locid"更改为"My Text".见截图.这是代码:
using CrystalDecisions.ReportSource;
using CrystalDecisions.CrystalReports.Engine;
CrystalDecisions.CrystalReports.Engine.TextObject txtReportHeader;
txtReportHeader = CrystalReportSource1.ReportDocument.ReportDefinition.ReportObjects["text3"] as TextObject;
txtReportHeader.Text = "My Text";
Run Code Online (Sandbox Code Playgroud)

小智 5
在 C# 中运行时更改 Crystal Report textObject 值的最佳和最简单的方法
MyReport 是您的 crystalReport 对象
(MyReport.ReportDefinition.ReportObjects["YorTextObjectName"] as TextObject).Text = "YorStringValue";
Run Code Online (Sandbox Code Playgroud)