水晶报表邦定dataset问题
代码如下:
objRpt.Load(Server.MapPath(sRptName));
ReportDocument objRpt = new ReportDocument();
objDataSet = myObjDB.mReturnDataset(sSearchStr, "sTempTbl ");
objRpt.SetDataSource(objDataSet);
this.webRptView.ReportSource = objRpt;
webRptView.DataBind();
说明:
sRptName:纪录rpt文件路径的字符串变量
webRptView:CrystalReportViewer控件
myObjDB:自定义类(mReturnDataset是这个类中的方法)
sSearchStr:查询语句(select ... from ... where )变量
绑定后,虽然能看到数据,但是,显示的数据是rpt绑定表里面的所有数据,而不是dataset里面的内容,请教如何能让报表显示dataset里面的数据。谢谢指教
------解决方案--------------------不是很明白意思
如果需要让报表显示查询后的内容 则应该将查询出的dataset传入报表 并重新绑定
------解决方案--------------------如果使用的是带数据的rpt可能会出现楼主的情况,使用空白的rpt重新绑定DataSet
------解决方案--------------------加 刷新。
------解决方案--------------------objRpt.SetDataSource(objDataSet);
this.webRptView.ReportSource = objRpt;
==========================================
当前rpt的datasource就是objDataSet
你意思当前的rpt显示的数据和objDataSet不符?这个不可能吧??
lz的问题能否再描述清晰些?
------解决方案--------------------ok 明白了 dataset中设置了seclet语句 那么在数据显示时例如DataGridView会根据行状态过滤
掉不需要显示的数据 而rpt似乎不行
可以这样尝试 将datatable.select变通为数据库sql 然后通过sql重新生成dataset再传入rpt
在此也继续关注 看看是否有其他方法
------解决方案--------------------把筛选后的值放入DataSet,而不是在DataSet选取一些数据。
这样试试看。关注
------解决方案--------------------就是说 用当前的sql语句重新连接数据库填充DataSet
------解决方案--------------------sqlstrr = "select * from table1 where id > 5 and id <7 ";
SqlDataAdapter da = new SqlDataAdapter(sqlstrr,conn);
DataSet ds = new DataSet();
da.Fill(ds, "SeacherTable ");
………………
objRpt.SetDataSource(ds);
this.webRptView.ReportSource = objRpt;