一经典水晶报表设计三则之分栏.docVIP

  • 2
  • 0
  • 约1.82万字
  • 约 21页
  • 2016-11-28 发布于北京
  • 举报
一经典水晶报表设计三则之分栏

一、经典水晶报表设计三则之“分栏”      借助多列格式化功能实现。      1. 启用多列格式化功能。      (1) 进入“节专家”对话框,并在“节”中选择“详细资料”。      (2) 在公用选项卡选中“多列格式化”,此时会出现“布局”选项卡。      2. 调整布局,实现分栏效果。      要想分两栏,调整“详细资料大小”的宽度,确保宽度的两倍小于去除页边距后的页面宽度,才能一行显示两行记录。      要想分三栏,调整“详细资料大小”的宽度,确保宽度的三倍小于去除页边距后的页面宽度,才能一行显示三行记录。      依次类推,实现其它栏数的分栏。        参考:“布局”选项卡(节专家)介绍   当选定详细信息部分且选中“公用”选项卡上的“多列格式化”框后,出现“布局”选项卡。      使用“布局”选项卡以多列格式设置报表。即,不是一直沿着页面向下打印数据,而是可以设置多列以使数据在列之间流动。还可以在页面上按先行后列的方式打印数据,即先打印每列中的第一个记录,然后打印每列中的第二个记录,然后打印第三个记录,依此类推。该对话框分为四个更小的框。      详细资料大小   该框使您能够指定一个详细资料的尺寸(高度和宽度)。确定所希望的每个详细资料的宽度(基于字符数、字体大小,等等)并在“宽度”编辑框中输入该值。      确定所希望的每个详细资料的高度(基于详细资料内的行数、字体大小等)并在“高度”编辑框中输入该值。   一、载入报表时报错   千辛万苦,总算作完了程序,报表在开发机器上测试一切正常,做安装项目,生成后兴冲冲的拿到客户机上去试验,晕,载入报表时却报错(如图1),怎么会???仔细检查了程序代码,实在没有任何错误,看来问题出在报表发布上了。 ? 图 1   经过一番苦苦寻觅,总算找到了问题所在。原来VS.NET环境下发布项目时水晶报表需要包含以下三种组件:   报表(*.rpt)   模块(*.msm)   运行库(*.msm)   这些模块文件是在C:\Program Files\Common Files\Merge Modules\ 目录里面,别急,让我慢慢跟您说。   1、报表(*.rpt)   用户编程时创建的水晶报表文件,这个很简单,你不会找不到它吧,哈哈。   2、模块(*.msm)   Managed.msm   该模块包含了CR for VS .NET的管理模块,如   CrystalDecisions、CrystalReports.Engine.DLL、CrystalDecisions.Web.DLL, 和CrystalDecisions.Windows.Forms.DLL.……   Managed_chs.msm是该模块的中文版语言支持。   Database_Access.msm   该模块包含了数据库的驱动、与不同数据库的联结、报表导出为RTF 和 HTML格式的文档和图表组件。 Database_Access_chs.msm 是此模块的中文版语言支持。   Regwiz.msm   注册信息模块,非常重要,必需在这个模块输入水晶报表的注册序列号(应该是密钥,不是注册号-----本人注),如果不填,编译的时候就无法通过,如图2所示。 图 2  3、 ..运行库(*.msm)   如果报表文件使用了ADO.NET的dataset数据集对象,那么VC_CRT.msm 和 VC_STL.msm 模块也必须包含在安装工程中。而且这两个模块的文件安装属性的Module Retargetable Folder项必须修改成为系统目录,如图3所示。 图 3   现在,我们知道答案了,在VS.NET安装工程中,系统检测出来的依赖项只有dotNETFXRedist_x86_chs.msm 和 Managed.msm这两个模块,其他的模块我们需要手动加入。   1、在解决方案资源管理器里,右键单击安装项目选择添加-〉合并模块(M),如图4所示。 图 4   2、在添加模块对话窗体,选择 Managed_chs.msm 、Database_Access, Database_Access_chs, regwiz、VC_CRT.msm 和 VC_STL.msm 模块,如图5所示。 图 5   3、重新生成安装项目,没问题,只是生成的安装程序一下子大了七、八兆。 二、系统注册   报表在部分Win98的客户端可以载入,在部分Win98的客户端载入报表时却提示Load Report Failed(如图6),可恶,居然还出错,怎么回事? 图 6   原来,这是因为水晶报表运行时所需的CRQE.dll在客户端的系统注册不正确,而原因

文档评论(0)

1亿VIP精品文档

相关文档