以编程方式读取CrystalReport's字段值
本文关键字:字段 编程 方式 读取 CrystalReport | 更新日期: 2023-09-27 18:09:25
我正在使用c#。. NET以编程方式加载Crystal Report文档(从数据库获取数据),然后将其导出为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对象预览报告,并在那里填充字段。
不幸的是,您将无法从后面的代码中提取计算过的字段值。在报表引擎接管并进行呈现之前,计算出的字段值不可用。您可以在呈现报表之前访问/修改公式定义,但无法访问从后面的代码计算出的实际值。即使您添加了一个空白子报表,并从主报表中为您试图访问的字段值添加了一个参数,在报表引擎呈现它之前,它也不会有值。您一定要寻找一种方法将它从绑定报表的数据中拉出来。