不用一个个地导入rpt文件,再去写固定的代码,而是每次动态的根据指定的名称去加载报表和打印
if(Session["PrintXml"]!=null)
{
ReportDocument rd=new ReportDocument();
rd.Load (this.Server.MapPath("\\Flow\\FlowForm\\rpt")+"\\"+Session["PrintFormName"]+".rpt");
rd.SetDataSource(XmlPage.GetDataSet( Session["PrintXml"].ToString(),"FlowData"));
cr.ReportSource=rd;
}
当然,报表必须和下面要取得的dataset配套才行。我的做法是:如果dataset来自数据库的表自然最好,否则,用access建立一个临时的表,结构和dataset一样,建成的rpt和dataset同样可以匹配。