说明
Choose 根据下标值返回选项列表中的一个值。
参数
index 是一个指定选项 (choice) 的下标的数字或数值表达式。它应该介于 1 和可用选项数之间。如果它超出范围,则 Choose 返回一个默认值。(返回的默认值取决于选项的类型。例如,如果选项属于数字类型,则默认值为 0,如果选项属于字符串类型,则默认值为空字符串(“”)。)
选项是要从中进行选择的选项中的一个。所有选项必须具有相同的类型。选项可以是任何简单类型(数字、货币、字符串、布尔值、日期、时间或日期时间)或范围类型(数字范围、货币范围、字符串范围、日期范围、时间范围或日期时间范围),但它不能是数组。
返回
给定选项列表中的一个值。返回值的类型与选项的类型相同。
操作
Choose 根据下标值返回选项列表中的一个值。例如,如果下标为 1,则返回 choice1,如果索引为 2,则返回 choice2,依次类推。
典型用法
在某些情况下,Choose 可以代替 If-Then-Else 运算符或 Select 控制结构来使用。例如,如果您在将下标值映射到字符串值,则使用 Choose 最简单。
有一种情况使用 Choose 比使用控制结构更方便:即编写记录选定公式以便它们可以推入到数据库服务器中。
有关相关技术的说明,请参见《Crystal Reports 用户指南》的“设计最佳 Web 报表”一章中的“使用增强的记录选定公式”。
示例
Choose (3, "Poor", "Fair", "Good", "Excellent")
返回字符串“Good”。
Choose (2, 10 To 20, 100 To 200, 60 To 70)
返回数字范围值:100 To 200。
如果某家公司的财政年度是从 7 月 1 日(第 3 个日历季度)开始,它希望打印每个订单日期的财政季度:
Choose (DatePart ("q", {Orders.Order Date}),
"third fiscal quarter", "fourth fiscal quarter",
"first fiscal quarter", "second fiscal quarter")如果 {订单.订单日期} 是 February 18, 1996,则 DatePart 函数调用将返回 1,因为该日期是在第一个日历季度内。因此,第一个选项值,即字符串值“third fiscal quarter”由公式返回。
注释
在返回选项之前,Choose 函数的每一个参数都要进行求值。因此,在使用 Choose 时,应当心不符合要求的负面效果。例如,如果一个选项表达式出现以零为除数的除法,则会产生错误,即使该选项不是 Choose 函数返回的选项也不例外。