水晶报表一对多

天天天晴啊 2010-12-28 03:55:01
现在是这个关系 SRInfo表--->SR_Vendor表 一对多
SRInfo表--->SRInfoDetail表 一对一
SRInfo表--->SR_Location表 一对多
如图所示








如何让正确显示呢,我设置了LocationName和VendorName如果重复抑制显示,并且表之间关系我设置和不设置都会出现要么location重复,要么vendor重复
...全文
119 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
天天天晴啊 2011-01-07
  • 打赏
  • 举报
回复
我写不写关系都是一样的,我也尝试了关系的,结贴,这里不算是太大的问题,但是部署时候用clickonce,说很麻烦。
aishuju1 2010-12-29
  • 打赏
  • 举报
回复
你现在查出的数据是不是SRNo,DocNo列为重复出现数据,而想要的是唯一:
你可以在指定列中抑制显示:
if {datatable.SRNo}=Previous ({datatable.SRNo}) then
false
else
true
阿泰 2010-12-29
  • 打赏
  • 举报
回复
这个问题的根源不在你如何去抑制显示重复数据,而是你的设计出了问题。

如果你的四个表放到水晶报表里,在数据库专家中是你图里的样子,根本没有连接
那么他们之间就是彼此独立的。而不管你的实际数据库中是什么关系。

所以你的数据最终会以这样的方式取请求数据

如果你的报表上只拖了两个表的字段
Select a表的某些字段,b表的某些字段 from a,b

如果你拖了4个表中的某些字段,那么就是
Select a表的某些字段,b表的某些字段,c表的某些字段,d表的某些字段 from a,b,c,d

可以看出,这些表直接笛卡尔积了,也就是最终产生的数据条数为(以4表为例子)
4个表a表数据条数*b表数据条数*c表数据条数*c表数据条数*d表数据条数

所以数据肯定是重复的

所以必须在数据库专家中设置连接关系,才可以实现
Select a表的某些字段,b表的某些字段,c表的某些字段,d表的某些字段 from a,b,c,d where 关联条件 的方式取数。


天天天晴啊 2010-12-28
  • 打赏
  • 举报
回复
默认就是左联接
aishuju1 2010-12-28
  • 打赏
  • 举报
回复
你试试,链接关系好像有个,左链接.....

4,820

社区成员

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

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