创建一个简单数据报表

本主题创建了一个简单数据报表,该报表使用数据环境设计器作为数据源。数据环境设计器使用和 Visual Basic一起提供的 NorthWind 数据库创建一个简单的层次结构游标。该游标包含两个表,Customers 和 Orders,并使用“CustomerID”字段链接两个表。完成的报表类似于下面的插图。

简单数据报表:客户的订单日期

在开始逐步处理之前,确保计算机上存在 Northwind 数据库(Nwind.mdb)。如果不存在,从 Visual Basic CD 复制一份文件到计算机的硬盘上。

要在数据环境设计器中创建一个简单的层次结构游标,请按照下列步骤执行:

  1. 创建一个新的“标准 EXE”工程。

  2. 在“工程”菜单上,单击“添加 Data Enviroment”向工程中添加一个设计器。如果设计器没有在“工程”菜单上列出,则单击“部件”。单击“设计器”选项卡。并单击“数据环境”把设计器添加到菜单上。

    注意 最初为项目加载的四种ActiveX设计器在“工程”菜单上列出。如果加载了超过四个设计器,后面的设计器可以从“工程”菜单的“更多 ActiveX 设计器”子菜单中获得。

  3. 在“数据链接属性”对话框上单击“Microsoft Jet 3.51 OLE DB Provider”,这是为访问 Jet 数据库选择正确的 OLE DB 供应商。

  4. 单击“下一步”按钮进入“连接”选项卡。

  5. 单击第一个文本框旁边的省略按钮(…)。

  6. “选择 Access 数据库”对话框浏览到 nwind.mdb 文件,它被安装在 Program Files\Microsoft Visual Studio\Vb98 目录下。

  7. 单击“确定”关闭对话框。

  8. 右键单击“Connection1”图标,单击“重命名”,把图标名改为“Northwind”。

  9. 右键单击“Northwind”图标,然后单击“添加命令”显示“Command1”对话框。在对话框中,如下所示设置属性:
    属性 设置值
    Command Name Customers
    Connection Northwind
    DataBase Object Table
    Object Name Customers

  10. 单击“确定”结束对话框。

  11. 右键单击“Customers”命令,并单击“添加子命令”显示“Command2”对话框。在对话框中,如下所示设置属性:
    属性 设置值
    Command Name Orders
    Connection Northwind
    DataBase Object Table
    Object Name Orders

  12. 单击“关联”选项卡。应该选中“与父命令对象相关联”复选框。“父”框应该包含“Customers”;“父字段”和“子字段/参数”框都应该包含“CustomerID”。

    在设计关系数据库时,对于链接字段,习惯上相关的表要使用相同的名字。在这种情况下,链接字段都被命名为 CustomerID。数据环境设计器自动地在对话框中匹配这样的对。

  13. 单击“添加”。单击“确定”关闭对话框。

    单击“添加”按钮向 Command 对象添加关系。在关闭了对话框之后,数据环境设计器通过把两个命令显示为一个层次结构来反映关系。该层次结构将被用于创建数据报表。

  14. 根据下面的设置值设置工程和设计器的属性,然后保存工程:
    对象 属性 设置值
    Project Name PrjNwind
    DataEnvironment Name DeNwind
    Form Name FrmShowReport

创建数据报表

一旦创建了数据环境设计器,就可以创建一个数据报表。因为并不是数据环境中所有的字段在一个数据报表中都有用,这一系列的主题创建一个受限制的报表,只显示几个字段。

