您的位置:首页 > 其它

水晶报表技术(11)——水晶报表使用小结

2009-09-19 23:17 363 查看
这几天帮老板做一个小软件,顺便学习了一下水晶报表的使用,感觉很不错。但是也遇到了一些问题,网络上朋友的经验加上自己的摸索,终于顺利解决。嗯,做个笔记,以泽被后来者。
用VS.NET 2005中集成环境就可以完成报表的设计和调用。但集成环境中的是测试版,如不注册只能使用30次。水晶报表注册号:6707437608,密码:AAP5GKS0000GDE100DS。界面设计就得靠自己了,呵呵。我用到了主报表和两个子报表,有些复杂。报表文件(.rpt)也有对应的代码文件,这样,在程序部署时便可以将报表文件打包在程序集中使用名称空间调用而不必复制到输出目录,我们的劳动成果得到了版权保护,哈哈。代码如下:
RptEvaluateResult rptr = new RptEvaluateResult();//RptEvaluateResult为对应的类
rptr.Load();
rptr.SetDataSource(ds);
crystalReportViewer1.ReportSource = rptr;
  
另外,我们还可以动态修改报表中显示的文本:
TextObject to = (TextObject)rptr.ReportDefinition.ReportObjects["txtTotal"];
to.Text = "综合评分:" + tempTotal.ToString();
  
   水晶报表的打包可是费了不少功夫。程序打包的时候,要把水晶报表的注册码也给打进去,还有一些必须的合并模块需要添加。
  具体操作步骤:
   (1)新建“安装和部署项目”-->“安装项目”
   (2)选择项目类型(这里选“创建用于windows应用程序的安装程序”)-->下一步
   (3)选择要包含的文件:一是要部署的应用程序(包括项目主输出阿,内容文件阿,内嵌文件阿等等),二是需要添加的合并模块(在该部署项目节点上点右键-->添加),主要是包括以下几个文件:
   Crystal_Database_Access2003.msm
   Crystal_Database_Access2003_enu.msm
   Crystal_Managed2003.msm
   Crystal_regwiz2003.msm
   VC_User_CRT71_RTL_X86_---.msm
   VC_User_STL71_RTL_X86_---.msm
你可以在'C:\Program Files\Common Files\Merge Modules'文件夹下找到替换的合并模块。
这些模块的具体功能如下:
managed.msm、managed_chs.msm、(托管组件 MSM 处理所有托管组件的分发,其中包括
  Windows 窗体查看器、Web 窗体查看器和所有 Crystal Decisions 命名空间)
database_access.msm、database_access_chs.msm、(对于使报表运行所需的所有其他文件,由数据库访问 MSM 处理其分发。其中包括数据库、导出和图表驱动程序。)
regwiz.msm、(KeyCode MSM 处理 Crystal Decisions 密钥号码的安装)
VC_CRT.msm、VC_STL.msm(这是vc的运行库,估计是Crystal Report或涉及到的某些程序是用vc写的,所以需要它--此处为某一网友观点)
  
   (4)打开解决方案-->右键点击Crystal_regwiz2003.msm 的属性,在“MergeMouduleProperties”里的“License Key”填入:AAP5GKS0000GDE100DS(这个是你生成Crystal Report是用到的注册号的密码,不填不能编译)
   (5)生成解决方案
   刚开始使用水晶报表的朋友们基本上都是按照这个步骤来操作的。但是,在程序执行的时候会出现一个异常:
************** 异常文本 **************
System.TypeInitializationException: “http://support.businessobjects.com/downloads/merge_modules.asp#07下载 Merge Modules for Crystal Reports for Visual Studio .NET 2005 ,然后把这个CrystalReportsRedist2005_x86.msm这个合并模块添加到部署项目中,编译,大功告成!
对于水晶报表,偶也是初来乍到,与朋友们共同进步!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: