日期:2014-05-20  浏览次数:21253 次

关于水晶报表显示多张表的数据
以前也做过一张报表显示2个表的数据,主要是显示主从表,比如入库表的表头和入库表明细,两张表用入库单关联。
设计的时候先建一个两表关联的视图,在设计报表时把视图拖到水晶报表的数据集中。然后在程序中用where条件查询视图,最后把DS.Tables(0)传给水晶报表就可以了。
-----
现在需要显示入库明细表和产品配件表,两张表有相同的字段产品编号,但这不像主从表是一对多的关系,这是多对多的关系。
入库明细表
入库单号 产品编号 颜色 数量 
001 P001 红色 10
001 P001 蓝色 20

产品配件表
产品编号 配件名称 规格 数量
P001 外壳 0.1# 2
P001 胶片 0.5# 3
------------
在一张报表里需要显示以上两个表,开始我按上面的方法,先建视图关联两张表,但发现出来的效果是交叉的,因为是多对多的关系(两张表都有多行产品编号的数据),所以最终效果是"笛卡尔乘积"的效果,多出来很多数据。

请问各位2个问题:
1、以上2张表有产品编号关联,要怎么才能正确显示在同一张报表里?
2、能否在一张报表里显示两张完全不相关的表?


------解决方案--------------------
1,可以使用子报表或者http://topic.csdn.net/u/20090416/15/37566ec9-25cc-4872-ba29-f221f71f7b44.html 这个方法
2,好像不行

感觉在这个方面水晶报表不是很在行,我是放弃了,改用Active Report来做
------解决方案--------------------
1: 这是因为你没有设置两个表的关联关系。
在字段资源管理器上面,点右键,选数据库专家,如果你选的是多个表,里面会出现一个“链接”标签页。在里面设置表之间的关联关系就可以了。

2:用水晶报表可以,如果你不是很着急,可以等我周末再写一写这个专题。
其实原理就是这个
http://topic.csdn.net/u/20090408/02/06b09ed9-b0c9-4870-9085-f9b3dd5c2c8a.html
稍微延展一下而已
------解决方案--------------------
用子报表啊,你的数据结构很简单.
------解决方案--------------------
设计好子报表

在父报表-详细资料区-右键-插入子报表-设置关联字段
------解决方案--------------------
无法显示,是什么也不显示了的意思吗?

那就是因为两者关联后没数据,或者 两个表的字段都要在模板上出现。
------解决方案--------------------
如3楼和5楼所说,
这个情况用子报表方便点,就是如果数据多的时候,效率会比较低。

------解决方案--------------------

导入子报表后,右键子报表"更改子报表连接"
------解决方案--------------------
1.在设计XSD文件的时候可以做表间的关联,这样就不会出现笛卡尔积了
2.完全可以显示多个不同表的内容,可以用子报表。
www.ideaext.com
------解决方案--------------------
怎样,有没搞定?
------解决方案--------------------
你这样设置,当然不会显示啦,
还差个东东
------解决方案--------------------
在母报表的节上面 右键




------解决方案--------------------
对了,延续这个思路。

第2个问题,说到两张无关联的表,也直接用这个方案吧,呵呵。
就是用两个子报表,分别使用不同的数据表。
放到报表页眉上就行了。
或者,
主报表放一个表,在报表页脚上挂一个子报表,不用我前面想用的方法,那个太麻烦了些,因为要考虑到通用。

------解决方案--------------------
学习啦~~~~~~~~~~~~~
------解决方案--------------------
"组页眉"上面右键

不要新建,使用原来的那个就行了.直接点击"选项"按钮



传说被加精的帖子,可得88赏金,我一直为这个目标努力着....
------解决方案--------------------
回24楼

把交叉表和子报表,上下排列,放到组页眉上。
------解决方案--------------------
阿泰老大,怎么办?
我没辙了.
------解决方案--------------------
学习了,谢谢。
------解决方案--------------------
探讨
你的组页眉是怎么出来的?

------解决方案--------------------
可以好好研究
------解决方案--------------------
我现在没那么多空,过会搞搞。

bowlingljf 你把你的数据抓个图贴出来看看?