多表填充水晶报表的问题,求能实际解决问题的方案!!知道者请进......
http://community.csdn.net/Expert/topic/5288/5288307.xml?temp=.9939081
因描述有问题,搞得大家都看不明白,现详细描述一下我的问题,请大家帮助解决,一定给分
我有表A含字段(工号,性别,籍贯...),表B含字段(工号, 证书名称...),表C含字段(工号,培训经历..)
表A
工号 性别 籍贯 ...
101 男 广东
表B
工号 证书名称 ...
101 CCNP
101 大学毕业证
表C
工号 培训经历....
101 CCNP培训
101 ORACEL培训
101 SQL培训
现在想把这3个表的数据绑定到水晶报表页面P(只有一页)上,
其中[证书资料][培训资料]为子报表,显示如下:
报表
基本资料
----------------------------------------
工号:101
性别:男
籍贯:广东
证书资料
-----------------------------------------
工号 证书名称 ...
101 CCNP
101 大学毕业证
培训资料
-----------------------------------------
工号 培训经历....
101 CCNP培训
101 ORACEL培训
101 SQL培训
------------------------------------------
我用如下语名填充水晶报表:
da = new SqlDataAdapter( "PS_A ", cn);
da.SelectCommand.CommandType = CommandType.StoredProcedure;
da.Fill(ds, "XXX ");
da = new SqlDataAdapter( "PS_B ", cn);
da.SelectCommand.CommandType = CommandType.StoredProcedure;
da.Fill(ds, "XXX ");
da = new SqlDataAdapter( "PS_C ", cn);
da.SelectCommand.CommandType = CommandType.StoredProcedure;
da.Fill(ds, "XXX ");
CrystalReport1 Cr1 = new CrystalReport1();
Cr1.SetDataSource(ds.Tables[ "XXX "]);
this.crystalReportViewer1.ReportSource = Cr1;
但出现问题:证书资料及培训资料显示时出现空格如下:
证书资料
-----------------------------------------
工号 证书名称 ...
<空格>
101 CCNP
101 大学毕业证
培训资料
-----------------------------------------
工号 培训经历....
<空格>
<空格>
<空格>
101 CCNP培训
101 ORACEL培训
101 SQL培训
求高手解决方案!!!
------解决方案--------------------呵呵
接分
------解决方案--------------------这样子的啊,写程序可能会比较麻烦
你直接在界面中建一个DataSet
然后把三个表加进ds中
在水晶报表中分成三组分别放三个表的字段
把Cr1.SetDataSource(ds.Tables[ "XXX "]);
改成Cr1.SetDataSource(ds);
------解决方案-------------------- 使用水晶报表push模式
首先可以利用同架构的数据集来设计水晶报表
然后再将生成的DS作为参数传进来 SetDataSource(DS)
------解决方案--------------------第一次查A表,FILL XXX,证书和培训都产生一个空值
第二次查B表,FILL XXX,培训产生两个空值