在区域报表中,您可以使用参数集合将值传递到控件中,或者使用参数来显示报表数据中的子集。
设置报表参数有以下几种方法:
l 您可以在SQL查询语句中输入以下格式的语句实现数据过滤:
<%Name |PromptString|DefaultValue|DataType|PromptUser%> |
l 您可以在报表浏览器中添加参数,并将其作为 Textbox 控件添加到报表中,以实现运行时的数值传递。
l 您还可以在ReportStart事件中的台代码添加参数。详细信息,请参阅添加参数。
提示输入参数值
若要提示用户输入参数值,需要进行以下操作:
l 报表参数集合中至少有一个参数。
l 必须将至少一个参数的PromptUser属性设置为True。
l 在报表对象中,必须将ShowParameterUI属性设置为True。
当集合中有参数而且 ShowParameterUI 属性设置为 True 时,在运行报表时会自动显示输入参数提示信息。当用户输入所需的值之后单击确定按钮,报表会根据参数值来获取显示的数据。
通过报表资源管理器添加的参数值,可以通过 param: 的形式应用到 SQL 查询语句的参数中,param:前缀会将当前参数与报表资源管理器中参数进行关联。
例如
select * from CUSTOMERS where CustomerName = '<%param:Parameter1%>' |
CustomerName字段的过滤值就是报表资源管理器中的 Parameter1的值。
提示: 在同一报表中,您可以通过将PromptUser属性设置为True或False来控制该参数是否显示参数输入提示。但是,如果报表的ShowParameterUI属性设置为False,不管PromptUser设置为True还是False,都不会显示参数输入提示。
通过 SQL 查询给参数集合添加参数
通过 SQL 查询将单个参数添加到报表参数集合,如下所示:
SELECT * FROM Products INNER JOIN Categories ON Products.CategoryID = Categories.CategoryID WHERE Products.SupplierID = <%SupplierID|Enter a Supplier ID|1|S|True%> |
在参数语法中,用 | 字符分隔有五个属性设置。
属性列表中只有第一个值 (名称) 是必需,但如果您不指定第三个值 (默认值),在设计时不会填充字段列表。您可以只指定Name值(无须添加 | 分隔符),或同时指定多个值(此时需要使用 | 进行分隔),如果您希望只提供其中部分值,可将不需要的值保留空白。例如,<%ProductID||||False%>
Name(名称): 参数名称。
PromptString(提示字符串): 用于提示用户输入参数值的字符串。
DefaultValue(默认值):提供一个参数默认值,使得ActiveReports在设计时拖拽绑定字段到报表。与此同时,该默认值也被用来填充用户提示对话框,使得用户只需点击“确定”按钮就可以接受此默认值。
Type(类型):该值告诉ActiveReports,本参数支持什么样的数据类型。默认值是字符串:“S”。同时,它还决定在用户提示对话框上使用何种控件让用户进行编辑。类型可以为以下三种值:
S (字符串)提供一个用户可以输入字符串的文本框。
注:根据您的数据源类型,您可能需要在参数语法中使用撇号(单引号)引用字符串参数.
例如, '<%MyStringParameter%>'
此外如果您在默认值中使用字符串值,也类似的需要用到引号。
例如, <%MyStringParameter||"DefaultValue"|S|False%>
D (日期)提供了一个下拉日历控件,用户可以从中选择一个日期。
注: 根据具体的数据源类型,您可能需要在参数语法上加数字符号。
例如, #<%MyDateParameter%>#
B (布尔值) 提供一个复选框,用户可以选择或者清除。
注: 如果您提供的默认值为True或者False,再或者为0或1作为布尔类型的参数, ActiveReports 按照该格式将值传递给SQL。
PromptUser:这个布尔值用来告诉 ActiveReports 是否弹出对话框提示用户输入值。这个值可以在一些参数上设置为True,同时在另一些参数上设置为False。之后在设置了报表对象的ShowParameterUI属性为False时,无论报表中的任何参数的PromptUser 属性设置为何值,用户都不会被提示输入参数。