关于水晶报表显示多张表的数据

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

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

请问各位2个问题:
1、以上2张表有产品编号关联,要怎么才能正确显示在同一张报表里?
2、能否在一张报表里显示两张完全不相关的表?
...全文
2330 64 打赏 收藏 转发到动态 举报
写回复
用AI写文章
64 条回复
切换为时间正序
请发表友善的回复…
发表回复
I520C 2010-08-25
  • 打赏
  • 举报
回复
您好,我把主表的记录放在 详细资料节点里 而后再插入一个子报表,我想是这样显示也就是一个主表记录对应一条或数条子表记录,我也是照着做的,感觉步骤没什么问题 可是 我每一条主表记录对应了所有的子表报表记录(是所有主表记录对应的子表记录一起显示),
yangfanai1010 2010-07-22
  • 打赏
  • 举报
回复
是不是阿泰的视频教程地址都修正了啊!我一个都找不到,也打不开!
知道者帮帮忙~!!!
悔说话的哑巴 2010-04-24
  • 打赏
  • 举报
回复
像这样的话一般用子报表,我一般用的是水晶报表
丈剑走天涯 2009-04-25
  • 打赏
  • 举报
回复
怎样才能的技术分请教各位高手!!!!!
ps1130826 2009-04-24
  • 打赏
  • 举报
回复
研究.....
代码狂人 2009-04-24
  • 打赏
  • 举报
回复
学习中,感谢大家贡献自己的智慧~~~`
tanyangyunkai 2009-04-24
  • 打赏
  • 举报
回复
不错,学习。。。。。。
bowlingljf 2009-04-23
  • 打赏
  • 举报
回复
我一直以为结贴后就不能回复了,原来可以呀

下午就结贴了,22:47:11还可以回复
qiweihero 2009-04-23
  • 打赏
  • 举报
回复
阔以在一张报表里显示两张完全不相关的表,搞个联接就可以了
allenzhang0209 2009-04-23
  • 打赏
  • 举报
回复
恩...希望指点
xiaoniaoge 2009-04-23
  • 打赏
  • 举报
回复
ding qi
阿泰 2009-04-23
  • 打赏
  • 举报
回复
我怀疑是你的两个表里的两个学号字段关联后不相等

会不会有一个是varchar型,一个是char型

你在sql查询分析器里执行一下
select a.* from 学生成绩表 as a,出勤表 as b where a.学号=b.学号
看一下能出来数据吗?
冰岛男孩 2009-04-23
  • 打赏
  • 举报
回复
同意,用子报表最好了……
阿泰 2009-04-23
  • 打赏
  • 举报
回复
呵呵,真正吃透了那个录像,会解决非常多的问题。
可惜很多人不是有耐心去看~~
bowlingljf 2009-04-23
  • 打赏
  • 举报
回复
感谢阿泰,感谢所有热心回复的网友。
问题最终是解决了,最后解决是因为参考了:

阿泰发表于:2008-11-18 10:29:59
主题:【原创+分享】VS2005水晶报表PUSH模式(DataSet)视频教程+源代码工程示例
地址:http://topic.csdn.net/u/20081118/10/49a1751d-1d86-44e4-969f-a847c2316dd3.html


看过一次阿泰的录像什么都明白了,马上从头做一次,子报表就显示了。

bowlingljf 2009-04-23
  • 打赏
  • 举报
回复
[Quote=引用 49 楼 babyt 的回复:]
我怀疑是你的两个表里的两个学号字段关联后不相等

会不会有一个是varchar型,一个是char型

你在sql查询分析器里执行一下
select a.* from 学生成绩表 as a,出勤表 as b where a.学号=b.学号
看一下能出来数据吗?
[/Quote]

问题解决了,是DataSet设计的问题
bowlingljf 2009-04-22
  • 打赏
  • 举报
回复
TO babyt

子报表不能显示会不会是因为是子报表的问题呢? 在主表和子报表之间是通过 学号 链接的,我在主报表中点击编辑子报表,进入子报表。然后把参数 Pm-学生成绩表.学号 放到页面上,重新预览报表,发现这个参数可以显示学号为001的数据,这就说明参数是已经传过去了。但为什么子报表没有根据这个001去查询相应的出勤数据就搞不明白了。
liusha5jia 2009-04-22
  • 打赏
  • 举报
回复
那分数来拉
yongyuanzhiyin 2009-04-22
  • 打赏
  • 举报
回复
路过,学习一下
xiazhengfei 2009-04-22
  • 打赏
  • 举报
回复
很好很强大!
加载更多回复(42)

4,816

社区成员

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

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