在 Visual Studio .NET中使用Crystal Report(中)

** 在 ** ** Visual Studio .NET ** ** 中使用 ** ** Crystal Report(中 ** ** ) **

from www.aspfree.com
translated by cash( 天下第七 )
[email protected]

** Crystal Report ** ** 演示-使用 ** ** Pull Model **


我们可以用以下步骤来实现 Crystal Reports 的 Pull Model 的使用 :

(1) 创建一个 .rpt 文件,设定必要的数据库联接。

(2) 将 CrystalReportViewer control 放到 .aspx 页面上,设定它的属性指向我们创建的 .rpt 文件。

(3) 在你的 code behind page 文件中调用 databind 方法。

创建 .rpt 文件 ** : **


  1. 右键单击 Solution Explorer ,选择 "Add" --> "Add New Item" --> "Crystal Report" ,添加一个新 Crystal Report 文件。

  1. 在 "Crystal Report Gallery" 弹出窗口,选择 "As a Blank Report" 按钮并单击 ”ok” 。

  1. 这将在 Crystal Report Designer 上打开一个新的报表文件

  1. 在报表的 "Details Section" 上右击,选择 "Database" -> "Add/Remove Database" 。

  2. 在 "Database Expert" 窗口,展开 "OLE DB (ADO)" 选项,将会打开一个新 "OLE DB (ADO)" 窗口。

  3. 在 "OLE DB (ADO)" 窗口中,选择 "Microsoft OLE DB Provider for SQL Server" 并单击 ”Next” 。

  1. 指定连接信息 如下:

Server : HomePC ( 你服务器的名称 )

User Id : sa

Password :

Database : Pubs

  1. 单击 "Next" , Finish 。

  2. 现在你可以看到 Database Expert 显示这个表被选中了。

  3. 展开”pubs”库,展开”tables”,选择”stores”表并用”>”将其包括进”selected tables”。

  1. 现在 Field Explore 将会在 "Database Fields" 显示出来 。

  2. 将所需的 fields拖进表中的Details部分。这个field的名字将会自动出现在Page Header部分。如果你想改动header的文本,右击page header部分的文本,选择“Edit Text Object”并编辑。

  1. 保存,我们在以后还要用到它。

创建一个Crystal Report Viewer Control


  1. 返回我们的 web form page ,从 "WebForms" tool box 拖动一个 "Crystal Report Viewer" control 到页面。

  2. 在属性窗口中选择databindings并单击 [...]

  3. 在 "Crystal Report Viewer Databinding" 窗口中,选择 "Report Source" ,选择 "Custom Binding Expression" ,键入您刚刚保存的那个 .rpt 文件的路径 ( 注意双引号 ) 。

  1. 现在你可以看到 Crystal Report Viewer 显示出了一个预览。

注意:在上一个例子中, Crystal Report Viewer 控件能够直接显示数据是因为这个报表是与数据保存在一起的。但是在这个例子中,就不会在设计时直接显示出来了,因为这个报表中不包含相关的数据,取而代之的是设计时的伪数据,仅当运行时数据才会显示出来。

** 更改 ** ** Behind Page ** ** 代码 **


  1. 打开 code behind 文件,在 page load 事件中加入 databind 方法。

** 运行 **


  1. 按F5运行观看效果。

注意到你可以使用像 "Page Navigation", "Zoom" 等这个 Report 自带的控件。

Published At
Categories with Web编程
Tagged with
comments powered by Disqus