c#实验解答(9)

来源:互联网 发布:淘宝买家怎么买运费险 编辑:程序博客网 时间:2024/04/24 10:48

1、简要说明如何使用CrystalReportViewerReportDocument对象模型。

【解答】

使用CrystalReportViewer对象模型,首先在VS2005中创建水晶报表文件.rpt,然后通过CrystalReportViewer控件将该报表封装到对象模型中,再利用该对象模型显示报表内容及与报表进行交互。但建议使用CrystalReportViewer控制报表的外观显示形式,不要使用CrystalReportViewer对象直接与报表交互,

ReportDocument对象模型比CrystalReportViewer功能多、范围广。该对象模型提供了在代码中处理报表的各种能力。在VS2008中创建水晶报表文件.rpt,完成报表设计后,选择主菜单中的【生成】à【生成解决方案】,则系统会自动创建一个ReportDocument对象模型,在工具箱中即可以看到自动生成的与报表同名的组件,将该组件拖放到设计窗体后,即得到实例,使用该实例的属性完成对报表结构及报表内部数据的各种控制。

2、嵌入式水晶报表和非嵌入式水晶报表有什么相同点和不同点?在Windows应用程序中,能否使用非嵌入式水晶报表?

【解答】

相同点:都需要创建水晶报表文件.rpt

不同点:

嵌入式报表具有与.rpt文件对应的同名包装类,直接通过代码与包装类进行交互,而不是与原始报表文件本身进行交互。非嵌入式报表则单独以.rpt文件形式存在报表,该报表不包含在项目内,也没有对应的报表包装类。

对于嵌入式报表,系统对项目进行编译时,与其他项目资源一样,报表和其包装类都会被自动嵌入到程序集中,用户看不到被包装后的.rpt文件。对于非嵌入式报表,如果是ASP.NET网站,要求该.rpt文件保存在网站根目录下,如果是Windows应用程序则要求分发后.rpt文件保存在和.exe文件相同的目录下。

对于嵌入式报表,如果修改了报表内容,必须重新编译整个项目。非嵌入式报表修改了报表内容,不须重新编译整个项目。

Windows应用程序中,可以使用非嵌入式水晶报表。但要求分发后.rpt文件保存在和.exe文件相同的目录下(通过Application.StartPath访问该目录),在解决方案资源管理器中,水晶报表.rpt文件的【生成操作】属性改为“无”,该报表即成为非嵌入式报表,再将【复制到输出目录】属性改为“始终复制”,这样就可以在程序中访问到该文件。