区域报表

在区域报表中,您可以使用参数集合将值传递到控件中,或者使用参数来显示报表数据中的子集。

设置报表参数有以下几种方法:

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属性设置为TrueFalse来控制该参数是否显示参数输入提示。但是,如果报表的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 属性设置为何值,用户都不会被提示输入参数。