表A中的字段日志编号由人员编号+日期组成,表B是人员表,我现在要查询表A中的数据并显示表B中的人员名,SQL语句已经写好了,我的报表是传个SQL语句放到DataSet里面显示
DataSet ds = daoAccess.getReportDataSet(reportSql);
CrystalReport1 oRpt = new CrystalReport1(); //已建立的报表rptClient
//使用“报表引擎”对象模型将填充的数据集,传递给报表
oRpt.SetDataSource(ds.Tables[0]);
//将带有数据的报表对象绑定到 Windows 窗体查看器,rptVew(CrystalReportViewer控件)
this.crystalReportViewer1.ReportSource = oRpt;
我在报表中加入了A和B表,但是怎么关联这两个表,现在只能显示人员名,表A中的数据都没显示,请高手指点!!
DataSet ds = daoAccess.getReportDataSet(reportSql);
CrystalReport1 oRpt = new CrystalReport1(); //已建立的报表rptClient
//使用“报表引擎”对象模型将填充的数据集,传递给报表
oRpt.SetDataSource(ds.Tables[0]);
//将带有数据的报表对象绑定到 Windows 窗体查看器,rptVew(CrystalReportViewer控件)
this.crystalReportViewer1.ReportSource = oRpt;
我在报表中加入了A和B表,但是怎么关联这两个表,现在只能显示人员名,表A中的数据都没显示,请高手指点!!
然后在你后台SQL直接就交叉表传为数据集。
代码部分:string sql = "select * from table1 pid=001";
string DBConfig_sql = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=zsdy.mdb;";
DataSet ds = new DataSet();
OleDbConnection sqlCon = new OleDbConnection(DBConfig_sql);
OleDbCommand sqlCmd = new OleDbCommand(sql, sqlCon);
OleDbDataAdapter sqlAd = new OleDbDataAdapter();
sqlAd.SelectCommand = sqlCmd;
sqlAd.Fill(ds, "sql");
ReportDocument ReportDoc;
ReportDoc = new ReportDocument();
ReportDoc.Load(Application.StartupPath+"\\fuben.rpt");//C/S程序将水晶报表放在bin文件夹Debug文件夹中
ReportDoc.SetDataSource(ds.Tables[0]);
crystalReportViewer1.ReportSource = ReportDoc;
上面的sql语句就是控制水晶报表中显示的关键,数据报表中的数据是更具sql生产的数据来改变的.