Crystal Reports  

基于命令/SQL 查询定义虚拟表

如果当前所使用的数据库支持 SQL 等查询语言,则可以编写自己的命令,此类命令在 Crystal Reports 中以表对象表示。这使有经验的数据库用户可以完全控制将下推到数据库服务器的数据处理。有经验的用户可以编写高度优化的命令,在相当大的程度上减少从服务器所返回数据集的大小。

使用“数据库专家”中的“添加命令”节点,可以编写自己的命令来创建表示命令处理结果的虚拟表。

当您使用作为命令创建的虚拟表时,Crystal Reports 不会更改向服务器提交的 SQL 的语法(即,不会自动添加引号字符或转义符)。此行为也适用于在命令中使用的参数。因此,您必须添加数据库驱动程序所必需的引号字符和转义符。

创建自己的命令对象

  1. 右击字段资源管理器中的“数据库字段”,然后单击“数据库专家”。
  2. 在“数据库专家”对话框中,浏览文件夹以找到您的数据源。
  3. 在您的数据源下,双击“添加命令”节点。
  4. 在“将命令添加到报表”对话框中,为已打开的数据源输入适当的查询/命令。

    例如:

    SELECT
        Customer.`Customer ID`,
        Customer.`Customer Name`,
        Customer.`Last Year's Sales`,
        Customer.`Region`,
        Customer.`Country`,
        Orders.`Order Amount`,
        Orders.`Customer ID`,
        Orders.`Order Date`
    FROM
        Customer Customer INNER JOIN Orders Orders ON
            Customer.`Customer ID` = Orders.`Customer ID`
    WHERE
        (Customer.`Country` = 'USA' OR
        Customer.`Country` = 'Canada') AND
        Customer.`Last Year's Sales` < 10000.
    ORDER BY
        Customer.`Country` ASC,
        Customer.`Region` ASC
  5. 单击“确定”按钮。

    返回到Crystal Reports ActiveX Designer。在字段资源管理器的“数据库字段”下出现一个“命令”表,该表列出了所指定的数据库字段。

    注意   默认情况下,您的命令称为“Command”。通过 F2 键可以更改其别名。

编辑命令对象

  1. 在“数据库专家”的“选定的表”区域中,选择要编辑的命令。
  2. 右击该命令,然后在快捷菜单上选择“编辑命令”。
  3. 在“修改命令”对话框中进行所需更改,完成后单击确定

可以在“将命令添加到报表”对话框或“修改命令”对话框中创建参数字段。

为命令对象创建参数

  1. 在“将命令添加到报表”对话框或“修改命令”对话框的“参数列表”区域中,单击创建
  2. 在“命令参数”对话框所提供的字段中输入以下信息:
    • 参数名

      输入用于标识该参数的名称。

    • 提示文本

      输入希望程序在提示时所显示的文本。

    • 值类型

      输入参数字段的数据类型。

    • 默认值

      输入在不提供新值时希望程序使用的值。

  3. 单击“确定”按钮。

    该参数将被添加到“参数列表”。返回“修改命令”对话框,可以修改或删除该参数。

向命令对象添加参数

  1. 将光标放在查询文本中。
  2. 双击参数列表中的参数名称。

    该参数被添加在您放置光标的位置。它看上去应该类似于:

    WHERE
        Customer.`Country` = '{?CountryParam}'

    如果要更改已创建的参数字段,请转到“字段资源管理器”,然后从“参数字段”节点中选择该参数字段。

另请参见

插入数据库字段