故事库-中国往事  > 所属分类  > 
[0] 评论[0] 编辑

CrystalReportsViewer

CrystalReportViewer是一个功能强大的、动态的和可操作的报表解决方案控件。
软件名称
CrystalReportsViewer
软件授权
共享版
软件语言
英文
运行环境
Winxp/vista/win7/2000/2003

目录

CrytalreportsviewerCrytalreportsviewer

从CrystalReportViewer控件的LogOnInfo属性获取TableLogOnInfos实例。然后,将ConnectionInfo实例赋给TableLogOnInfos实例的每个TableLogOnInfo对象。

创建报表

1.创建连接到安全的SQL Server数据库的报表。

CrystalReportsviewerCrystalReportsviewer

在“解决方案资源管理器”中,右击粗体显示的项目名,指向“添加”,然后单击“添加新项”。在“添加新项”对话框的“模板”视图中,选择“Crystal Report”模板。在“名称”字段中,输入名称“NorthwindCustomers.rpt”,然后单击“打开”。在“Crystal Reports 库”对话框的“创建新 Crystal Report 文档”面板中,选择“使用报表向导”。在“选择专家”面板中,选择“标准”后,单击“确定”。出现“标准报表创建向导”窗口。在“可用数据源”面板中,展开“创建新连接”文件夹。从打开的子文件夹中,展开“OLE DB (ADO)”文件夹。出现“OLE DB (ADO)”窗口。选择“Microsoft OLE DB Provider for SQL Server”并单击“下一步”。分别将数据库服务器、用户 ID 和密码的值输入到“服务器”、“用户 ID”和“密码”字段中。从“数据库”下拉列表中,选择“Northwind”。取消选中“集成安全性”复选框,因为您使用的是 SQL Server 身份验证而不是 NT 身份验证。单击“完成”。OLE DB 文件夹将展开,显示数据库服务器及其中的 Northwind 数据库。展开“Northwind”、“dbo”和“表”节点,然后选择“Customers”表。单击“>”符号,将该表移入“选定的表”面板,然后单击“下一步”。展开“Customers”表,按住 Ctrl 键的同时单击“公司名称”、“联系人姓名”和“城市”。单击“>”符号,将这些字段移至“要显示的字段”面板,然后单击“下一步”。在“可用字段”面板的“报表字段”下,选择“客户.城市”,然后单击“>”符号将该字段移入“分组依据”面板,再单击“完成”。NorthwindCustomers 报表创建完毕,并加载到 Visual Studio 的主窗口中。

2.绑定不带登录代码的报表。

打开Web或Windows窗体。从“视图”菜单中,单击“代码”。找到在 “项目设置”中创建的 ConfigureCrystalReports() 方法。声明一个字符串变量,将其命名为“reportPath”,然后将一个本地报表的运行时路径赋值给它.对于网站项目和 Windows 项目,确定此路径时会有所不同:对于网站,要将本地报表文件的名称作为字符串参数传递到 Server.MapPath() 方法中。这样,在运行时本地报表就会映射到硬盘文件目录路径。C# Copy Code string reportPath = Server.MapPath("NorthwindCustomers.rpt");对于 Windows 项目,要将 Application.StartupPath 属性与一个反斜杠和本地报表文件名称连接起来。这样,报表将映射到与 Windows 可执行文件相同的目录。

注意编译时,需要将报表复制到可执行文件所在的目录。 C# Copy Code string reportPath = Application.StartupPath + "" + "NorthwindCustomers.rpt";将 NorthwindCustomers 报表的文件目录路径赋给 CrystalReportViewer 控件的 ReportSource 属性。C# Copy Code crystalReportViewer.ReportSource = reportPath;测试 NorthwindCustomers 报表的加载过程。现在即可生成并运行项目。预计报表加载将失败,因为此时尚未编写数据库登录代码。从“生成”菜单中选择“生成解决方案”。如果生成过程中出错,请立即纠正。如果在 Windows 项目中使用非嵌入式报表,请在 indebug 子目录中找到编译后的 Windows 可执行文件,然后将报表复制到该子目录中。注意要让 Windows 可执行文件在运行时加载非嵌入式报表,该报表必须与 Windows 可执行文件存储在同一个目录中。从“调试”菜单中,单击“开始”。NorthwindCustomers 报表并不显示。它会在添加数据库登录代码后显示。注意 结果可能会因为所使用的 Crystal Reports 版本不同而不同。例如,如果安装了 Crystal Reports 10 和更高版本,则会提示您输入该报表的数据库登录信息。如果运行的是较早版本的 Crystal Reports,则会引发异常。不论是哪种情况,都需要依照以下过程来创建功能完整的应用程序。返回到 Visual Studio,然后单击“停止”从调试模式中退出。

