在水晶报表中显示多个链接的数据表内容
2007-04-11 14:18
363 查看
在水晶报表中,如果显示多个数据表内容?起初我想到的是使用子报表,通过代码动态的绑定数据源给子报表,来显示所需数据。不过,最近发现,使用子报表显示的某些字段无法显示,就连前些日子写的那篇“动态显示图片”都无法显示了,不知道是不是水晶报表组件中哪里的设置问题。从此看来使用子报表并不是明智之举。
第二想到的,并是使用一个数据集,添加关系链接,加入相应的数据表,然后绑定给水晶报表。经过几番周折,终于拨云见彩虹了,呵呵。
一、添加一个XML架构,定义各表的字段名称及类型
private void Display()
2 {
3 //创建一个数据库连接
4 DataManager sql = Common.CreateDataManager();
5 //定义报表对象
6 rptXkbz rpt = new rptXkbz();
7
8 //提供给报表的数据集
9 DataSet dstRpt = new DataSet();
10 //个人信息表
11 DataTable dtblTmp = sql.ExecuteToDataTable("select * from zjy_ryxxbg where bh='" + Request.QueryString["bh"] + "'");
12 //添加照片显示字段
13 dtblTmp.Columns.Add("zpdata", typeof(byte[]));
14 if(dtblTmp.Rows[0]["zp"].ToString() != "")
15 {
16 dtblTmp.Rows[0]["zpdata"] = GetFileStream(dtblTmp.Rows[0]["zp"].ToString());
17 }
18 //添加性别
19 dtblTmp.Columns.Add("xb1", typeof(string));
20 dtblTmp.Rows[0]["xb1"] = dtblTmp.Rows[0]["xb"].ToString() == "True" ? "男" : "女";
21 //添加第一个表到数据集
22 dstRpt.Tables.Add(dtblTmp);
23 dtblTmp.TableName = "xxbg";
24 //添加第二个表到数据集
25 DataTable dtblTmp1 = sql.ExecuteToDataTable("select dlm,ksrq,jsrq,gzdw,xmmc from zjy_gzjl where dlm='" + dtblTmp.Rows[0]["dlm"] + "'").Copy();
26 dstRpt.Tables.Add(dtblTmp1);
27 dtblTmp1.TableName = "gzjl";
28
29 //建立两表的关系链接
30 dstRpt.Relations.Add(new DataRelation("link", dtblTmp.Columns["dlm"], dtblTmp1.Columns["dlm"]));
31 rpt.SetDataSource(dstRpt);
32 crv.ReportSource = rpt;
33 }
第二想到的,并是使用一个数据集,添加关系链接,加入相应的数据表,然后绑定给水晶报表。经过几番周折,终于拨云见彩虹了,呵呵。
一、添加一个XML架构,定义各表的字段名称及类型
private void Display()
2 {
3 //创建一个数据库连接
4 DataManager sql = Common.CreateDataManager();
5 //定义报表对象
6 rptXkbz rpt = new rptXkbz();
7
8 //提供给报表的数据集
9 DataSet dstRpt = new DataSet();
10 //个人信息表
11 DataTable dtblTmp = sql.ExecuteToDataTable("select * from zjy_ryxxbg where bh='" + Request.QueryString["bh"] + "'");
12 //添加照片显示字段
13 dtblTmp.Columns.Add("zpdata", typeof(byte[]));
14 if(dtblTmp.Rows[0]["zp"].ToString() != "")
15 {
16 dtblTmp.Rows[0]["zpdata"] = GetFileStream(dtblTmp.Rows[0]["zp"].ToString());
17 }
18 //添加性别
19 dtblTmp.Columns.Add("xb1", typeof(string));
20 dtblTmp.Rows[0]["xb1"] = dtblTmp.Rows[0]["xb"].ToString() == "True" ? "男" : "女";
21 //添加第一个表到数据集
22 dstRpt.Tables.Add(dtblTmp);
23 dtblTmp.TableName = "xxbg";
24 //添加第二个表到数据集
25 DataTable dtblTmp1 = sql.ExecuteToDataTable("select dlm,ksrq,jsrq,gzdw,xmmc from zjy_gzjl where dlm='" + dtblTmp.Rows[0]["dlm"] + "'").Copy();
26 dstRpt.Tables.Add(dtblTmp1);
27 dtblTmp1.TableName = "gzjl";
28
29 //建立两表的关系链接
30 dstRpt.Relations.Add(new DataRelation("link", dtblTmp.Columns["dlm"], dtblTmp1.Columns["dlm"]));
31 rpt.SetDataSource(dstRpt);
32 crv.ReportSource = rpt;
33 }
相关文章推荐
- 水晶报表显示数据和 导出Excel、Word、Pdf
- [VB.NET]高手帮忙,水晶报表显示在网页上的内容不更新,在线等,只有40分了
- 一起学习水晶报表之推模式【弱类型的DataSet实现显示报表数据】(课程5)
- 一起学习水晶报表之拉模式【如何通过代码实现水晶报表显示数据】(课程2)
- 使用eclipse在jsp上显示水晶报表(三)用sql语句过滤数据
- JfreeChart报表数据点显示、链接
- 怎么把js获得的list数据加上链接定向显示在HTML中,并且点击对应内容会访问链接内容
- vb.net使用水晶报表显示动态Dataset的数据
- 如何在JPG或BMP图片上显示输入的订单数据内容,并在报表打印时显示出来,后台数据库是SQL SERVER 2000 ,先谢了.高分!
- 水晶报表动态表数据显示的问题
- 一起学习水晶报表之拉模式【Winform中实现报表显示数据】(课程4)
- 一起学习水晶报表之推模式【强类型的DataSet实现显示报表数据】(课程6)
- 水晶报表PUSH模式多个表数据的显示
- 一起学习水晶报表之拉模式【如何实现水晶报表显示数据信息】(课程3)
- 关于水晶报表10 的字报表数据填充和显示
- 水晶报表分栏显示内容
- 利用数据集在水晶报表中显示图像的 .NET 程序教程
- 使用eclipse在jsp上显示水晶报表(三)用sql语句过滤数据
- 求助水晶报表动态饼图显示、求助进行数据查询和把查询结果用图表比较出来