水晶报表表链接问题

windnews 2006-06-06 10:21:28
刚开始用vs.net(c#)和crystalreport for vs2005.net做报表。遇到一个很基础性的问题困扰住了,在csdn上找了两天。发现这么简单的问题居然没有。呵呵,见笑了。问题是这样的:我想在报表里面显示表a{aa,ab}和表b{ab,bb}的相关字段。两个表是通过字段ab关联的。步骤如下:
1。在报表设计器里面设计报表
2。设计窗体



1。在报表设计器里面设计报表。都是常规步骤:
a.用crystalreport 向导创建一个空白报表rpt
b.在数据源配置向导新建一数据源,使用默认数据集名称DataSet1,选择数据库对象里面选择表 a和表b,完成
c.在rpt报表设计器里面右键单击,选数据库-数据库专家-数据源-项目数据-ado.net数据集-DataSet1,把两个表都选入。点击链接选项卡,拖拉表a里面的“ab”字段到表b里面的“ab”字段上。链接出现。
d.选中该链接,点击链接选项按钮。设置联接类项为“左外部联接”,强制联接为“强制两者”,链接类型为“=”。完成。
e.报表设计器内,把字段资源管理器-数据库字段中拖拉所需要的字段到详细资料区。

2。在form_load事件里编写代码
a.初始化数据库连接。
b.生成数据集的sql语句为:select a.aa,b.bb from a inner join b on a.ab = b.ab //
c.指定报表的数据集 rpt.SetDateSource(Dataset);
d.指定crystalreportview的报表源。crystalreportview1.reportsource =rpt



结果是:报表里面aa字段有数据,但bb字段没有数据。 那句sql语句我在sql查询器里面实验了一下,出来两个字段都有数据。我怀疑是数据库专家里面两个表的链接有问题。可是我实在找不到错在哪里?这么简单的问题困扰我两天了。希望大家有空帮我看看。谢谢先。。。。
...全文
351 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
windnews 2006-06-13
  • 打赏
  • 举报
回复
算了结帖吧。。
windnews 2006-06-08
  • 打赏
  • 举报
回复
TO:Wind_Sword(风刀霜剑)


因为要在水晶报表里面设定好要显示的字段。。不然就要自定义子段。这个很麻烦的。也不需要。。。



另外。做成视图有一个缺陷,如果要更改某个子段。就必须要更改视图。报表中的子段也要重新更改。等于原来的推倒重来。。真是。。主要是客户没有具体指定报表的格式,子段什么的。。。。。
Wind_Sword 2006-06-07
  • 打赏
  • 举报
回复
先不管你的问题。我奇怪你为什么要让程序作重复的工作?既然是在From_Load中动态加载数据集到报表里,为什么还要在报表设计中搞什么数据源?
lbmshiwo 2006-06-07
  • 打赏
  • 举报
回复
关注
windnews 2006-06-06
  • 打赏
  • 举报
回复
我用内部联接 ,和未强制。也是一样的结果。。。。。刚开始 就是用的内部联接。。
xwdd129 2006-06-06
  • 打赏
  • 举报
回复
设置联接类项为“左外部联接”,强制联接为“强制两者”,链接类型为“=”
-------------------------

>>并不一定非要用左外部联接,你的表之间实际是怎么连接的,就选相应类型。
windnews 2006-06-06
  • 打赏
  • 举报
回复
还是谢谢你。我再自己试试
xwdd129 2006-06-06
  • 打赏
  • 举报
回复
因为无法看见你的开发过程,我无法再提出更多见解,不过如果实在不行,就做成一个视图吧

4,818

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 图表区
社区管理员
  • 图表区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