问题描述
现在碰到一个很刺手的问题:我想设计一个报表,然后我想在程序运行时动态绑定到数据库,但做的了很久都没有做成功,我先创建一个水晶报表,里面没有绑定到任何数据,只新建了一些我要显示的字段(未绑定字段),然后我想在程序运行时把sql语句查出来的的东西放在dataset中,然后把dataset中的某一个字段对应到我在报表中创建的未绑定的某一字段,但不知道这个怎么实现?????网上有说用:CrystalReportCustoms1.ReportDefinition.ReportObjects.Items("shipper_name_en");但我试了一下,ReportObjects没有Items这个属性,请问这是怎么回事?或者请问我需求的这种功能可以由别的方法实现的话,也请告知,谢谢
解决方案
解决方案二:
http://blog.csdn.net/pfworld/archive/2007/07/29/1715299.aspx这个应该可以解决你的问题!!
解决方案三:
没有,这个不可以啊,他会报“该报表不包含表”的错误,因为我设计报表的时候,只生成的一张空白表,然后添加了一些未绑定字段。请问这样做是否可行???
解决方案四:
另外,MySQLDriverCS可以当水晶报表的数据源吗?
解决方案五:
引用3楼gongluyang的回复:
另外,MySQLDriverCS可以当水晶报表的数据源吗?
可以!!使用CrystalReportCustoms1显示要装载一个默认报表。this.reportDocument1.Load(Application.StartupPath+"\RptPack\Rpt01.rpt");/*PUSH数据到Rpt01.rpt*/ReportDocumentreportDocument1=newReportDocument()reportDocument1.Load(Application.StartupPath+"\piaoju.rpt");//水晶报表绝对地址ds=selectPJ();reportDocument1.SetDataSource(ds);//填充数据到水晶报表this.crystalReportViewer1.ReportSource=this.reportDocument1;this.crystalReportViewer1.Zoom(90);
解决方案六:
我装载了的,我是手动装载的,不是在程序中装载的,但是setdatasource的时候,就会报“该报表不包含表”的错误strSQL="SELECTbsnIDfrombusinessWHEREbsnID='"+strBsnID+"'";MySQLDataAdapterdabsnDetail=newMySQLDataAdapter(strSQL,FormMain.gConn);DataSetdsbsnDetail=newDataSet();dabsnDetail.Fill(dsbsnDetail,"bsnDetail");//下面这一句,我用CrystalReportCustoms1.SetDataSource(dsbsnDetail.Tables["bsnDetail"]);也试过,但错误依旧CrystalReportCustoms1.SetDataSource(dsbsnDetail);crvCustoms.ReportSource=CrystalReportCustoms1;请问可以告知一下您的qq或msn吗?,我的:84142601,msn:gongluyang@hotmail.com
解决方案七:
你好像用错了!!this.crystalReportViewer1.ReportSource=this.reportDocument1;crystalReportViewer1是用来显示报表的控件,reportDocument1是用来装载报表的控件!!如果要显示报表首先把报表load到reportDocument1内,然后把reportDocument1装载到crystalReportViewer1内!
解决方案八:
而且我在BLOG里写了,如过要push模式一定要表名一样!!如果你要显示的表是business,那么dabsnDetail.Fill(dsbsnDetail,"business");也要是business,才可以PUSH成功!
解决方案九:
那如果我显示是多个表中的数据呢呢?,这个好像有点问题
解决方案十:
没有测试过!!你可以测试一下!!我是用多表一般是进行传参进行报表显示的!!因此没有遇到过多表PUSH!
解决方案十一:
唉,问题依旧,我现在代码改成这样的了,问题还是一样strSQL="SELECTbsnIDfrombusinessWHEREbsnID='"+strBsnID+"'";MySQLDataAdapterdabsnDetail=newMySQLDataAdapter(strSQL,FormMain.gConn);ReportDocumentreportDocument1=newReportDocument();stringstrPath=Application.StartupPath+"\..\..\CrystalReport1.rpt";reportDocument1.Load(strPath);DataSetdsbsnDetail=newDataSet();dabsnDetail.Fill(dsbsnDetail,"business");reportDocument1.SetDataSource(dsbsnDetail);crvCustoms.ReportSource=reportDocument1;
解决方案十二:
问题应该是在设计的报表中,我设计的报表,没有添加任何表信息,只加入的一些未绑定的Text字段?但我不知道这个怎么实现我想要的功能??
解决方案十三:
报表应该连接到business表!!
解决方案十四:
看看吧