我刚才找到一种办法 Dim oRpt As New CrystalReport3 Dim dsdataSet As New Dataset2 Dim cn As SqlConnection cn = Connection.OpenConnection() Dim daOrders As New Data.SqlClient.SqlDataAdapter("select * from hr_job_code ", cn) daOrders.Fill(dsdataSet, "hr_job_code") Dim daDetails As New Data.SqlClient.SqlDataAdapter("select * from hr_work_information ", cn) daDetails.Fill(dsdataSet, "hr_work_information") Dim daDetails2 As New Data.SqlClient.SqlDataAdapter("select * from hr_enterprise_code ", cn) daDetails2.Fill(dsdataSet, "hr_enterprise_code") '使用“报表引擎”对象模型将填充的数据集,传递给报表 oRpt.SetDataSource(dsdataSet) CrystalReportViewer1.ReportSource = oRpt Connection.CloseConnection(cn)你试一下 这三个表的关系 hr_work_information.job_id与hr_job_code.job_code相关,,hr_work_information.enterprise_id与hr_enterprise_code.enterprise_code相关
TO: wdaanng(嗨) 还是不行喔!我的代码和上面的差不多,上面是把每个表格的数据填入Dataset,我觉得麻烦的地方在这句daDetails2.Fill(dsdataSet, "hr_enterprise_code")后面这个表名不知用哪一个,因为有三个啊!我也想了一个办法,但不知怎样实现,就是把我的Sql语名中的数据(也就是三个表的相关字段)转到一个临时表中,再操作这个临时表,是否能实现.
Dim oRpt As New CrystalReport3 Dim dsdataSet As New Dataset2 Dim cn As SqlConnection
cn = Connection.OpenConnection() Dim daOrders As New Data.SqlClient.SqlDataAdapter("select * from hr_job_code ", cn)
daOrders.Fill(dsdataSet, "hr_job_code") Dim daDetails As New Data.SqlClient.SqlDataAdapter("select * from hr_work_information ", cn)
daDetails.Fill(dsdataSet, "hr_work_information") Dim daDetails2 As New Data.SqlClient.SqlDataAdapter("select * from hr_enterprise_code ", cn)
daDetails2.Fill(dsdataSet, "hr_enterprise_code") '使用“报表引擎”对象模型将填充的数据集,传递给报表 oRpt.SetDataSource(dsdataSet) CrystalReportViewer1.ReportSource = oRpt Connection.CloseConnection(cn)你试一下
这三个表的关系 hr_work_information.job_id与hr_job_code.job_code相关,,hr_work_information.enterprise_id与hr_enterprise_code.enterprise_code相关
然后用上面的方法设置数据源,dataSet中的表名与report中添加的表名一样就可以了