首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

水晶报表动态表扩展 之 任意SQL及任意有关联表,任意列 及其他

2012-03-23 
【原创】水晶报表动态表扩展 之 任意SQL及任意有关联表,任意列 及其他本文是在 动态水晶报表:任意表,任意列

【原创】水晶报表动态表扩展 之 任意SQL及任意有关联表,任意列 及其他
本文是在 <动态水晶报表:任意表,任意列,以及动态格线> 
http://www.cnblogs.com/babyt/archive/2009/04/08/1431328.html 
原理基础上的一个扩展。 
如果你之前没有看过此文,请务必仔细研读。否则你将无法理解本文。 


在我写了第一篇《动态(万能)水晶报表:任意表,任意列,以及动态格线》,
回帖里有朋友问到:
你这个是单表的,那么有关联的多表和无关联的多表如何操作的呢?

我在《水晶报表动态表扩展 之 任意无关联表,任意列,任意数据源》  
http://topic.csdn.net/u/20090423/01/df01d702-5f29-437b-abb8-107dc3be9b2a.html解答了无关联的多表的操作方法。

本文中,我将说一下有关联多表的做法。

跟前面的两篇不同,这篇里,没有大段代码,也没有图。仍然是思路问题。

我们来比较一下下面两个SQL

SQL code
Select f1,f2,f3 from tableA


SQL code
Select a.f1,a.f2,a.f3,b.f1,b.f2 from tableA as a,tableB as b Where a.Id=b.Id


这两个有什么不同吗?是的。
第一个是1个表,第二是是有关联的2个表
语法上是有不同的,但是对于最终结果集来说,他们都是一个表。

既然都是一个表了,那么,对我们的报表来说,是一样的。

当然,可能有展现上的不同,这个就是报表端上的操作了。
比如说可以是一个横向的展示,也可以做成是分组的主从报表。

扩展开来,任意的一个单表或关联SQL,都可以纳入此方法
(当然,我们要保障SQL返回列的数目要小于等于我们的datatable的数目)

返回头来看
http://www.cnblogs.com/babyt/archive/2009/04/08/1431328.html 
对于单表和有关系的多表,所谓代码上的区别,就是这么一点点

C# code
da = new OleDbDataAdapter("SELECT * From " + tblName, cn);


=>

C# code
String SQL="Select a.f1,a.f2,a.f3,b.f1,b.f2 from tableA as a,tableB as b Where a.Id=b.Id";da = new OleDbDataAdapter(SQL, cn);


其余皆可不变。

好了,这个话题就说到这里了。

说点别的

如果你是水晶报表新手,或者遇到了一些数据传递上的问题,建议你看一下
【原创+分享】VS2005水晶报表PUSH模式(DataSet)视频教程+源代码工程示例
http://topic.csdn.net/u/20081118/10/49a1751d-1d86-44e4-969f-a847c2316dd3.html虽然很简单,但是我多年的实践所得。
初学者花点时间看一遍,跟着做一遍,花点时间去思考一下,领会了,基本上所有的数据传递方面的问题就能解决了。
可惜不是所有的人都有耐心。
当然水晶报表一般只是项目中的一小部分,可能很快会从你手边滑过。也无须花费太多的时间去深究。

如果你在做报表的时候遇到问题,欢迎到图表区(http://forum.csdn.net/SList/DotNETReport)来提问,
也欢迎到我的博客 http://babyt.cnblogs.com 去翻一翻找点灵感。

最后,祝各位使用水晶报表的朋友好运。



[解决办法]
无语...........用心良苦啊,阿泰老大
[解决办法]
認真學習!
[解决办法]
学习中
[解决办法]
認真學習!
[解决办法]
探讨
学习中

[解决办法]
不太懂 慢慢看
[解决办法]
xuexizhong
[解决办法]
pass the way
[解决办法]
强人
[解决办法]
很好很强大
[解决办法]
不錯,收藏。。
[解决办法]
study
[解决办法]
up
------解决方案--------------------


认真学习ing

[解决办法]
up
[解决办法]
en up
[解决办法]
好好
[解决办法]
好贴要顶
[解决办法]
关注阿泰
[解决办法]
我正好在做这块呢..
学习
[解决办法]
阿泰!
[解决办法]
报表专家阿泰 瞻仰一下
[解决办法]
好ㄚ!!!!
[解决办法]
erfew
[解决办法]
谢谢分享。学习了
[解决办法]
我上传了文件怎么没有反应呢
[解决办法]
支持阿泰,实用主义
[解决办法]
看都看不懂啊 老大
[解决办法]
我很伤心,必须努力啊
[解决办法]
好好学习下:)
[解决办法]
用心学习
[解决办法]
谢谢了 顶
[解决办法]
微软VS的水晶报表挺好用的噢
[解决办法]
呵呵,理解啊~~~~~~~~~~
[解决办法]
不太懂 慢慢看
[解决办法]

[解决办法]
收藏
[解决办法]
向老大学习啦`````
[解决办法]
学习ing,感谢lz
[解决办法]
谢谢了啊,我现在去看看啊
[解决办法]
老大,表格线如何实线在线定制?包括宽度,高度,字段的适用等.
[解决办法]
回帖是一种美德!
[解决办法]
大好人啊
[解决办法]
顶顶牛人 - -!

热点排行