我正在页面加载中创建运行时数据集。在这个数据集中,我正在添加这样的列:
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!
答案 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是您为表格提供的表名称