ComponentOne Reports for WinForms帮助文档
参数查询

参数查询是通过显示对话框提示用户输入或选择,根据用户输入的信息执行查询,例如使用要查询的记录作为标准值或报表字段值提示用户。 参数查询可以提示用户输入一个或多个值进行数据查询,例如,用户可以输入两个日期:起始日期和截止日期, C1Report会根据用户输入的两个日期,查询满足这两个日期之间的数据记录。
可以使用参数查询功能创建月收入报表。 当加载报表时,C1Report会显示一个信息对话框,要求您选择希望查看的月份, C1Report会根据您的选择,加载相应的月收入报表。
创建参数查询,需要在RecordSource属性中编辑带参数的SQL语句。 创建参数查询的语句与Microsoft Access提供的相同。

  1. 创建参数查询的最简单的方法是在SQL语句的WHERE条件下添加一个或多个参数表达式,然后使用参数手动替换表达式的固定值。 例如,先从普通的SQL语句:

     
    strSQL = "SELECT DISTINCTROW * FROM Employees " & _
    "INNER JOIN (Orders INNER JOIN [Order Subtotals] " & _
    "ON Orders.OrderID = [Order Subtotals].OrderID) " & _
    "ON Employees.EmployeeID = Orders.EmployeeID " & _
    "WHERE (((Orders.ShippedDate) " & _
    "Between #1/1/1994# And #1/1/2001#));"
    
    

  2. 下一步是确定将要用参数替换的SQL语句中的表达式。 上述的例子中,参数替代的就是WHERE子句中日期的表示,黑体字表示的。 参数名为Beginning Date和Ending Date 。 由于这些名称中包含‘空格’字符,需要将各个参数使用方括号括起来:

     
    strSQL = "SELECT DISTINCTROW * FROM Employees " & _
    "INNER JOIN (Orders INNER JOIN [Order Subtotals] " & _
    "ON Orders.OrderID = [Order Subtotals].OrderID) " & _
    "ON Employees.EmployeeID = Orders.EmployeeID " & _
    "WHERE (((Orders.ShippedDate) " & _
    "Between [Beginning Date] And [Ending Date]));"
    
    
    

  3. 最后一点,参数必须在SQL语句的开始使用带有PARAMETERS的关键词声明,参数声明包括参数名称,类型和缺省值的声明:

     
    strSQL = "PARAMETERS [Beginning Date] DateTime 1/1/1994, " & _
    "[Ending Date] DateTime 1/1/2001;" & _
    "SELECT DISTINCTROW * FROM Employees " & _
    "INNER JOIN (Orders INNER JOIN [Order Subtotals] " & _
    "ON Orders.OrderID = [Order Subtotals].OrderID) " & _
    "ON Employees.EmployeeID = Orders.EmployeeID " & _
    "WHERE (((Orders.ShippedDate) " & _
    "Between [Beginning Date] And [Ending Date]));"
    
    

一旦执行到该语句时,C1Report将显示一个对话框,提示用户输入“开始日期(Beginning Date)“和“结束日期(Ending Date)”的值。 根据用户输入的日期值生成相应时间段的报表。
该对话框通过C1Report即时创建的。 该对话框会显示查询需要输入的所有参数,并根据参数类型选择合适的输入控件。 例如,复选框用于表示布尔类型的参数,日期时间选择器控件用于表示日期类型的参数。 如图显示了上节的SQL语句呈现的对话框:

PARAMETERS的语法是使用“逗号”分隔的参数的属性声明,使用“分号”表示参数声明结束。 每个逗号里面的内容都描述了参数的属性,包含以下信息:

类型名称 ADO类型
Date adDate
DateTime adDate
Bit, Byte, Short, Long adInteger
Currency adCurrency
Single adSingle
Double adDouble
Text, String adBSTR
Boolean, Bool, YesNo adBoolean


创建参数化查询的最简单的方法是增量式的。首先使用一个简单的查询,然后在查询语句中添加参数定义语句(不要忘记输入分号结束参数定义语句)。 最后,编写WHERE子句,并在适当的地方添加参数名。

您可以使用GetRecordSource方法来获取有关参数查询的正确的SQL语句(不具有参数语句)。 如果你想使用报表的数据来创建自己的数据集,参数查询会非常有用。

注意: 如果不使用参数查询,你可以使用Visual Basic或C#语言编写代码来创建对话框,从而获得用户的输入信息,并根据需要修改SQL语句或设置 数据源 对象的 过滤器 属性。 使用参数查询的优点在于,参数查询逻辑是嵌入于报表内部的,独立于浏览器应用程序。 (同时,这也节省了编写代码的时间。)

 

 


产品网站:http://www.gcpowertools.com.cn  |  咨询热线:4006576008   |   ©2015 西安葡萄城