1、自定义一个用户UI,包括一个CrystalReportViewer控件,代码:
public partial class RPTViewer : System.Web.UI.UserControl
{
private ReportClass rs;
protected void Page_Load(object sender, EventArgs e)
{
this.CRViewer.ReportSource = rs;
}
public void ConfigReport(DataSet ds, ReportClass rpt)
{
rpt.SetDataSource(ds);
this.rs = rpt;
}
public void ConfigReport(DSConfig dsConfig, ReportClass rpt)
{
rpt.SetDataSource(dsConfig.GetDataSet());
this.rs = rpt;
}
public void ConfigReport(ReportClass rpt)
{
this.rs = rpt;
}
}
2、构建包括数据源和报表格式的类库,主要包括DataSet,Report,获取数据的DSConfig抽象类及具体实现类
public abstract class DSConfig
{
protected string[] id;
protected string sqlconnstr;
IDbConnection sqlconn;
IDbCommand sqlco