本文的C#改进版本请参见:http://www.cnblogs.com/babyt/archive/2008/01/03/1024941.html
很多次被问到如下问题:
水晶报表能否做到由客户选择要显示的字段进行自定义显示?
我也迷惑了好久,后来还是仔细看了一海波的文章,终于有点眉目
如何在水晶报表中动态添加字段
http://blog.csdn.net/haibodotnet/archive/2003/11/09/21504.aspx
如何向 CrystalReportViewer 和 ReportDocument 传递参数
http://blog.csdn.net/haibodotnet/archive/2003/11/16/21516.aspx
实际操作了一下,没想象得那么困难.
开发环境: VS2003(VB.Net) + 水晶报表10高级专业开发版 + Win2003
要创建一个ADO.Net的水晶报表,具体过程我就不写了
看这里http://www.cnblogs.com/babyt/articles/118097.html
Step1: xsd文件结构
我们的表结构是这样子
有时候你并不是从数据库里取的一个完整表,那么你可以自己编辑这个xsd文件
有一点需要注意,这个文件里必须包含所有你将要显示的字段
Step2:下面我们开始创建模板
在这里,我加了6个字段,但是不要在报表上放置任何的数据字段。
新建立6个公式,名字取得别太好听,一定要按顺序来,如myField1,myField2..myField6
将公式依次放到详细资料节
删除自动产生的表头
新建立6个参数字段,同样,按顺序来,叫myParaField1,myParaField2..myParaField6
格式什么的这里就先不管了,咱们主要是先要实现功能。
Step3:程序设计
设计程序界面如下图所示,大家一下就看明白了,代码我写了详尽的注释,就不多说了。
运行结果
在这里下载完整代码
https://files.cnblogs.com/babyt/CR_DefineFields.rar
后记1:
你可以对该例增加字段显示的先后顺序排列功能
后记2:
2005年4月21日在wp的帮助下实现格线表现方式,见
http://www.cnblogs.com/babyt/articles/142908.html
后记3:
2008年1月3日
本文的C#改进版本请参见:http://www.cnblogs.com/babyt/archive/2008/01/03/1024941.html
-------Over------------------
希望这篇文章对你有所帮助。
阿泰 20050420