展开全部
第一步:添加一个dataset组件,然后拖放一个dataadpter,根据提示选择现有存储过程,保存
第二布:新建一个水晶报表文件,根据报表向导创建选择显示的字段和布局(注意:选择ado.net下的数据集)
第三布:将工程文件夹下有一个xxx.rpt的文件,复制其路径,
第四步:加载xxx.rpt文件,如下形式:
ReportDocument report = new ReportDocument();//创建文档对象
report.Load(path);//加载报表->path是rpt文件的路径
SqlConnection connection = new SqlConnection(ApplicationAssist.ConnectionString)
connection.Open();
DataSet ds= new DataSet();
SqlDataAdapter sqlDA = new SqlDataAdapter();
//调用存储过程获得数据集
SqlCommand command = new SqlCommand(storedProcName, connection);
command.CommandType = CommandType.StoredProcedure;
command.Parameters.AddRange(parameters);--这个是存储过程的参数赋值,网上有
sqlDA.Fill(ds, "tableName");
connection.Close();
report.SetDataSource(ds.Tables[0]);//设置报表的数据源->ds是你在程序中查询出来的dataset集合,注意这里的存储过程要与你的报表所指定的过程对应哦!
if (ht != null)--这里是外部参数赋值,按需要而定,跟数据库字段无关
{
foreach (DictionaryEntry de in ht)
{
report.SetParameterValue(de.Key.ToString(), de.Value);
}
}
CRV.ReportSource = report;//显示报表
第二布:新建一个水晶报表文件,根据报表向导创建选择显示的字段和布局(注意:选择ado.net下的数据集)
第三布:将工程文件夹下有一个xxx.rpt的文件,复制其路径,
第四步:加载xxx.rpt文件,如下形式:
ReportDocument report = new ReportDocument();//创建文档对象
report.Load(path);//加载报表->path是rpt文件的路径
SqlConnection connection = new SqlConnection(ApplicationAssist.ConnectionString)
connection.Open();
DataSet ds= new DataSet();
SqlDataAdapter sqlDA = new SqlDataAdapter();
//调用存储过程获得数据集
SqlCommand command = new SqlCommand(storedProcName, connection);
command.CommandType = CommandType.StoredProcedure;
command.Parameters.AddRange(parameters);--这个是存储过程的参数赋值,网上有
sqlDA.Fill(ds, "tableName");
connection.Close();
report.SetDataSource(ds.Tables[0]);//设置报表的数据源->ds是你在程序中查询出来的dataset集合,注意这里的存储过程要与你的报表所指定的过程对应哦!
if (ht != null)--这里是外部参数赋值,按需要而定,跟数据库字段无关
{
foreach (DictionaryEntry de in ht)
{
report.SetParameterValue(de.Key.ToString(), de.Value);
}
}
CRV.ReportSource = report;//显示报表
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询