由于在我实习的项目中可能用到水晶报表,而且如果时间允许我的毕业设计的计算书部分也想使用水晶报表,所以就上网找了篇关于水晶报表VC开发的文章看看。
原文网址:http://blog.sina.com.cn/s/blog_5413443d0100bu9k.html
VS2008自带了水晶报表10.5的开发版本,该版本的水晶报表声明中可以由开发者自由发布.
VC2008中使用该版本的水晶.按如下方式操作:
1.用VC6.0生成一个对话框工程.对话框上右键->插入ActiveX组件->选Crystal ActiveX Report View Control 10.5,Ctrl键双击这个插入的组件,会出来映射变量向导.输入变量名 m_View. 其他都默认,提示你插入两个类时,就确定.这个步骤在.net里会出异常,只能通过老VC来生成.比较恶心.
在stdafx.h里加入
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
老VC的工程就能运行了.OK,接下来把这些东东放到VC.net工程里.
2.创建.net VC/MFC工程. 把上一步自动加入的两个水晶类加到你工程里.在stdafx.h里加上:
#include " CrystalReportViewer10.h "
把上一步中映射变量的
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
考到你的相应类里.
在你使用该水晶控件的Dialog的 .h文件里定义:
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
在该对话框的 OnInitDialog里加入:
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
3.程序的打包与发布:
做安装包时,把水晶10.5的安装目录下所有文件(默认是C:"Program Files"Business Objects"Common"2.8"bin)都考到与你的可执行文件同一目录.然后把所有的dll都注册一下就OK了,也就是所有加进去的水晶的东东,只要是dll,就 regsvr32 他一下.现在的打包工具应该都支持安装时注册组件功能.这我就不细说了.还有就是水晶这个垃圾发布时需要 .net framework 2.0至少.唉,这个自己打包吧,唉,要多恶心有多恶心!!
以上是我在 VC.net2008中实际使用水晶的实践经验总结.按以上步骤打包后可以在无水晶的机器上顺利运行.有些步骤比较恶心.比如说第一步,老VC中完全支持插入水晶的ActiveX控件并顺利映射变量.但 VC.net2008里面确不行.只好借鸡生蛋.用老VC生好现成的代码后再加到VC.net2008工程中.
当然你要是用C#开发的水晶的话就简单多了,网上例子一堆堆的,但唯独就是没VC.net2008的.