在Crystal Reports中使用无类型数据集

时间:2008-12-27 09:44:47

标签: asp.net crystal-reports

我正在页面加载中创建运行时数据集。在这个数据集中,我正在添加这样的列:

CrystalDecisions.CrystalReports.Engine.ReportDocument orpt = 
   new CrystalDecisions.CrystalReports.Engine.ReportDocument();

DataTable table = new DataTable("DataSet1");

table.Columns.Add("Fname", typeof(System.String));
table.Columns.Add("Lname", typeof(System.String));
table.Columns.Add("Salary", typeof(System.String));
DataRow row = table.NewRow();
row["Fname"] = "Mathew";
row["Lname"] = "Hayden";
row["Salary"] = "5000$";

table.Rows.Add(row);
ds.Tables.Add(table);

orpt.Load(MapPath("CrystalReport3.rpt"));
orpt.SetDataSource(ds.Tables[0]);
CrystalReportViewer1.ReportSource = orpt;

当我要运行程序时,CrystalReport3.rpt中不会显示记录。 请告诉我如何在Crystal Reports 3中设置这些coloums!

2 个答案:

答案 0 :(得分:1)

如果将代码从Page_Load移动到ASP.NET页面的 Page_Init事件处理程序,会发生什么?

尝试将AutoDataBind property设置为“true”:

  

获取或设置是否自动数据   使用绑定到报告源。如果   该值设置为True,即   之后调用DataBind()方法   OnInit()或Page_Init()事件。

另一个提示:您是否尝试调用CrystalReportViewer1对象的RefreshReport()(或旧版本的Refresh())方法?

答案 1 :(得分:1)

而不是

orpt.SetDataSource(ds.Tables[0]);

orpt.SetDataSource(ds.Tables["table_name"]);

table_name是您为表格提供的表名称