水晶报表9,10怎么这么慢呢,起码等上20秒,客户意见非常的大,快晕了.
有这方面经验的大侠看看我下面这段代码是否有问题?或者说能否优化一下的?
private void Cgxjd_rt_Load(object sender, System.EventArgs e)
{
GetDataSet(CrystalReportViewer1);
}
public void SetReportParamFieldValue(CrystalReportViewer crv,string strField,object objValue)
{
ParameterFields paramFields = new ParameterFields ();
ParameterField paramField = new ParameterField ();
ParameterDiscreteValue pdValue = new ParameterDiscreteValue ();
paramField.ParameterFieldName = strField;
pdValue.Value = objValue;
paramField.CurrentValues.Add (pdValue);
paramFields.Add (paramField);
crv.ParameterFieldInfo = paramFields;
}
private void GetDataSet(CrystalReportViewer crv)
{
SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"]);
//取回数据放入数据集
DataSet dtst=new DataSet();
SqlDataAdapter Cgdd = new SqlDataAdapter("SELECT * FROM Cgdd", conn);
Cgdd.Fill(dtst, "Cgdd");
SqlDataAdapter Cgddmx = new SqlDataAdapter("SELECT * FROM Cgddmx", conn);
Cgddmx.Fill(dtst, "Cgddmx");
SqlDataAdapter Gys = new SqlDataAdapter("SELECT * FROM Gys", conn);
Gys.Fill(dtst, "Gys");
//创建报表对象
ReportDocument doc=new ReportDocument();
//加载报表
doc.Load(HBS.Business.UsualMethod.cr_Path+"\\Cgbjd.rpt");
//为报表对象设置数据源
doc.SetDataSource(dtst);
//参数传入
SetReportParamFieldValue(CrystalReportViewer1,"ddId",f.ddId);
//以报表查看器显示报表
crv.ReportSource=doc;
}