C# 阅读CrystalReport';以编程方式创建字段值

C# 阅读CrystalReport';以编程方式创建字段值,c#,.net,crystal-reports,C#,.net,Crystal Reports,我使用C#.NET以编程方式加载Crystal报表文档(从数据库获取数据),然后将其导出为PDF 我一直在尝试从报告中读取字段(abc123)值(我想在文件名中使用它)。我不介意这个字段在水晶报告中的什么位置;它不会重复,但它需要成为报告中的一个字段 到目前为止,我的代码是: // Setup ReportDocument reportTemplate = new ReportDocument(); reportTemplate.Load(textBox1.Text); reportTempla

我使用C#.NET以编程方式加载Crystal报表文档(从数据库获取数据),然后将其导出为PDF

我一直在尝试从报告中读取字段(abc123)值(我想在文件名中使用它)。我不介意这个字段在水晶报告中的什么位置;它不会重复,但它需要成为报告中的一个字段

到目前为止,我的代码是:

// Setup
ReportDocument reportTemplate = new ReportDocument();
reportTemplate.Load(textBox1.Text);
reportTemplate.Refresh();
reportTemplate.ReadRecords();

// Load the current reports name from the report summary information
String ReportName = reportTemplate.SummaryInfo.ReportTitle.ToString();

// Load the current reports "abc123" field from the report
// ????

// Export the report as PDF
reportTemplate.Export();
我试过:

// Load the current reports "abc123" field from the report
String abcField = ((TextObject)rpt.Section2.ReportObjects["abc123"]).Text
String abcField = reportTemplate.ReportDefinition.ReportObjects["abc123"].ToString();
String abcField = reportTemplate.Rows.ReportDocument.ReportDefinition.ReportObjects["abc123"];

没有运气。有人能给点建议吗?我可以使用crystalReportView1对象预览报告,并在其中填充字段。

不幸的是,您将无法从代码隐藏中提取计算出的字段值。计算出的字段值在报表引擎接管并执行渲染后才可用。您可以在呈现报表之前访问/修改公式定义,但无权访问根据代码隐藏计算的实际值。即使添加空白子报表并从主报表中为试图访问的字段值添加参数,在报表引擎呈现它之前,它也不会有值。您一定要想办法从绑定报表的数据中提取它。

不幸的是,您将无法从代码隐藏中提取计算字段值。计算出的字段值在报表引擎接管并执行渲染后才可用。您可以在呈现报表之前访问/修改公式定义,但无权访问根据代码隐藏计算的实际值。即使添加空白子报表并从主报表中为试图访问的字段值添加参数,在报表引擎呈现它之前,它也不会有值。您一定要想办法从绑定报表的数据中提取它。

为什么要这样做?您已经在报表中显示了数据对象,为什么不从数据对象中获取此字段呢?它是报表中计算的字段,不同的报表有不同的计算……为什么需要这样做?您已经在报表中显示了数据对象,为什么不从数据对象中获取此字段呢?这是报表中计算的字段,不同的报表有不同的计算…谢谢-我自己得出了相同的结论。谢谢-我自己也得出了相同的结论。