3.添加报表登录代码。

返回到此Web或Windows窗体的代码隐藏类。在类的底部,创建名为 SetDBLogonForReport() 的新私有帮助器方法,并将 ConnectionInfo 传递给方法签名。C# Copy Code private void SetDBLogonForReport(ConnectionInfo connectionInfo){}在此方法内,从CrystalReportViewer类的 LogOnInfo 属性获取 TableLogOnInfos 实例。注意 TableLogOnInfos 是包含 TableLogOnInfo 类实例的索引类。C# Copy Code TableLogOnInfos tableLogOnInfos = crystalReportViewer.LogOnInfo;创建一个 foreach 循环,它在 TableLogOnInfos 索引类实例的各个 TableLogOnInfo 实例间循环。C# Copy Code foreach(TableLogOnInfo tableLogOnInfo in tableLogOnInfos){}在 foreach 循环中,将 TableLogOnInfo 的 ConnectionInfo 属性设置为 ConnectionInfo 参数。C# Copy Code tableLogOnInfo.ConnectionInfo = connectionInfo;修改 ConfigureCrystalReports() 方法以处理数据库登录代码。此过程创建了用于设置数据库登录的方法。但是,必须修改 ConfigureCrystalReports() 方法以处理此方法,这样报表才能识别出其中含有数据库登录信息。修改 ConfigureCrystalReports() 方法需要两个步骤: 配置 ConnectionInfo 实例。调用 SetDBLogonForReport() 方法。在 ConfigureCrystalReports() 方法中,在将报表绑定到 CrystalReportViewer 控件的代码之下声明并实例化 ConnectionInfo 类。C# Copy Code ConnectionInfo connectionInfo = new ConnectionInfo();在下一行上,通过传入 ConnectionInfo 实例调用 SetDBLogonForReport() 方法。C# Copy Code SetDBLogonForReport(connectionInfo);设置 ConnectionInfo 实例的 DatabaseName、UserID 和 Password 属性。注意 出于安全性考虑,使用访问权限受到限制的数据库帐户非常重要。有关更多信息,请参见 “安全性:创建受限访问数据库帐户”。 在编写的代码中,用自己的密码代替示例密码 654321(如下所示)。 C# Copy Code connectionInfo.DatabaseName = "Northwind";connectionInfo.UserID = "limitedPermissionAccount";connectionInfo.Password = "654321";测试 NorthwindCustomers 报表的加载过程。现在即可生成并运行项目。由于已经添加了登录数据库的代码,现在应该能够正确加载报表了。 从“生成”菜单中选择“生成解决方案”。 如果生成过程中出错,请立即纠正。 从“调试”菜单中,单击“开始”。NorthwindCustomers 报表将成功显示。返回到 Visual Studio,然后单击“停止”从调试模式中退出。

4.添加在运行进更改数据库位置的功能。

在本节中,将学习如何在运行时更改数据库的位置。要实现此功能只需对ConnectionInfo 实例稍加修改即可。注意在本教程中,将更改数据库服务器的名称,而不是数据库的名称。无法使用CrystalReportViewer控件更改数据库的名称。在运行时更改数据库位置。在 ConfigureCrystalReports() 方法中,在调用 SetDBLogonForReport() 方法的代码后面创建几行。在这几行中,设置 ConnectionInfo 实例的 ServerName 属性。注意在编写的代码中,用您的服务器名称代替示例服务器名称“DevDatabaseServer”。 C# Copy Code connectionInfo.ServerName = "DevDatabaseServer"; 测试是否能在运行时将报表重置到备用数据库服务器。现在即可生成并运行项目。报表应该会在运行时重定向到备用数据库服务器。从“生成”菜单中选择“生成解决方案”。如果生成过程中出错,请立即纠正。 从“调试”菜单中,单击“开始”。NorthwindCustomers报表将成功显示。返回到Visual Studio,然后单击“停止”从调试模式中退出。


附件列表


0

故事内容仅供参考,如果您需要解决具体问题
(尤其在法律、医学等领域),建议您咨询相关领域专业人士。

如果您认为本故事还有待完善,请 编辑

上一篇 田地    下一篇 清华药品销售管理软件

标签

同义词

暂无同义词
  • 友情链接:
  • 中原企业家
  • 华锐社区
  • 法学学习
  • 故事库
  • 舆情信息
  • 郑州商业观察
  • 美丽中国
  • 药食同源
  • Lovely China
  • 纯欲天花板
  • 留学生