要创建一个新的数据报表,请按照下列步骤执行:

  1. 在“工程”菜单上,单击“添加 Data Report”,Visual Basic 将把它添加到您的工程中。如果设计器不在“工程”菜单上,单击“部件”。单击“设计器”选项卡,并单击“Data Report”把设计器添加到菜单上。

    注意 为工程加载的前四种 ActiveX 设计器在“工程”菜单上列出。如果加载了多于四个设计器,后面的设计器可以从“工程”菜单的“更多 ActiveX 设计器”子菜单中获得。

  2. 根据下面的表设置 DataReport 对象的属性:
    属性 设置值
    Name rptNwind
    Caption Northwind Data Report
  3. 在“属性”窗口上,单击“数据源”,然后单击“deNwind”。然后单击“DataMember”并单击“Customers”。

    重点 要把 DataSource 属性设置为 deNwind,数据环境设计器必须为打开的。如果数据环境设计器是关闭的,按下 CTRL+R 键显示“工程”窗口,然后双击数据环境图标。

  4. 右键单击数据报表设计器,并单击“检索结构”。

    您已经向设计器添加了一个新的分组。每一个分组都同数据环境中的 Command 对象有“一对一”对应关系;在这种情况下,新的分组与客户的 Command 对象相对应。同时也要注意分组标头有一个与之匹配的分组注脚部分。

    注意 如果某个 Command 对象有多于一个的子对象 — 相互“平行”的子 Command 对象,则 Data Environment 使您可以创建该 Command 对象的层次结构。Data Report 设计器,却没有那么灵活,在同一时间不能显示多于一个的子对象。此时,当执行一个 Retrieve Structure Command命令时,Data Report 将只显示第一个子 command,其他的都不显示。所以,您应该避免创建带有“平行”子 command的 Command 层次结构。

  5. 从数据环境设计器,把“CompanyName”字段(在“Customers”命令下)拖到分组标头(Customers_Header)部分。

    分组标头部分可以包含 Customers 命令的任何字段,然而,出于演示目的,此时只显示 Customer 名。

  6. 删除名为“Label1”的 Label 控件(rptLabel)。

    如果不希望 Label 控件包括在 TextBox 控件中,可以在数据环境设计器的“选项...”对话框的“字段映射”选项卡上撤消对“Drag and Drop Fields Caption”选项的选择。

  7. 从数据环境设计器中,把“OrderDate”字段(在Orders命令下)拖到细节(Orders_Detail)部分。删除Label控件。

    细节部分表示最内层的“重复”部分,因而与数据环境层次结构(OrdersCommand对象)中最底层的 Command 对象相对应。

  8. 重新调整数据环境设计器部分的大小,使之与下面的插图类似:

    重新调整细节部分的高度,使它尽可能的矮是很重要的,因为高度将会与为每一个 CompanyName 返回的 OrderDate 相乘。OrderDate 文本框下面或上面的任何多余位置将在最后的报表中导致不必要的空间。

  9. 保存工程。

使用 Show 方法预览数据报表

既然数据环境和 Data Report 对象已经创建,就几乎准备好运行工程了。还剩下一步:写代码以显示数据报表。

要在运行时显示数据报表,请按照下列步骤执行:

  1. 在“工程资源管理器”窗口上,双击“frmShowReport”图标,显示窗体设计器。

  2. 在“工具箱”上,单击“通用”选项卡。

    当把一个数据报表设计器添加到工程时,数据报表设计器的控件被添加到名为“Data Report”的选项卡上。要使用标准的 Visual Basic 控件,必须切换到“通用”选项卡。

  3. 单击“CommandButton”图标并在窗体上绘制一个“CommandButton”。

  4. 根据下面的表设置 Command1 控件的属性:
    属性 设置值
    Name CmdShow
    Caption Show Report

  5. 在按钮的 Click 事件中,粘贴下面的代码。
    Private Sub cmdShow_Click()
    rptNwind.Show
    End Sub
  6. 保存并运行工程。

  7. 单击“显示报表”,在打印预览方式中显示报表。

可选的—将数据报表作为启动对象设置

在没有代码的情况下,也可以显示报表。

  1. 在“工程”菜单上,单击“prjNwind”属性。

  2. 在“启动对象”框中,选择“rptNwind”。

  3. 保存并运行工程。

    注意 如果使用这种方法,可以从工程中把Form对象删除。

步骤

该主题是帮助您创建一个示例数据报表的一系列步骤中的一部分:

请参阅
进行下一步 扩展数据报表