如果当前所使用的数据库支持 SQL 等查询语言,则可以编写自己的命令,此类命令在 Crystal Reports 中以表对象表示。这使有经验的数据库用户可以完全控制将下推到数据库服务器的数据处理。有经验的用户可以编写高度优化的命令,在相当大的程度上减少从服务器所返回数据集的大小。
使用“数据库专家”中的“添加命令”节点,可以编写自己的命令来创建表示命令处理结果的虚拟表。
当您使用作为命令创建的虚拟表时,Crystal Reports 不会更改向服务器提交的 SQL 的语法(即,不会自动添加引号字符或转义符)。此行为也适用于在命令中使用的参数。因此,您必须添加数据库驱动程序所必需的引号字符和转义符。
创建自己的命令对象
例如:
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
返回到Crystal Reports ActiveX Designer。在字段资源管理器的“数据库字段”下出现一个“命令”表,该表列出了所指定的数据库字段。
注意 默认情况下,您的命令称为“Command”。通过 F2 键可以更改其别名。
编辑命令对象
可以在“将命令添加到报表”对话框或“修改命令”对话框中创建参数字段。
为命令对象创建参数
输入用于标识该参数的名称。
输入希望程序在提示时所显示的文本。
输入参数字段的数据类型。
输入在不提供新值时希望程序使用的值。
该参数将被添加到“参数列表”。返回“修改命令”对话框,可以修改或删除该参数。
向命令对象添加参数
该参数被添加在您放置光标的位置。它看上去应该类似于:
WHERE Customer.`Country` = '{?CountryParam}'
如果要更改已创建的参数字段,请转到“字段资源管理器”,然后从“参数字段”节点中选择该参数字段。