编写一shell 函数 返回值count(int n)计算13 + 23 + …+ n3 ,shell 函数 返回值返回值为计算结果。

函数void fun (int n)的功能是:根据以下公式计算是,计算结果通过返回值返回;n通过形参传入,n的值大于_百度知道
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。
函数void fun (int n)的功能是:根据以下公式计算是,计算结果通过返回值返回;n通过形参传入,n的值大于
请填空并编写main函数调用fun函数计算s。s=1-1/3+1/5-1/7+...-1/(2n+1)void fun(int n){&float s=0,w,f=-1.0;&int i=0;&for(i=0;i&=n;i++)&{&&f=____填空____*f;&&w=f/(2*i+1);&&s+=w;&}____填空_...
我有更好的答案
由于这个函数定义成void,所以无法使用返回值返回,只能在这里输出结果(1) -1(2) printf(&%f&,s);
采纳率:56%
来自团队:
1、-12、return s
为您推荐:
其他类似问题
等待您来回答函数参数与返回值(Function Parameters and Return Values)
函数参数与返回值在Swift中极为灵活。你可以定义任何类型的函数,包括从只带一个未名参数的简单函数到复杂的带有表达性参数名和不同参数选项的复杂函数。
多重输入参数(Multiple Input Parameters)
函数可以有多个输入参数,写在圆括号中,用逗号分隔。
下面这个函数用一个半开区间的开始点和结束点,计算出这个范围内包含多少数字:
func halfOpenRangeLength(start: Int, end: Int) -& Int {
return end - start
println(halfOpenRangeLength(1, 10))
// prints &9&
无参函数(Functions Without Parameters)
函数可以没有参数。下面这个函数就是一个无参函数,当被调用时,它返回固定的&String&消息:
func sayHelloWorld() -& String {
return &hello, world&
println(sayHelloWorld())
// prints &hello, world&
尽管这个函数没有参数,但是定义中在函数名后还是需要一对圆括号。当被调用时,也需要在函数名后写一对圆括号。
无返回值函数(Functions Without Return Values)
函数可以没有返回值。下面是&sayHello&函数的另一个版本,叫&waveGoodbye,这个函数直接输出&String&值,而不是返回它:
func sayGoodbye(personName: String) {
println(&Goodbye, \(personName)!&)
sayGoodbye(&Dave&)
// prints &Goodbye, Dave!&
因为这个函数不需要返回值,所以这个函数的定义中没有返回箭头(-&)和返回类型。
严格上来说,虽然没有返回值被定义,sayGoodbye&函数依然返回了值。没有定义返回类型的函数会返回特殊的值,叫&Void。它其实是一个空的元组(tuple),没有任何元素,可以写成()。
被调用时,一个函数的返回值可以被忽略:
func printAndCount(stringToPrint: String) -& Int {
println(stringToPrint)
return countElements(stringToPrint)
func printWithoutCounting(stringToPrint: String) {
printAndCount(stringToPrint)
printAndCount(&hello, world&)
// prints &hello, world& and returns a value of 12
printWithoutCounting(&hello, world&)
// prints &hello, world& but does not return a value
第一个函数&printAndCount,输出一个字符串并返回&Int&类型的字符数。第二个函数&printWithoutCounting调用了第一个函数,但是忽略了它的返回值。当第二个函数被调用时,消息依然会由第一个函数输出,但是返回值不会被用到。
返回值可以被忽略,但定义了有返回值的函数必须返回一个值,如果在函数定义底部没有返回任何值,这叫导致编译错误(compile-time error)。
多重返回值函数(Functions with Multiple Return Values)
你可以用元组(tuple)类型让多个值作为一个复合值从函数中返回。
下面的这个例子中,count&函数用来计算一个字符串中元音,辅音和其他字母的个数(基于美式英语的标准)。
func count(string: String) -& (vowels: Int, consonants: Int, others: Int) {
var vowels = 0, consonants = 0, others = 0
for character in string {
switch String(character).lowercaseString {
case &a&, &e&, &i&, &o&, &u&:
case &b&, &c&, &d&, &f&, &g&, &h&, &j&, &k&, &l&, &m&,
&n&, &p&, &q&, &r&, &s&, &t&, &v&, &w&, &x&, &y&, &z&:
++consonants
return (vowels, consonants, others)
你可以用&count&函数来处理任何一个字符串,返回的值将是一个包含三个&Int&型值的元组(tuple):
let total = count(&some arbitrary string!&)
println(&\(total.vowels) vowels and \(total.consonants) consonants&)
// prints &6 vowels and 13 consonants&
需要注意的是,元组的成员不需要在函数中返回时命名,因为它们的名字已经在函数返回类型有有了定义。
加QQ群啦!
JAVA技术QQ群:
MySQL/SQL语句QQ群:
Python QQ群:
大数据开发技术:
易百教程移动端:请扫描本页面底部(右侧)二维码关注微信公众号,或直接手机访问:
上一篇:下一篇:当前位置: >>
在SAP BusinessObjetcs Web Intelligence 中使用函数、公式和计算
在 SAP BusinessObjetcs Web Intelligence 中使用函数、公式和 计算SAP BusinessObjects XI 3.1 Service Pack 3 目录第 1 章 关于本指南 第 2 章 使用标准和自定义计算 7 82.1 标准计算..............
....................................8 2.2 使用公式生成自定义函数....................................9 2.2.1 使用变量简化公式......................................9 2.3 使用函数.................................................10 2.3.1 在单元格中包含函数...................................11 2.3.2 函数语法.............................................11 2.3.3 函数示例.............................................11 2.3.4 Web Intelligence 函数和公式运算符....................16 第 3 章 了解计算上下文 183.1 什么是计算上下文?.......................................18 3.1.1 输入上下文...........................................18 3.1.2 输出上下文...........................................19 3.2 默认计算上下文...........................................21 3.2.1 垂直表中的默认上下文.................................23 3.2.2 水平表中的默认上下文.................................24 3.2.3 交叉表中的默认上下文.................................24 3.2.4 节的默认上下文.......................................25 3.2.5 拆分中的默认上下文...................................26 3.3 使用扩展语法修改默认计算上下文...........................27 4在 SAP BusinessObjetcs Web Intelligence 中使用函数、公式和计算3.3.1 扩展语法运算符.......................................27 3.3.2 Web Intelligence 扩展语法关键字......................31 第 4 章 使用智能度量计算值 404.1 定义的智能度量...........................................40 4.2 分组集和智能度量.........................................40 4.2.1 Web Intelligence 如何管理分组集......................41 4.3 智能度量和分析范围.......................................42 4.4 智能度量和 SQL...........................................42 4.4.1 分组集和 UNION 运算符................................42 4.5 智能度量和公式...........................................45 4.5.1 智能度量和包含公式的维...............................45 4.5.2 公式中的智能度量.....................................45 4.6 智能度量和过滤器.........................................46 4.6.1 智能度量和维过滤器...................................46 4.6.2 智能度量和钻取过滤器.................................46 4.6.3 智能度量及嵌套 OR 过滤器.............................47 第 5 章 Web Intelligence 函数、运算符和关键字 5.1 Web 5.1.1 5.1.2 5.1.3 5.1.4 5.1.5 5.1.6 5.1.7 48Intelligence 函数....................................48 聚合函数.............................................48 字符函数.............................................75 日期和时间函数.......................................93 数据提供者函数......................................104 文档函数............................................116 逻辑函数............................................123 数字函数............................................132 目录55.1.8 5.2 Web 5.2.1 5.2.2 5.2.3 5.2.4 5.2.5 5.3 Web 5.3.1 5.3.2 5.3.3 5.3.4 5.3.5 5.4 Web其它函数............................................154 Intelligence 函数和公式运算符.......................174 数学运算符..........................................174 条件运算符..........................................174 逻辑运算符..........................................175 特定于函数的运算符..................................178 扩展语法运算符......................................185 Intelligence 扩展语法关键字.........................189 Block 关键字........................................190 Body 关键字.........................................191 Break 关键字........................................192 Report 关键字.......................................193 Section 关键字......................................194 Intelligence 将数字四舍五入和截断数字的方式.........195 197第 6 章 Web Intelligence 公式疑难解答6.1 公式错误消息和信息消息..................................197 6.1.1 #COMPUTATION........................................197 6.1.2 #CONTEXT............................................197 6.1.3 #DATASYNC...........................................198 6.1.4 #DIV/0..............................................198 6.1.5 #EXTERNAL...........................................198 6.1.6 #INCOMPATIBLE.......................................199 6.1.7 #MULTIVALUE.........................................199 6.1.8 #OVERFLOW...........................................199 6.1.9 #PARTIALRESULT......................................200 6.1.10 #RANK..............................................200 6在 SAP BusinessObjetcs Web Intelligence 中使用函数、公式和计算6.1.11 6.1.12 6.1.13 6.1.14 6.1.15 6.1.16#RECURSIVE.........................................200 #SECURITY..........................................201 #SYNTAX............................................201 #TOREFRESH.........................................201 #UNAVAILABLE.......................................201 #ERROR.............................................202 203第 7 章 使用 Web Intelligence 函数比较值7.1 使用 Previous 函数比较值................................203 7.2 使用 RelativeValue 函数比较值...........................203 7.2.1 切片维与 RelativeValue 函数.........................205 7.2.2 切片维和节..........................................207 7.2.3 切片维的顺序........................................209 7.2.4 切片维与排序........................................211 7.2.5 在交叉表中使用 RelativeValue........................213 附录 A 更多信息 214索引..........................................................216 第 1 章 关于本指南《在 SAP BusinessObjects Web Intelligence 中使用函数、公式和计 算》指南提供了关于 Web Intelligence 中高级计算功能的详细信息。它还 提供了对 Web Intelligence 函数和运算符的语法引用。 本指南只是一般性地介绍了此信息,并未引用 Web Intelligence 界面。 有关如何在 Web Intelligence 文档中使用计算相关功能的信息(例如,如 何为报表添加变量或公式),请参阅联机帮助或以下指南:《使用 SAP BusinessObjects Web Intelligence 执行即时报表分析》、《使用 SAP BusinessObjects Web Intelligence Java 报表面板构建报表》以及《使用 SAP BusinessObjects Web Intelligence 胖客户端构建报表》。 有关构建 Web Intelligence 自定义函数的信息,请参阅《SAP BusinessObjetcs Web Intelligence 扩展点:构建自定义函数》指南。 第 2 章 使用标准和自定义计算可以使用标准计算函数快速计算 Web Intelligence 报表中的数据。如果 标准计算不足以满足需求,则可以使用 Web Intelligence 公式语言来构建 自定义计算。2.1 标准计算可以使用标准计算函数快速计算 Web Intelligence 报表中的数据。提供 了以下标准计算:计算 总和 说明 计算选定数据的总和。 计算某个度量对象的所有行的数量或计 算某个维或明细对象的非重复行的数 量。 计算数据的平均值。 显示选定数据的最小值。 显示选定数据的最大值。 将选定数据显示为总计的百分比。百分 比的结果显示在表的另外一列或行中。 百分比 注意: 百分比是由选定度量和表或拆分上 的该度量的总计结果相比较计算得出 的。要计算某个度量与另一个度量比较 的百分比,您需要建立一个定制计算。 将默认聚合函数应用于标准度量,或将 数据库聚合函数应用于智能度量。计数平均值 最小值 最大值默认值 使用公式生成自定义函数9将标准计算应用于表列时,计算结果将出现在列的页脚。如果将多个计算 应用于同一列,Web Intelligence 会为每个计算的结果添加一个页脚。2.2 使用公式生成自定义函数利用自定义计算,可以在报表中添加报表基本对象和 Web Intelligence 提供的标准计算以外的其他计算。 通过编写公式来添加自定义计算,在运行报表时,Web Intelligence 将 计算该公式。公式可以包含基本报表变量、函数、运算符和计算上下文。 定制计算是包含报表对象、函数和运算符的公式。如果愿意,您可在公式 中明确指定计算上下文。示例:显示售出商品的平均收入您有一个包含“Sales Revenue(销售收入)”和“Number Sold(售出 数量)”对象的报表,并且您想在该报表中添加售出商品的平均收入。通 过将收入除以售出件数以便得出每件的收入,计算 [销售收入]/[售出数量] 可得出此值。相关主题?第 18 页上的 “什么是计算上下文?”2.2.1 使用变量简化公式您可以使用变量简化复杂的公式。通过使用变量,一个复杂的公式可以细 分为多个易管理的部分,这样可使公式更易读,并且构建公式时出错的可能 性也大大减小了。 您可以在公式中使用以前创建的变量,使用方式与其他报表对象的使用方 式完全相同。变量显示在变量文件夹下的公式编辑器中。 您可以在公式中键入该变量的名称或将该变量拖到“公式”工具栏,就像 对任何报表对象执行操作一样。示例:创建返回统计方差的公式方差是一个统计术语。一组值的方差可测量出这些值与其平均值之间的 差异。Web Intelligence 提供了可一步计算出方差的函数 Var(),但手动 10在 SAP BusinessObjetcs Web Intelligence 中使用函数、公式和计算计算方差提供了一个如何使用变量简化复杂公式的很好的示例。要手动计 算方差,需要执行以下步骤:? ? ? ? 计算售出项目的平均数 计算每个售出项目数与售出项目的平均数之间的差值,然后求该值的平方数 将所有这些平方数加在一起 用平方数总和除以值数减 1某个报表按季度显示售出项数,您想在其中包含方差。如果不使用变量 简化公式,该公式将如下所示: Sum((([Quantity sold] - Average([Quantity sold] ForEach [Quar ter]) In Report)*([Quantity sold] - Average([Quantity sold] ForEach [Quarter]) In Report)) In [Quarter])/(Count ([Quantity sold] ForEach [Quarter]) - 1) 显然该公式用起来很不方便。如果使用变量,则可将该公式简化为: Sum ([Difference Squared])/[Number of Observations] - 1) 它看起来清楚明白地多。该公式的简化版本使您可以清晰地看到公式的作 用,而不会让您陷入令人困惑的细节中。之后,您可以检查高级公式中所 引用变量的公式,从而了解公式的各构成项。 例如,该公式引用变量“差值平方”,该变量自身又引用变量“平均销 售量”。通过检查“差值平方”和“平均销售量”公式,可以向下钻取到 公式,从而了解公式作用的详细信息。2.3 使用函数自定义函数有时仅包含报表对象,例如,[销售收入]/[销售数量]。除了 报表对象外,计算还可以包括函数。 函数将收到的零个或更多个值作为输入,并根据这些值返回输出。例如, Sum 函数计算某个度量中所有值的总和并输出结果。公式 Sum([Sales Rev enue]) 输出销售收入的总和。在此情况下,函数的输入是“Sales Revenue (销售收入)”度量,输出是所有销售收入的总和。相关主题? ?第 174 页上的 “Web Intelligence 函数和公式运算符” 第 48 页上的 “Web Intelligence 函数” 使用函数112.3.1 在单元格中包含函数报表单元格中的文本始终以“=”开头。按字面显示的文本括在引号内, 而公式不带引号。例如,公式 Average([收入]) 在单元格中显示为 =Aver age([收入])。文本“平均收入?”显示为 =“平均收入?” 单元格中可以只显示文本,也可以同时显示公式和文本,公式和文本之间 用“+”运算符连起来。如果要让单元格显示平均收入,并且在该值前面显示 文本“平均收入:”,则单元格文本如下:=&平均收入:&+ Average([Rev enue]) 请注意,文本字符串末尾有一个空格,这样,文本和值在单元格中就不会 直接并排放在一起。2.3.2 函数语法如果要使用函数,您需要知道函数的名称、函数需要多少个输入值,以及 这些输入值的数据类型。您还需要知道函数输出的数据类型。 例如,Sum 函数采用数字对象作为输入(如显示销售收入的度量),并输 出数字数据(度量对象所有值的总和)。 下面是 Abs 函数的语法: num Abs(number) 此语法表示 Abs 函数接受单一数字作为输入,并返回一个数字作为输出。 选择函数时,“公式编辑器”可显示函数语法。2.3.3 函数示例示例:用 UserResponse 函数显示提示输入您有一个显示“Year”、“Quarter”和“Sales Revenue”的报表。虽 然不显示“State(省/州)”对象,但它也出现在报表数据中。当用户运 行报表时,程序提示他们必须选择省/州。您想显示用户在报表标题中选择 12在 SAP BusinessObjetcs Web Intelligence 中使用函数、公式和计算的省/州。如果数据提供者名为“eFashion”,提示中的文本为“选择省/ 州”,则标题的公式为: &Quarterly Revenues for & + UserResponse( &eFashion&;&Choose a State&) 报表如下:示例:使用 Percentage 函数计算百分比Web Intelligence 提供了用于计算百分比的 Percentage 函数。此函 数将计算一个数字相对于其周围上下文的百分比。例如,下表显示了按年 度和季度列出的收入。百分比列包含公式 Percentage ([销售收入])。 使用函数13在这种情况下,函数会以总收入百分比的方式计算每项收入。周围上下 文是总收入;这是在表中按年和季度细分之外唯一相关的收入数字。 如果报表按年度分为多个节,则表外部的周围上下文将成为节中的总收 入。如果“Percentage(百分比)”单元格位于表的外部但仍在节的内部, 则周围上下文将成为总收入。在这种情况下,Percentage 函数会以整体总 收入百分比的形式计算节的总收入。 14在 SAP BusinessObjetcs Web Intelligence 中使用函数、公式和计算示例:使用 Sum 函数计算百分比通过使用 Sum 函数(而不是 Percentage 函数),将可以更大程度地 控制在其中计算百分比的上下文。如果将数字集中的一个数字除以这些数 字的总计,则会得出它的总计百分比;例如,公式 [销售收入]/Sum([销售 收入]) 将以总收入百分比的形式计算出销售收入。 下表中的“Percentage of Total(占总数的百分比)”列包含公式: [Sales revenue]/(Sum([Sales revenue] In Report)) “Percentage of Year(年度百分比)”列包含公式: [Sales revenue]/(Sum([Sales revenue] In Section)) 使用函数15这些公式利用扩展语法关键字 Report 和 Section 指示 Sum 函数分别 计算总收入和年度收入。相关主题?第 27 页上的 “使用扩展语法修改默认计算上下文”2.3.3.1 使用变量简化方差公式方差是一个统计术语。一组值的方差可测量出这些值与其平均值之间的差 异。Web Intelligence 提供了可一步计算出方差的函数 Var(),但手动计算 方差提供了一个如何使用变量简化复杂公式的很好的示例。要手动计算方差, 需要执行以下步骤: ? 计算售出项目的平均数 ? 计算每个售出项目数与售出项目的平均数之间的差值,然后求该值的平方 数 ? 将所有这些平方数加在一起 ? 用平方数总和除以值数减 1 某个报表按季度显示售出项数,您想在其中包含方差。如果不使用变量简 化公式,该公式将如下所示: Sum((([Quantity sold] - Average([Quantity sold] ForEach [Quarter]) In Report)*([Quantity sold] - Average([Quantity sold] ForEach [Quarter]) In Report)) In [Quarter])/(Count ([Quantity sold] ForEach [Quarter]) - 1) 很明显这很难使用。创建方差公式创建方差公式的过程包含若干步骤。每个步骤都将封装到一个变量中。创 建的变量如下: ? 售出项目的平均数 ? 观察值数(即售出项目数的独立值的数量) ? 观察值与平均值的差的平方 ? 这些差值平方的总和除以观察值数减 1 变量公式如下所示: 16在 SAP BusinessObjetcs Web Intelligence 中使用函数、公式和计算变量 平均销售量公式 Average([销售量] In ([季度])) In Report Count([Quantity Sold] In ([Quarter])) In Report Power(([Quantity sold] - [平均 销售量]);2) Sum([差值平方] In ([季 度]))/([值数] - 1)值数差值平方方差最终的公式现在为 Sum ([Difference Squared])/[Number of Observations] - 1) 它看起来清楚明白地多。该公式的简化版本使您可以清晰地看到公式的作用, 而不会让您陷入令人困惑的细节中。之后,您可以检查高级公式中所引用变 量的公式,从而了解公式的各构成项。 例如,该公式引用变量“差值平方”,该变量自身又引用变量“平均销售 量”。通过检查“差值平方”和“平均销售量”公式,可以向下钻取到公式, 从而了解公式作用的详细信息。2.3.4 Web Intelligence 函数和公式运算符运算符将公式中的不同构成项链接在一起。公式可以包含数学运算符、条 件运算符、逻辑运算符、特定于函数的运算符或扩展语法运算符。2.3.4.1 数学运算符数字运算符是日常运算中的常用运算符。共有加法 (+)、减法 (-)、乘法 (*)、除法 (/) 这四种运算符,它们供您在公式中执行数学运算。公式 [Sales Revenue] - [Cost of Sales] 包含一个数学运算符(做减法)。注意:在与字符串一起使用时,“+”运算符变为拼接字符串的运算符。即,它 将各字符串联接在一起。例如,公式 &John& + &Smith& 返回“John Smith”。 使用函数172.3.4.2 条件运算符条件运算符确定在各值之间进行何种类型的比较。运算符 = & & &= &= && 说明 等于 大于 小于 大于等于 小于等于 不等于可以在 If 函数中使用条件运算符,就像这样: If [Revenue]&10000 Then &High& Else &Low& 对于收入大于等于 10000 的所有行,它返回“High”,对于所有其他行,它 返回“Low”。2.3.4.3 逻辑运算符Web Intelligence 的逻辑运算符为 And、Or、Not、Between 和 InList。 逻辑运算符在返回 True 或 False 的布尔值表达式中使用。2.3.4.4 上下文操作符上下文运算符构成扩展计算语法部分。使用扩展语法,您可以定义度量或 公式在计算中考虑哪些维。2.3.4.5 特定于函数的运算符某些 Web Intelligence 函数可以采用特定的运算符作为参数。例如, Previous 函数可以采用 Self 运算符。 所有函数均使用“)”和“(”括住函数参数。接受多个参数的函数使用 “;”来分隔参数。 第 3 章 了解计算上下文3.1 什么是计算上下文?计算上下文是计算在生成结果时考虑的数据。对于 Web Intelligence, 这意味着度量给定的值是由用于计算度量的维确定的。 报表包含两种对象: ? 维表示生成数字的的业务数据。商店销路、年份或区域都是维数据的示 例。例如,商店销路、年份或区域可能产生收入:我们可以谈论按商店列 出的收入、按年份列出的收入或按区域列出的收入。 ? 度量是维数据生成的数值数据。收入和销售数量都是度量的示例。例如, 我们可以谈论某个特定商店的销售数量。 度量也可以由维数据的组合生成。例如,我们可以谈论 2005 年某个特定 商店产生的收入。 度量的计算上下文由两部分组成: ? 确定度量值的维或维列表 ? 确定度量值的维数据的部分 计算上下文由两部分组成: ? 输入上下文 ? 输出上下文相关主题? ?第 18 页上的 “输入上下文” 第 19 页上的 “输出上下文”3.1.1 输入上下文度量或公式的输入上下文是输送到计算中的维的列表。 输入上下文中的维列表出现在输出值的函数的括号内。维列表还必须括在 括号中(即使它只包含一个维),并且必须用分号分隔各个维。 什么是计算上下文?19示例:指定输入上下文在包含“Year”节并且每个节的块中包含“Customer”和“Revenue” 列的报表中,输入上下文为:报表部件 节头和块尾 块中的行 输入上下文 Year Year、Customer换句话说,节头和块尾按年度显示合计收入,而块中的每一行显示按年 度和客户合计的收入(在所述年度中该客户所产生的收入)。 如果在公式中显式指定,这些输入上下文为: Sum ([Revenue] In ([Year])) Sum ([Revenue] In ([Year];[Customer])) 也就是说,输入上下文中的维出现在为其指定了输入上下文的函数(此 例中为 Sum)的括号内。3.1.2 输出上下文输出上下文使公式输出值,如同将公式放在包含拆分的块尾中一样。示例:指定输出上下文下面的报表按年度和季度显示收入,年度上有一个拆分,并且按年度计 算最低收入。 20在 SAP BusinessObjetcs Web Intelligence 中使用函数、公式和计算如果要在没有拆分的块中按年显示最低收入,应该怎么做?此时您可以 在公式中指定输出上下文。在此情况下,该公式类似于: Min ([Revenue]) In ([Year]) 即,输出上下文出现在您为其指定输出上下文的函数的括号之后。在此 情况下,输出上下文指示 Web Intelligence 按年度计算最低收入。 如果在块中额外添加一列(该列包含此公式),结果将如下所示: 默认计算上下文21您可以看到“年度最低收入”列包含前一个报表的拆分页脚中出现的最 低收入。 请注意,此示例中未指定输入上下文,因为它是块的默认上下文(Year、 Quarter)。换句话说,输出上下文指示 Web Intelligence 输出每年哪些 季度的收入。明确指定了输入和输出上下文的完整公式类似于: Min ([Sales Revenue] In([Year];[Quarter])) In ([Year]) 具体而言,此公式指示 Web Intelligence“按年度和季度计算收入, 然后输出每年收入最少的那个季度的收入值”。 如果不在“年度最低收入”列中指定输出上下文,将会发生什么情况? 在此情况下,这些数字将与“Sales Revenue(销售收入)”列中的数字相 同。为什么?请记住,块中的默认上下文包括该块中的维。按年度和季度 的最低收入与按年度和季度的收入相同,原因是每个年度/季度组合只有一 个收入值。3.2 默认计算上下文取决于将度量或公式放在何处,Web Intelligence 会为度量分配一个默 认计算上下文。 度量在语义上是动态的。 这意味着度量返回的数字取决于与度量关联的 维。维的这种组合表示计算上下文。 22在 SAP BusinessObjetcs Web Intelligence 中使用函数、公式和计算视将度量放在何处而定,Web Intelligence 会将一个默认上下文与度量 相关联。可以用扩展语法更改此默认上下文。换句话说,可以确定用于生成 度量的维集。这就是定义计算上下文的意义所在。示例:报表中的默认上下文此示例描述一个简单报表中的度量的默认计算上下文。该报表显示客户 所产生的收入,并按年度分为几个小节。2005 总计:8000Customer Harris Jones Walsh 总计:Revenue 00 8000报表总计:8000下表列出了此报表中的度量的计算上下文:度量 报表总计 节头总计 客户总计 块尾总计 值
、 上下文 报表中所有收入的总计 Year YCustomer Year相关主题?第 18 页上的 “什么是计算上下文?” 默认计算上下文23?第 27 页上的 “使用扩展语法修改默认计算上下文”3.2.1 垂直表中的默认上下文垂直表是标准的报表表格,页眉位于顶部,页脚位于底部,数据从上到下 列出。向下表中的默认上下文如下:计算位于... 输入上下文为 输出上下文为页眉用于生成块主体的维和度 然后计算函数将返回单 量所有数据将会聚合,一值块的主体用于生成当前行的维 与输入上下文相同 和度量用于生成块主体的维和度 所有数据将会聚合,然后 量 计算函数将返回单一值页脚示例:垂直表中的默认上下文下表显示垂直表中的默认上下文: 24在 SAP BusinessObjetcs Web Intelligence 中使用函数、公式和计算3.2.2 水平表中的默认上下文水平表就像侧转的垂直表。页眉位于左侧,页脚位于右侧,数据从左到右 列出。水平表的默认上下文与垂直表的默认上下文相同。3.2.3 交叉表中的默认上下文交叉表在矩阵中显示数据,度量出现在维的交叉处。交叉表中的默认上下 文如下:计算位于... 页眉 输入上下文 输出上下文为...用于生成块主体的维和度 所有数据将会聚合,然后 量。 计算函数将返回单一值。 用于生成块主体的维和度 与输入上下文相同。 量。 用于生成块主体的维和度 所有数据将会聚合,然后 量。 计算函数将返回单一值。 用于生成当前列的维和度 所有数据将会聚合,然后 量。 计算函数将返回单一值。 用于生成当前行的维和度 所有数据将会聚合,然后 量。 计算函数将返回单一值。 与页脚相同。 所有数据将会聚合,然后 计算函数将返回单一值。 所有数据将会聚合,然后 计算函数将返回单一值。块的主体页脚垂直主体页脚水平主体页脚垂直页脚水平页脚与页脚相同。示例:交叉表中的默认上下文下面的报表显示了交叉表中的默认上下文: 默认计算上下文253.2.4 节的默认上下文节包含节头、表体和节尾。节的默认上下文如下:计算的位置 输入上下文 输出上下文表体报表中的维和度量,已被 所有数据将会聚合,然后 过滤为将数据限制为节数 计算函数将返回单一值。 据。示例:节中的默认上下文下面的报表显示了交叉表中的默认上下文: 26在 SAP BusinessObjetcs Web Intelligence 中使用函数、公式和计算3.2.5 拆分中的默认上下文拆分包含页眉、主体和页脚。拆分中的默认上下文如下:计算位于... 页眉 输入上下文 拆分的当前实例。 输出上下文为... 所有数据将会聚合,然后 计算函数将返回单一值。 所有数据将会聚合,然后 计算函数将返回单一值。页脚拆分的当前实例。 使用扩展语法修改默认计算上下文27示例:拆分中的默认上下文下面的报表显示了拆分中的默认上下文:3.3 使用扩展语法修改默认计算上下文扩展语法使用添加到公式或度量中的上下文运算符来指定公式或度量的计 算上下文。度量或公式上下文包含其输入上下文和输出上下文。3.3.1 扩展语法运算符用上下文运算符显式指定输入和输出上下文。下表列出了上下文运算符:运算符 In ForEach ForAll 说明 指定在上下文中使用的维的明确列表。 在默认上下文中添加维 从默认上下文中删除维 28在 SAP BusinessObjetcs Web Intelligence 中使用函数、公式和计算当您的默认上下文包含许多维时,ForAll 和 ForEach 运算符非常有用。 与使用 In 明确指定列表相比,使用 ForAll 和 ForEach 在上下文中添加或 减去维通常要方便一些。3.3.1.1 In 上下文运算符In 上下文运算符在上下文中明确指定维。示例:使用 In 在上下文中指定维在此示例中,有一个显示“Year(年度)”和“Sales Revenue(销售 收入)”的报表。数据提供者还包含“季度”对象,但您不在块中包含该 维,而要额外包含一列,在该列中显示每年最高的季度收入。报表类似于:通过同时检查此块和包含 Quarter 维的块,就能看出 Max Quarterly Revenue 列的值来自何处: 使用扩展语法修改默认计算上下文29“Max Quarterly Revenue(最高季度收入)”列显示每年的最高季度 收入。例如,2002 年 Q4 的收入最高,因此 Max Quarterly Revenue 在 年份为 2002 的行上显示 Q4 的收入。 使用 In 运算符,“Max Quarterly Revenue(最高季度收入)”的公 式为 Max ([Sales Revenue] In ([Year];[Quarter])) In ([Year]) 此公式指示 Web Intelligence 计算每个(Year、Quarter)组合的最 高销售收入,然后按年输出该数字。注意: 因为该块的默认输出上下文是“年度”,所以不必在此公式中明确指定输出 上下文。3.3.1.2 ForEach 上下文运算符ForEach 运算符在上下文中添加维。 30在 SAP BusinessObjetcs Web Intelligence 中使用函数、公式和计算示例:使用 ForEach 在上下文中添加维下表显示某报表中每个 Quarter 的最高收入,该报表包含 Quarter 维,但此维未包含在块中:Year 03 Sales revenue
Max Quarterly Revenue
可以为 Max Quarterly Revenue 列创建一个不包含 ForEach 运算符的 公式: Max ([Sales Revenue] In ([Year];[Quarter])) In ([Year]) 通过使用 ForEach 上下文运算符,可以借助以下公式获得同样的结果: Max ([Sales Revenue] ForEach ([Quarter])) In ([Year]) 为什么?因为 Year 维是块中的默认输入上下文。通过使用 ForEach 运 算符,您可以在上下文中添加“Quarter”维,提供输入上下文 ([Year];[Quarter])。3.3.1.3 ForAll 上下文运算符ForAll 上下文运算符从上下文中删除维。示例:使用 ForAll 从上下文中删除维您有一个显示“Year”、“Quarter”和“Sales Revenue”的报表,现 在想在其中添加一列,用于显示每年的总收入,如下面的块中所示: 使用扩展语法修改默认计算上下文31要按年计算总收入,输入上下文需要为 (Year);它默认为 (Y Quarter)。因此,您可以在公式中指定 ForAll ([季度]),从输入上下文 中删除“季度”,该公式类似于: Sum([Sales Revenue] ForAll ([Quarter])) 请注意,您可以使用 In 运算符得到相同的结果;在此情况下,该公式 为: Sum([Sales Revenue] In ([Year])) 该公式的这一版本将“Year”明确指定为上下文,而不是删除 “Quarter”,保留“Year”。3.3.2 Web Intelligence 扩展语法关键字扩展语法关键字是一种缩略表示形式,它允许用户在扩展语法中引用维, 而不必明确指定这些维。这有助于延长报表的有效使用时间;如果公式中没 有对维的硬编码引用,即使在报表中添加或删除维,这些公式也将继续起作 用。 共有五个扩展语法关键字:Report、Section、Break、Block 和 Body。3.3.2.1 Report 关键字下表说明 Report 关键字在位于报表中的不同位置时引用的不同数据: 32在 SAP BusinessObjetcs Web Intelligence 中使用函数、公式和计算当置于... 一个块 块分隔符(页眉或页脚) 节(页眉、页脚或在块外部) 在任何块或节的外部引用此数据... 报表中的所有数据 报表中的所有数据 报表中的所有数据 报表中的所有数据示例:Report 关键字您有一个显示“Year”、“Quarter”和“Sales Revenue”的报表。该 报表有一个“报告总计”列,它显示报表中所有收入的总和。Report Total 列的公式为 Sum([Sales revenue]) In Report。如果没 有 Report 关键字,该列将复制“Sales Revenue”列中的数字,因为它将 使用默认输出上下文([Year];[Quarter])。3.3.2.2 Section 关键字下表说明 Section 关键字在位于报表中的不同位置时引用的不同数据:当置于... 一个块 引用此数据... 节中的所有数据 使用扩展语法修改默认计算上下文33当置于... 块分隔符(页眉或页脚) 节(页眉、页脚或在块外部) 在任何块或节的外部引用此数据... 节中的所有数据 节中的所有数据 不适用示例:Section 关键字您有一个显示“Year”、“Quarter”和“Sales Revenue”的报表。报表包含一个基于“年度”的节。“Section Total”列具有如下公式: Sum ([Sales Revenue]) In Section “Section Total(节总计)”列中的数字是 2001 年的总收入,因为 节拆分出现在“Year”对象上。如果没有 Section 关键字,该列将复制 “Sales Revenue”列中的数字,因为它将使用默认输出上下文 ([Year];[Quarter])。3.3.2.3 Break 关键字下表说明 Break 关键字在位于报表中的不同位置时引用的不同维:当置于... 一个块 块分隔符(页眉或页脚) 节(页眉、页脚或在块外部) 引用此数据... 由拆分分隔的块部分中的数据 由拆分分隔的块部分中的数据 不适用 34在 SAP BusinessObjetcs Web Intelligence 中使用函数、公式和计算当置于... 在任何块或节的外部引用此数据... 不适用示例:Break 关键字您有一个显示“Year”、“Quarter”和“Sales Revenue”的报表。该报表在“Year”上拆分。Break Total 列具有如下公式: Sum ([Sales Revenue]) In Break 如果没有 Break 关键字,该列将复制“Sales Revenue”列中的数字, 因为它将使用默认输出上下文([Year];[Quarter])。3.3.2.4 Block 关键字下表说明了 Block 关键字根据它在报表中的位置引用的维:Block 关键 字包含的数据通常与 Section 关键字包含的数据相同。不同之处是:Block 解释块上的过滤器,而 Section 忽略过滤器。当置于... 一个块 引用此数据... 整个块中的数据(忽略拆分,考虑过滤 器) 整个块中的数据(忽略拆分,考虑过滤 器) 不适用 不适用块分隔符(页眉或页脚) 节(页眉、页脚或在块外部) 在任何块或节的外部 使用扩展语法修改默认计算上下文35示例:Block 关键字您有一个显示“Year”、“Quarter”和“Sales Revenue”的报表。报 表包含一个基于“年度”的节。已对块进行过滤,将第三和第四季度排除 在外。“年平均收入”列具有如下公式 Average([Sales revenue] In Section) 并且“上半年平均收入”列具有如下公式 Average ([Sales revenue]) In Block 您可以看到 Block 关键字如何考虑块上的过滤器。3.3.2.5 Body 关键字下表说明 Body 关键字在位于报表中的不同位置时引用的不同维: 36在 SAP BusinessObjetcs Web Intelligence 中使用函数、公式和计算当置于... 一个块 块分隔符(页眉或页脚) 节(页眉、页脚或在块外部) 在任何块或节的外部引用此数据... 块中的数据 块中的数据 节中的数据 报表中的数据示例:Body 关键字您有一个显示“Year”、“Quarter”和“Sales Revenue”的报表, “Year”上有一个拆分。该报表有一个基于“Year”的节,而且在 “Quarter”上有一个拆分。Year 2001 Quarter Q1 Q2 Q3 Q4 2001 Sales revenue 2,660,700 2,279,003 1,367,841 1,788,580 8,096,123.6 Body 2,660,699.5 2,279,003 1,367,840.7 1,788,580.4Body 列具有如下公式 Sum ([Sales Revenue]) In Body Body(表体) 列中的总和与“Sales Revenue”列中的总和相同,因为 Body 关键字引用块中的数据。如果删除“Month”对象,Block 列中的数 字将会更改,以便与“Sales Revenue”列中更改后的数字对应。如果将公 式放在报表页脚中,它将返回块的总收入。3.3.2.6 使用关键字使报表具有通用性扩展语法关键字有助于延长报表的有效使用时间,使报表不会因更改而失 效。如果明确引用数据(通过使用 In、ForEach 或 ForAll 指定维),那么 在添加或删除维后,报表可能返回意外数据。下面举例说明这一点。 使用扩展语法修改默认计算上下文37示例:使用 Report 关键字显示百分比在此示例中,将有一个包含“Year(年度)”、“Quarter(季度)” 和“Sales Revenue(销售收入)”对象的块。您想按年和季度显示收入, 并且显示各季度收入占整个报表总收入的百分比,如下所示:“Percentage of Total”(占总数的百分比)列的公式为: ([Sales revenue]/(Sum([Sales revenue]) In Report)) * 100 Report 在块中包含报表的所有数据,因此该公式可以写为: ([Sales revenue]/Sum([Sales revenue] ForAll ([Year];[Quarter]))) * 100 公式指示 Web Intelligence 从输出上下文中删除“Year”和 “Quarter”;换言之,也就是计算总计,因为报表中没有其他维。该公式 用总和除以每个收入值,即可得出各值占总和的百分比。 在此情况下,虽然可以使用 ForAll,但最好使用 Report 关键字。为 什么?如何随后将“Month”维添加到报表中,将会出现什么情况?使用 Report 关键字的公式仍能正确计算每个百分比,但明确指定“Year”和 “Quarter”维的公式计算结果不正确: 38在 SAP BusinessObjetcs Web Intelligence 中使用函数、公式和计算为什么会这样?问题在于: Sum ([Sales Revenue] ForAll ([Year];[Quarter)) 使用扩展语法修改默认计算上下文39当报表中只有“Year”和“Quarter”维时,它等同于“所有收入的总 和”。添加“Month”维后,该表达式从默认输出上下文中删除“Year”和 “Quarter”,只留下“Month”。 现在该公式在月份上有一个“拆分”。也就是说,对于“Month”为 1 的每一行,该表达式现在表示的是“各年一月份的总收入”。对于“Month” 为 2 的每一行,表示的是“各年二月份的总收入”。因此,这些百分比并 不是预期的百分比。 第 4 章 使用智能度量计算值4.1 定义的智能度量智能度量是指其值由 Web Intelligence Universe 所基于的(关系或 OLAP)数据库来计算(而不是由 Web Intelligence 自己来计算)的度量。 如果采用 Web Intelligence 不支持的方式来聚合某度量的数据,则该度量 在 Universe 中被定义为智能度量。 为了返回智能度量值,Web Intelligence 将生成一个查询,以在报表中 所需的所有计算上下文中计算度量。编辑报表时,这些上下文可能会发生更 改。因此,Web Intelligence 在所需上下文发生更改之后每次刷新数据时将 修改查询。 智能度量的行为方式不同于经典度量的行为方式,经典度量支持一组基本 的聚合函数(Max、Min、Count、Sum 和 Average),Web Intelligence 可 以在所有上下文中计算这些函数,而不需要数据库提供帮助。例如,如果生 成一个包含 [Country] 和 [Region] 维以及 [Revenue] 度量(用于计算收 入总和)的查询,则 Web Intelligence 最初将显示块中的“Country”、 “Region”和“Revenue”。如果后来从块中删除了“Region”,则 Web Intelligence 通过汇总国家/地区中所有区域的收入,仍然可以计算每个国 家/地区的总收入。 计算上下文由 Web Intelligence 生成的查询中的分组集来表示。4.2 分组集和智能度量分组集是一组生成度量结果的维。当 Web Intelligence 返回智能度量数 据时,所生成的 SQL 包含报表中所包括的该维所有聚合的分组集。示例:查询中的分组集查询包含 [Country]、[Region] 和 [City] 维以及 [Revenue] 智能度 量。这些对象隐含以下分组集,以在所有可能的上下文中计算收入: ? 总的智能度量值 ? 按(Country、Region、City)列出的智能度量值 分组集和智能度量41? ? ? ? ? ?按(Country、City)列出的智能度量值 按(City)列出的智能度量值 按(Region、City)列出的智能度量值 按(Region)列出的智能度量值 按(Country、Region)列出的智能度量值 按(Country)列出的智能度量值Web Intelligence 通过在查询中使用 UNION 运算符来检索分组集。如 果数据库不支持 UNION,则 Web Intelligence 自己会执行并集运算。 Web Intelligence 根据报表所需的计算上下文来更新分组集,报表可 能会发生更改以响应报表结构更改。4.2.1 Web Intelligence 如何管理分组集在首次生成和运行包括智能度量的查询时,Web Intelligence 包括在查 询对象所隐含的最详细级别计算智能度量所需的分组集。Web Intelligence 始终在查询 SQL 中包括此分组集。 例如,如果生成一个包含 [Country]、[Region] 和 [City] 维以及 [Revenue] 智能度量的查询,则 Web Intelligence 将在生成的 SQL 中包括 (Country、Region、City)分组集。此分组集始终出现在 SQL 中。Web Intelligence 将会添加和删除其他分组集以响应在报表中所做的更改。 如果从块中删除 [City] 维,则 Web Intelligence 需要(Country、 Region)分组集,以便返回收入值。此分组集在查询 SQL 中尚不可用,因此 Web Intelligence 会在 [Revenue] 单元格中显示 #TOREFRESH。刷新数据 后,Web Intelligence 可以将 #TOREFRESH 替换成收入值。 如果后来在块中替换了 [City] 维,则不再需要(Country、Region)分 组集。下次刷新数据时,Web Intelligence 将从查询 SQL 中删除此分组集 并丢弃其值。 每次刷新报表数据时,Web Intelligence 都将更新查询 SQL 以根据报表 所需的计算上下文添加或丢弃分组集。 在某些情况下,Web Intelligence 无法显示智能度量的值。在本例中, Web Intelligence 在度量单元格中显示 #UNAVAILABLE。 42在 SAP BusinessObjetcs Web Intelligence 中使用函数、公式和计算4.3 智能度量和分析范围在生成包含分析范围的查询时,Web Intelligence 将生成一个原始的分 组集,该分组集包含结果对象,但不包含范围对象。Web Itelligence 未通 过结果对象和范围对象的组合来生成所有可能的分组集。示例:带分析范围的查询和智能度量查询具有结果对象 [Country] 和 [Revenue]。分析范围包含 [Region] 和 [City] 维。运行查询时,Web Intelligence 将检索(Country)分组 集并显示块中的 [Country] 和 [Revenue]。4.4 智能度量和 SQL4.4.1 分组集和 UNION 运算符有些数据库支持明确带 GROUPING SETS 运算符的分组集。 Web Intelligence 使用多个结果集和 UNION 运算符来模拟 GROUPING SETS 运算 符的效果。示例:用 UNION 运算符检索的分组集此示例描述了一个包含 [Country]、[Region] 和 [City] 维以及 [Revenue] 智能度量的查询。注意: 为简单起见,此智能度量计算了一个总和。实际上,此聚合不需要智能度 量,因为 Web Intelligence Universe 支持 Sum 函数。首次运行此查询时,分组集为(Country、Region、City)。完整的 SQL 查询将返回此分组集,SQL 中不需要 UNION 运算符。 如果从表中删除 [City] 维,则 Web Intelligence 需要(Country、 Region)分组集来显示收入(此收入显示为 #TOREFRESH)。刷新数据之 后,SQL 如下所示: SELECT SELECT 0 AS GID, 智能度量和 SQL43country.country_name, region.region_name, NULL, sum(city.revenue) FROM country, region, city WHERE ( country.country_id=region.country_id AND ( region.region_id=city.region_id GROUP BY country.country_name, region.region_name UNION SELECT 1 AS GID, country.country_name, region.region_name, city.city_name, sum(city.revenue) FROM country, region, city WHERE ( country.country_id=region.country_id AND ( region.region_id=city.region_id GROUP BY country.country_name, region.region_name, city.city_name) )) )每个分组集都由一个 SELECT 语句来表示,并且都具有自己的 ID(GID 列)。不包含完整维集的分组集包括空列(SELECT ''),因为包括 UNION 的查询中的每个 SELECT 语句都必须具有相同的列数。 如果将包含 [Country] 和 [Revenue] 的新块添加到报表中,则 Web Intelligence 需要(Country)分组集。生成的 SQL 现在包括如下三个分 组集: SELECT 0 AS GID, country.country_name, region.region_name, NULL, 44在 SAP BusinessObjetcs Web Intelligence 中使用函数、公式和计算sum(city.revenue) FROM country, region, city WHERE ( country.country_id=region.country_id AND ( region.region_id=city.region_id GROUP BY country.country_name, region.region_name UNION SELECT 1 AS GID, country.country_name, NULL, NULL, sum(city.revenue) FROM country, city, region WHERE ( country.country_id=region.country_id AND ( region.region_id=city.region_id GROUP BY country.country_name UNION SELECT 2 AS GID, country.country_name, region.region_name, city.city_name, sum(city.revenue) FROM country, region, city WHERE ( country.country_id=region.country_id AND ( region.region_id=city.region_id GROUP BY country.country_name, region.region_name, city.city_name) )) )) ) 智能度量和公式454.5 智能度量和公式4.5.1 智能度量和包含公式的维如果公式或变量以维的形式出现在智能度量计算上下文中,并且该公式决 定度量所需的分组集,则 Web Intelligence 无法显示智能度量的值。在此 情况下,Web Intelligence 无法从公式中推导出此分组集。 例如,报表包含一个变量 Semester,并且在块中放置了 If [Quarter] = &Q1& or [Quarter] = &Q2& Then &H1& Else &H2& 公式,则 Semester 变量将返回以下结果:Semester H1 H2 Revenue #UNAVAILABLE #UNAVAILABLE4.5.2 公式中的智能度量当公式中包括智能度量时,甚至当公式所需的计算上下文不同于公式位置 中所隐含的上下文时,Web Intelligence 可以返回智能度量的值。 例如,报表包含的块如下所示:Country US US US US Region North South East West Revenue
46在 SAP BusinessObjetcs Web Intelligence 中使用函数、公式和计算如果在表中另外添加了一个包含以下公式的列 [Revenue] ForAll ([Region]) Web Intelligence 最初将返回 #TOREFRESH,因为公式需要分组集 (Country)。(该公式将从计算中排除区域。)刷新数据时,Web Intelligence 会向查询中添加(Country)分组集并显示度量值。4.6 智能度量和过滤器4.6.1 智能度量和维过滤器如果对智能度量值所取决于的维应用了过滤器,但该维未显式出现在度量 的计算上下文中,则 Web Intelligence 无法返回智能度量的值并且会显示 #UNAVAILABLE。 之所以会出现这种情况,是因为 Web Intelligence 无法估算过滤器对度 量值所造成的影响。了解过滤器所造成的影响的唯一方法是对查询应用过滤 器。这样做的危险是可能会影响基于相同查询的其他报表。因此,Web Intelligence 未在查询级别应用过滤器。示例:智能度量和维过滤器查询包含 [Country] 和 [Region] 维以及 [Revenue] 智能度量。 [Country] 和 [Revenue] 显示在块中。如果应用一个将 [Region] 值局限 于“South East”或“South West”的报表过滤器,则 Web Intelligence 将在 [Revenue] 单元格中显示 #UNAVAILABLE。4.6.2 智能度量和钻取过滤器通常,如果对影响度量计算的维应用过滤器,则 Web Intelligence 无法 返回智能度量的值。钻取过滤器过滤的维是这条规则的例外情况。示例:影响智能度量的钻取过滤器块包含 [Country] 和 [Revenue] 对象。您在 [Country] 上钻取,Web Intelligence 显示块中的 [Region] 和 [Revenue],并将 [Country] 上 的过滤器移动到钻取工具栏。 智能度量和过滤器47为此,Web Intelligence 会将(Country、Region)分组集添加到查询 中,并检索其所有数据,然后过滤此数据以仅显示钻取的国家/地区中所包 含的那些区域。Web Intelligence 无需在查询级别添加过滤器,便可根据 区域所属的国家/地区过滤区域。4.6.3 智能度量及嵌套 OR 过滤器如果嵌套 OR 过滤器中至少有一个被过滤维没有出现在块中,将会为该块 内智能度量生成 #UNAVAILBLE 错误。示例:? 对于在 [Country] 没有出现在块中时使用 [Country] 维的智能度 量,过滤器 [Country] = &US& OR [Country] = &France& 会为其生成 #UNAVAILABLE。 ? 对于在 [Country] 或 [Year] 没有出现在块中时使用 [Country] 或 [Year] 维的智能度量,过滤器 [Country] = &US& OR [Year] = 2008 会为其生成 #UNAVAILABLE。 第 5 章 Web Intelligence 函数、运算 符和关键字5.1 Web Intelligence 函数Web Intelligence 将函数分为以下类别:类别 聚合 字符 日期和时间 文档 数据提供者 逻辑 数值 其他 说明 聚合数据(例如,通过对一组值求和或 求平均值) 处理字符串 返回日期或时间数据 返回有关文档的数据 返回有关文档数据提供者的数据 返回 True 或 False 返回数字数据 不属上述任何类别的函数5.1.1 聚合函数5.1.1.1 Average说明返回度量的平均值 Web Intelligence 函数49函数组聚合语法num Average(measure[;IncludeEmpty])输入 参数 measure IncludeEmpty 说明 任何度量 类型 度量 必需 是在计算中包括空行 关键字否 (默认情况下排 除空行)注意? Average 可以与扩展语法上下文运算符结合使用。 ? 可以指定 IncludeEmpty 作为函数的第二个参数。在指定此参数时, 函数将在计算中考虑空白(空)行。示例如果 [Sales Revenue] 度量包含值 4、40000 和 50138, Average([Sales Revenue]) 将返回 40552。相关主题?第 180 页上的 “IncludeEmpty 运算符”5.1.1.2 Count说明返回维或度量中的值个数。 50在 SAP BusinessObjetcs Web Intelligence 中使用函数、公式和计算函数组聚合语法integer Count(dimension|measure[;IncludeEmpty][;Distinct|All])输入 参数 dimension|measure IncludeEmpty Distinct|All 说明 任何维或度量 在计算中包括空值 类型 维或度量 关键字 必需 是 否 否在计算中仅包括非重复 关键字 值(维的默认值)或包 括所有值(度量的默认 值)注意? Count 可以与扩展语法上下文运算符结合使用。 ? 可以指定 IncludeEmpty 作为函数的第二个参数。在指定此参数时,函数 将在计算中考虑空白(空)行。 ? Distinct/All 参数是可选的。如果未指定此参数,则维的默认值是 Dis tinct,度量的默认值是 All。示例Count(&Test&) 返回 1 如果城市列表中共有 5 个不同城市,即使该列表中的行数因重复而超过 5,Count([City];Distinct) 也返回 5。 如果城市列表中有 10 个城市,即使有些项目重复,Count([City];All) 也返回 10。 如果城市列表中有 5 个城市和一个空行,Count ([City];IncludeEmpty) 将返回 6。 Web Intelligence 函数51相关主题? ?第 180 页上的 “IncludeEmpty 运算符” 第 180 页上的 “Distinct/All 运算符”5.1.1.3 First说明返回数据值中的第一个值函数组聚合语法input_type First(dimension|measure)输入 参数 dimension|measure 说明 任何维或度量 类型 维或度量 必需 是注意? 置于分页页脚时,First 会返回分页中的第一个值。 ? 置于节尾时,First 会返回节中的第一个值。示例置于表尾时,First([Revenue]) 会返回表中 [Revenue] 的第一个值。5.1.1.4 Interpolation说明Interpolation 用于计算空度量值。 52在 SAP BusinessObjetcs Web Intelligence 中使用函数、公式和计算函数组数值语法num Interpolation(measure[;PointToPoint|Linear][;NotOn Break][;Row|Col])输入 参数 measure 说明 任何度量 类型 度量 必需 是PointTo关键字 插值法: Point|Lin? PointToPoint - 点到点插值 ear ? Linear - 带最小二乘插值的线 性回归 NotOnBreak 避免函数在块和节拆分上重置计算 关键字 Row|Col 设置计算方向 关键字否 (PointTo Point 是默认 值)否 否注意? 在包含缺少值的度量中创建折线图时,Interpolation 尤其有用。使用此 函数,可以确保统计图绘制连续的线条,而不是间断的线和点。 ? 带最小二乘插值的线性回归通过计算用于传递最可能接近的所有可用度量 值的 f(x) = ax + b 线性等式来计算缺少值。 ? 点到点插值方法通过计算用于传递缺少值的两个临近值的 f(x) = ax + b 线性等式来计算缺少值。 ? 度量的排序顺序会影响 Interpolation 返回的值。 ? 用户不能对包含 Interpolation 的公式应用排序或排名。 ? 如果值列表中仅有一个值,Interpolation 会使用该值来提供所有缺少 值。 ? 应用到插值度量的过滤器可以更改 Interpolation 返回的值,具体取决 于过滤器所影响的值。 Web Intelligence 函数53示例Interpolation([Value])使用默认点到点插值方法提供以下缺少值:星期日期 星期一 星期二 星期三 星期四 星期五 星期六 星期日 19 16 值 12 14 Interpolation([Value]) 12 14 15 16 17 18 19相关主题? ?第 181 页上的 “Linear 运算符” 第 182 页上的 “PointToPoint 运算符”5.1.1.5 Last说明返回维或度量中的最后一个值函数组聚合语法input_type Last(dimension|measure) 54在 SAP BusinessObjetcs Web Intelligence 中使用函数、公式和计算输入 参数 dimension|measure 说明 任何维或度量 类型 维或度量 必需 是注意? 置于拆分页脚时,Last 会返回拆分中的最后一个值。 ? 置于节头时,Last 会返回节中的最后一个值。示例置于表尾时,First([Revenue]) 会返回表中 [Revenue] 的第一个值。5.1.1.6 Max说明返回维或度量中的最大值函数组聚合语法input_type Max(dimension|measure)输入 参数 dimension|measure 说明 任何维或度量 类型 维或度量 必需 是注意Max 可以与扩展语法上下文运算符结合使用。 Web Intelligence 函数55示例如果 Sales Revenue 度量包含值
和 901234,则 Max([Sales Revenue]) 返回 901234。 如果 City 维包含值“Aberdeen”和“London”,则 Max ([City]) 返回 “London”。5.1.1.7 Median说明返回度量的中值(中间值)函数组聚合语法num Median(measure)输入 参数 measure 说明 任何度量 类型 度量 必需 是注意如果这组数具有偶数个数值,Median 将返回中间两个值的平均值。示例如果 [Revenue] 具有值 1444 和 1479660,Median([Revenue]) 将返回 971,444。5.1.1.8 Min说明返回维或度量中的最小值 56在 SAP BusinessObjetcs Web Intelligence 中使用函数、公式和计算函数组聚合语法any_type Min(dimension|measure)输入 参数 dimension|measure 说明 任何维或度量 类型 维或度量 必需 是注意Min 可以与扩展语法上下文运算符结合使用。示例如果 Sales Revenue 度量包含值
和 901234,Min([Sales Revenue]) 将返回 3000。 如果 City 维包含值 Aberdeen 和 London,Min([City]) 将返回 “Aberdeen”。5.1.1.9 Mode说明返回数据集中最常出现的值函数组聚合语法input_type Mode(dimension|measure) Web Intelligence 函数57输入 参数 dimension|measure 说明 任何维或度量 类型 度量 必需 是注意? 如果数据值中没有比所有其他值更频繁出现的值,Mode 将返回空值。示例如果 [Revenue] 具有值 100、200、300、200,Mode([Revenue]) 将返回 200。 Mode([Country]) 将返回出现最频繁的 [Country] 值。5.1.1.10 Percentage说明将度量值以嵌入上下文的百分比表示函数组聚合语法num Percentage(measure[;Break][;Row|Col]) 58在 SAP BusinessObjetcs Web Intelligence 中使用函数、公式和计算输入 参数 measure Break Row|Col 说明 任何度量 解释表拆分 设置计算方向 类型 度量 关键字 关键字 必需 是 否 否示例下表中的“百分比”列包含公式 Percentage ([Sales Revenue])Year 03 Sum: Sales Revenue 00 10000 Percentage 10 50 40 100默认情况下,嵌入上下文是表中的度量总计。您可以使用可选的 Break 参数,让该函数考虑表中的拆分。在此情况下,默认的嵌入上下文变为表节。 下表中“Percentage”(百分比)列包含公式 Percentage([Sales Rev enue];Break)Year 2001 Quarter Q1 Q2 Q3 Q4 2001 Sum: Sales Revenue 00
Percentage 10 20 50 20 100 Web Intelligence 函数59Year 2002Quarter Q1 Q2 Q3 Q4Sales Revenue 00 Percentage 20 20 50 10 1002002Sum:可以跨列或行使用 Percentage 函数;可以使用可选的 Row|Col 参数明 确指定这种用法。例如,以下交叉表中的“Percentage”(百分比)列包含 公式 Percentage ([Sales Revenue];Row)。Q1 Per cent age 10 20 Q2 Per cent age 20 20 Q3 Per cent age 50 50 Q4 Per cent age 20 105.1.1.11 Percentile说明返回度量的第 n 个百分值函数组数值语法num Percentile(percentile) 60在 SAP BusinessObjetcs Web Intelligence 中使用函数、公式和计算输入 参数 measure percentile 说明 任何度量 类型 度量 必需 是 是以小数形式表示的 数字 百分值注意第 n 个百分值是大于或等于这个组中数字的 n% 的一个数。可以用 0.n 的形式表示 n%。示例如果 [measure] 有一组数字 (10;20;30;40;50),Percentile([mea sure];0.3) 将返回 22,22 大于或等于这个组中数字的 30%。5.1.1.12 产品说明将多个度量值相乘函数组聚合语法num Product(measure)输入 参数 measure 说明 任何度量 类型 度量 必需 是示例如果 [Measure] 具有值 2、3、5,Product([Measure]) 将返回 30。 Web Intelligence 函数615.1.1.13 RunningAverage说明返回度量的运行平均值函数组聚合语法num RunningAverage(measure[;Row|Col][;IncludeEmpty][;reset_dims])输入 参数 measure Row|Col IncludeEmpty reset_dims 说明 任何度量 设置计算方向 类型 度量 关键字 必需 是 否 否 否在计算中包括空值 关键字 重置指定维上的计 维列表 算注意? RunningAverage 可以与扩展语法上下文运算符结合使用。 ? 可以使用 Row 和 Col 运算符设置计算方向。 ? 如果对 RunningAverage 所引用的度量进行排序,Web Intelligence 将 首先对度量进行排序,然后计算运行平均值。 ? 即使在重置维列表中只有一个维,仍必须始终将维放在圆括号中。 ? 指定一组重置维时,必须用分号将维分开。 ? 在块拆分或新节后,RunningAverage 不会自动重置平均值。示例在下表中 RunningAverage([Revenue]) 返回以下结果:Country Resort Revenue Running Average 62在 SAP BusinessObjetcs Web Intelligence 中使用函数、公式和计算US US FranceHawaiian Club Bahamas Beach French Riviera1,479,660 971,444 835,420835,420 1,225,552 1,095,508在下表中,RunningAverage([Revenue];([Country])) 返回以下结果:Country US US France Resort Hawaiian Club Bahamas Beach French Riviera Revenue 1,479,660 971,444 835,420 Running Average 835,420 1,225,552 835,420相关主题? ?第 180 页上的 “IncludeEmpty 运算符” 第 182 页上的 “Row/Col 运算符”5.1.1.14 RunningCount说明返回数字集的运行计数函数组聚合语法num RunningCount(dimension|measure[;Row|Col][;IncludeEmpty][;re set_dims]) Web Intelligence 函数63输入 参数 dimension|measure Row|Col IncludeEmpty reset_dims 说明 任何维或度量 设置计算方向 类型 维或度量 关键字 必需 是 否 否 否在计算中包括空值 关键字 重置指定维上的计 维列表 算注意? RunningCount 可以与扩展语法上下文运算符结合使用。 ? 可以使用 Row 和 Col 运算符设置计算方向。 ? 如果对 RunningCount 所引用的度量进行排序,Web Intelligence 将首 先对度量进行排序,然后计算运行计数。 ? 即使在重置维列表中只有一个维,仍必须始终将维放在圆括号中。 ? 指定一组重置维时,必须用分号将维分开。 ? 在块拆分或新节后,RunningCount 不会自动重置计数。示例在下表中,RunningCount([Revenue]) 返回以下结果:Country US US France Resort Hawaiian Club Bahamas Beach French Riviera Revenue 1,479,660 971,444 835,420 Running Count 1 2 3在下表中,RunningCount([Revenue];([Country])) 返回以下结果: 64在 SAP BusinessObjetcs Web Intelligence 中使用函数、公式和计算Country US US France 相关主题Resort Hawaiian Club Bahamas Beach French RivieraRevenue 1,479,660 971,444 835,420Running Count 1 2 1? ? ? ?第 第 第 第180 182 180 180页上的 “IncludeEmpty 运算符” 页上的 “Row/Col 运算符” 页上的 “IncludeEmpty 运算符” 页上的 “IncludeEmpty 运算符”5.1.1.15 RunningMax说明返回维或度量的运行最大值函数组聚合语法input_type RunningMax(dimension|measure[;Row|Col][;reset_dims]) Web Intelligence 函数65输入 参数 dimension|measure Row|Col reset_dims 说明 任何维或度量 设置计算方向 类型 维或度量 关键字 必需 是 否 否重置指定维上的计 维列表 算注意? RunningMax 可以与扩展语法上下文运算符结合使用。 ? 可以使用 Row 和 Col 运算符设置计算方向。 ? 如果对 RunningMax 所引用的度量进行排序,Web Intelligence 将首先 对度量进行排序,然后计算运行最大值。 ? 即使在重置维列表中只有一个维,仍必须始终将维放在圆括号中。 ? 指定一组重置维时,必须用分号将维分开。 ? 在块拆分或新节后,RunningMax 不会自动重置最大值。示例在下表中,RunningMax([Revenue]) 返回以下结果:Country France US US Resort French Riviera Bahamas Beach Hawaiian Club Revenue 835,420 971,444 1,479,660 Running Max 835,420 971,444 1,479,660相关主题? ?第 180 页上的 “IncludeEmpty 运算符” 第 182 页上的 “Row/Col 运算符” 66在 SAP BusinessObjetcs Web Intelligence 中使用函数、公式和计算5.1.1.16 RunningMin说明返回维或度量的运行最小值函数组聚合语法input_type RunningMin(dimension|[Row|Col];[reset_dims])输入 参数 dimension|detail|measure Row|Col reset_dims 说明 任何维或度量 设置计算方向 类型 维或度量 关键字 必需 是 否 否重置指定维上的计 维列表 算注意? RunningMin 可以与扩展语法上下文运算符结合使用。 ? 可以使用 Row 和 Col 运算符设置计算方向。 ? 如果对 RunningMin 所引用的度量进行排序,Web Intelligence 将首先 对度量进行排序,然后计算运行最小值。 ? 即使在重置维列表中只有一个维,仍必须始终将维放在圆括号中。 ? 指定一组重置维时,必须用分号将维分开。 ? 在块拆分或新节后,RunningMin 不会自动重置最小值。示例在下表中,RunningMin([Revenue]) 返回以下结果:Country Resort Revenue Running Max Web Intelligence 函数67France US USFrench Riviera Bahamas Beach Hawaiian Club835,420 971,444 1,479,660835,420 835,420 835,420相关主题? ?第 180 页上的 “IncludeEmpty 运算符” 第 182 页上的 “Row/Col 运算符”5.1.1.17 RunningProduct说明返回度量的运行乘积函数组聚合语法num RunningProduct(measure[;Row|Col][;reset_dims])输入 参数 measure Row|Col reset_dims 说明 任何度量 设置计算方向 类型 度量 关键字 必需 是 否 否重置指定维上的计 维列表 算注意? RunningProduct 可以与扩展语法上下文运算符结合使用。 ? 可以使用 Row 和 Col 运算符设置计算方向。 68在 SAP BusinessObjetcs Web Intelligence 中使用函数、公式和计算? 如果对 RunningProduct 所引用的度量进行排序,Web Intelligence 将 首先对度量进行排序,然后计算运行乘积。 ? 即使在重置维列表中只有一个维,仍必须始终将维放在圆括号中。 ? 指定一组重置维时,必须用分号将维分开。 ? 在块拆分或新节后,RunningProduct 不会自动重置乘积。示例在下表中,RunningProduct([Number of guests]) 返回以下结果:Country of origin Japan Japan US City Number of guests Running ProductKobe Osaka Chicago6 4 2416 24 5,784在下表中,RunningProduct([Number of guests];([Country of origin])) 返回以下结果:Country of origin Japan Japan US City Number of guests Running ProductKobe Osaka Chicago6 4 2416 24 5784相关主题? ?第 180 页上的 “IncludeEmpty 运算符” 第 182 页上的 “Row/Col 运算符” Web Intelligence 函数695.1.1.18 RunningSum说明返回度量的运行总和函数组聚合语法num RunningSum(measure[;Row|Col][;reset_dims])输入 参数 measure Row|Col reset_dims 说明 任何度量 设置计算方向 类型 度量 关键字 必需 是 否 否重置指定维上的计 维列表 算注意? RunningSum 可以与扩展语法上下文运算符结合使用。 ? 可以使用 Row 和 Col 运算符设置计算方向。 ? 如果对 RunningSum 函数所引用的度量进行排序,Web Intelligence 将 首先对度量进行排序,然后计算运行总和。 ? 即使在重置维列表中只有一个维,仍必须始终将维放在圆括号中。 ? 指定一组重置维时,必须用分号将维分开。 ? 在块拆分或新节后,RunningSum 不会自动重置总和。示例在下表中,RunningSum([Revenue]) 返回以下结果:Country Resort Revenue Running Sum 70在 SAP BusinessObjetcs Web Intelligence 中使用函数、公式和计算France US USFrench Riviera Bahamas Beach Hawaiian Club835,420 971,444 1,479,660835,420 1,806,864 3,286,524在下表中,RunningSum([Revenue];([Country])) 返回以下结果:Country France US US Resort French Riviera Bahamas Beach Hawaiian Club Revenue 835,420 971,444 1,479,660 Running Sum 835,420 971,444 2,451,104相关主题? ?第 180 页上的 “IncludeEmpty 运算符” 第 182 页上的 “Row/Col 运算符”5.1.1.19 StdDev说明返回度量的标准偏差函数组聚合语法num StdDev(measure) Web Intelligence 函数71输入 参数 measure 说明 任何度量 类型 度量 必需 是注意标准偏差是一组数字中统计学散布的度量。它的计算方法如下: ? 查找这组数字的平均值 ? 用组中的每个数字减去平均值,然后对差值进行平方运算 ? 将所有这些平方差加在一起 ? 将此总和除以(组中的数字数量 - 1) ? 求出结果的平方根示例如果 measure 具有一组值(2、4、6、8),StdDev([measure]) 将返回 2.58。相关主题?第 73 页上的 “Var”5.1.1.20 StdDevP说明返回度量的总体标准偏差函数组聚合语法num StdDevP(measure) 72在 SAP BusinessObjetcs Web Intelligence 中使用函数、公式和计算输入 参数 measure 说明 任何度量 类型 度量 必需 是注意总体标准偏差是一组数字中统计学散布的度量。它的计算方法如下: ? 查找这组数字的平均值; ? 用组中的每个数字减去平均值,然后对差值进行平方运算; ? 将所有这些平方差加在一起; ? 将此总和除以(组中的数字数量); ? 查找结果的平方根。 StdDevP 可以与扩展语法上下文运算符结合使用。示例如果 measure 具有一组值(2、4、6、8),StdDevP([measure]) 将返回 2.24。5.1.1.21 Sum说明返回度量的总和函数组聚合语法num Sum(measure) Web Intelligence 函数73输入 参数 measure 说明 任何度量 类型 度量 必需 是注意Sum 可以与扩展语法上下文运算符结合使用。示例如果“销售收入”度量包含值 、4000 和 1000,Sum([销售收 入]) 将返回 10000。5.1.1.22 Var说明返回度量的方差函数组聚合语法num Var(measure)输入 参数 measure 说明 任何度量 类型 度量 必需 是注意方差是一组数字中统计学散布的度量。它的计算方法如下: ? 查找这组数字的平均值 ? 用组中的每个数字减去平均值,然后对差值进行平方运算 ? 将所有这些平方差加在一起 74在 SAP BusinessObjetcs Web Intelligence 中使用函数、公式和计算? 将此总和除以(组中的数字数量 - 1) 方差是标准偏差的平方。 Var 可以与扩展语法上下文运算符结合使用。示例如果 measure 具有一组值(2、4、6、8),Var([measure]) 将返回 6.67。相关主题?第 70 页上的 “StdDev”5.1.1.23 VarP说明返回度量的总体方差函数组聚合语法num VarP(measure)输入 参数 measure 说明 任何度量 类型 度量 必需 是注意总体方差是一组数字中统计学散布的度量。它的计算方法如下: ? 查找这组数字的平均值 ? 用组中的每个数字减去平均值,然后对差值进行平方运算 ? 将所有这些平方差加在一起 ? 将此总和除以(组中的数字数量)。 Web Intelligence 函数75总体方差是总体标准偏差的平方。 VarP 可以与扩展语法上下文运算符结合使用。示例如果 measure 具有一组值(2、4、6、8),VarP([measure]) 将返回 5。相关主题?第 71 页上的 “StdDevP”5.1.2 字符函数5.1.2.1 Asc说明返回一个字符的 ASCII 值函数组字符语法int Asc(string)输入 参数 string 说明 任何字符串 类型 字符串 必需 是注意如果 string 包含多个字符,该函数将返回字符串中首字符的 ASCII 值。示例Asc(&A&) 返回 65。 76在 SAP BusinessObjetcs Web Intelligence 中使用函数、公式和计算Asc(&ab&) 返回 97。 当 [Country] 值是“US”时,Asc([Country]) 返回 85。5.1.2.2 Char说明返回与 ASCII 代码关联的字符函数组字符语法string Char(ascii_code)输入 参数 ascii_code 说明 ASCII 代码 类型 数字 必需 是注意如果 number 是一个小数,此函数将忽略小数部分。示例s Char(123) 返回“{”。5.1.2.3 Concatenation说明拼接(连接)两个字符串函数组字符 Web Intelligence 函数77语法string Concatenation(first_second_string)输入 参数 first_string second_string 说明 第一个字符串 第二个字符串 类型 字符串 字符串 必需 是 是注意也可以使用“+”运算符拼接字符串。 &First & + &Second& 返回“First Second”。 &First & + &Second& + & Third& 返回“First Second Third”。示例Concatenation(&First &;&Second&) 返回“First Second”。 Concatenation(&First &;Concatenation(&Second &;&Third&)) 返回 “First Second Third”。5.1.2.4 Fill说明将字符串重复 n 次形成另一个字符串。函数组字符语法string Fill(repeating_num_repeats) 78在 SAP BusinessObjetcs Web Intelligence 中使用函数、公式和计算输入 参数 说明 类型 字符串 数字 必需 是 是repeating_string 要重复的字符串 num_repeats 重复次数示例Fill (&New York&;2) 返回“New York New York”。5.1.2.5 FormatDate说明按照指定的格式设置日期格式函数组字符语法string FormatDate(format_string)输入 参数 date format_string 说明 类型 必需 是 是要设置格式的日期 日期 要应用的格式 字符串注意? 输出格式取决于应用于单元格的日期格式。 ? 颜色格式字符串(例如,[红色]、[蓝色] 等)无法应用于 FormatDate。示例如果当前日期为 2005 年 12 月 15 日,FormatDate(Current Date();&dd/MM/yyyy&) 将返回“15/12/2005”。 Web Intelligence 函数795.1.2.6 FormatNumber说明按照指定的格式设置数字格式函数组字符语法string FormatNumber(format_string)输入 参数 number format_string 说明 类型 必需 是 是要设置格式的数字 数字 要应用的格式 字符串注意? 输出的格式取决于应用于单元格的数字格式。 ? 颜色格式字符串(例如,[红色]、[蓝色] 等)无法应用于 FormatNumber。示例FormatNumber([Revenue];&#,##.00&) 在 [Revenue] 为 835,420 时返回 835,420.00。5.1.2.7 HTMLEncode说明对字符串应用 HTML 编码规则函数组字符 80在 SAP BusinessObjetcs Web Intelligence 中使用函数、公式和计算语法string HTMLEncode(html)输入 参数 html 说明 HTML 字符串 类型 字符串 必需 是示例HTMLEncode(&&) 返回 “http%3A%2F%2Fwww%2Ebusinessobjects%2Ecom”。5.1.2.8 InitCap说明将字符串的首字母大写函数组字符语法string InitCap(string)输入 参数 string 说明 要大写的字符串 类型 字符串 必需 是示例InitCap(&we hold these truths to be self-evident&) 返回“We hold these truths to be self-evident”。 Web Intelligence 函数815.1.2.9 靠左说明返回字符串中最左边的字符函数组字符语法string Left(num_chars)输入 参数 string num_chars 说明 输入字符串 类型 字符串 必需 是 是从左边起返回的字 数字 符数示例Left([Country];2) 在 [Country] 为“France”时返回“Fr”。5.1.2.10 LeftPad说明在字符串左边填充另一个字符串函数组字符语法string LeftPad(padded_left_string) 82在 SAP BusinessObjetcs Web Intelligence 中使用函数、公式和计算输入 参数 padded_string length left_string 说明 原字符串 输出字符串的长度 要添加到 类型 字符串 数字 字符串 必需 是 是 是padded_string 左边的字符串注意? 如果 length 小于 left_string 和 padded_string 合并的长度,则会截 断 left_string。 ? 如果 length 小于或等于 padded_string 的长度,此函数将返回 padded_string。 ? 如果 length 大于 padded_string 和 left_string 合并的长度,则重复 或部分重复 left_string 足够的次数来填充长度。示例LeftPad(&York&;8;&New &) 返回“New York” LeftPad(&York&;6;&New &) 返回“NeYork”。 LeftPad(&York&;11;&New &) 返回“New NewYork”。 LeftPad(&New &;2;&York&) 返回“New”。5.1.2.11 LeftTrim说明修整字符串的前导空格函数组字符语法string LeftTrim(trimmed_string) Web Intelligence 函数83输入 参数 trimmed_string 说明 要修整的字符串 类型 字符串 必需 是示例LeftTrim([Country]) 在 [Country] 为“France”时返回“France”。5.1.2.12 Length说明返回字符串中的字符数函数组字符语法int Length(string)输入 参数 string 说明 输入字符串 类型 字符串 必需 是示例Length([Last Name]) 在 [Last Name] 为“Smith”时返回 5。5.1.2.13 Lower说明将字符串转换为小写 84在 SAP BusinessObjetcs Web Intelligence 中使用函数、公式和计算函数组字符语法string Lower(string)输入 参数 string 说明 类型 必需 是要转换为小写的字 字符串 符串示例Lower(&New York&) 返回“new york”。5.1.2.14 Match说明确定字符串是否与模式匹配函数组字符语法bool Match(test_pattern) Web Intelligence 函数85输入 参数 test_string pattern 说明 类型 必需 是 是要根据文本式样测 字符串 试的字符串 文本式样 字符串注意? 模式可以包含通配符“*”(替换任何字符集)或“?”替换任何单字符)。示例Match([Country];&F*&) 在 [Country] 为“France”时返回 True。 Match([Country];&?S?&) 在 [Country] 为“USA”时返回 True。 Match(&New York&;&P*&) 返回 False。5.1.2.15 Pos说明返回某个文本式样在字符串中的起始位置函数组字符语法int Pos(test_pattern) 86在 SAP BusinessObjetcs Web Intelligence 中使用函数、公式和计算输入 参数 test_string pattern 说明 类型 必需 是 是要根据文本式样测 字符串 试的字符串 文本式样 字符串注意? 如果式样不止出现一次,Pos 将返回第一次出现的位置。示例Pos(&New York&;&Ne&) 返回 1。 Pos(&New York, New York&;&Ne&) 返回 1。 Pos(&New York&; &York&) 返回 5。5.1.2.16 Replace说明将字符串的某一部分替换为其他字符串函数组字符语法string Replace(replace_replaced_replace_with) Web Intelligence 函数87输入 参数 replace_in replaced_string replace_with 说明 类型 必需 是 是 是要在其中替换文本 字符串 的字符串 要替换的文本 替换 re 字符串 字符串placed_string 的文本示例Replace(&New YORK&;&ORK&;&ork&) 返回“New York”。5.1.2.17 靠右说明返回字符串中最右边的字符函数组字符语法string Right(num_chars)输入 参数 string num_chars 说明 任何字符串 类型 字符串 必需 是 是从右边起返回的字 数字 符数示例Right([Country];2) 在 [Country] 为“France”时返回“ce”。 88在 SAP BusinessObjetcs Web Intelligence 中使用函数、公式和计算5.1.2.18 RightPad说明在字符串右边填充另一个字符串函数组字符语法string RightPad(padded_right_string)输入 参数 padded_string length right_string 说明 原字符串 输出字符串的长度 要添加到 类型 字符串 数字 字符串 必需 是 是 是padded_string 右边的字符串注意? 如果 length 小于 right_string 和 padded_string 合并的长度,则会 截断 right_string。 ? 如果 length 小于或等于 padded_string 的长度,此函数将返回 padded_string。 ? 如果 length 大于 padded_string 和 right_string 合并的长度,则重 复或部分重复 right_string 足够的次数来填充长度。示例RightPad(&New &;8;&York&) 返回“New York” RightPad(&New &; 6;&York&) 返回“New Yo” RightPad(&New &;11;&York&) 返回“New YorkYor” Web Intelligence 函数89RightPad(&New &;2;&York&) 返回“New”。5.1.2.19 RightTrim说明修整字符串的尾随空格函数组字符语法string RightTrim(trimmed_string)输入 参数 trimmed_string 说明 要修整的字符串 类型 字符串 必需 是示例RightTrim([Country]) 在 [Country] 为“France”时返回“France”。5.1.2.20 Substr说明返回字符串的一部分函数组字符语法string SubStr(length) 90在 SAP BusinessObjetcs Web Intelligence 中使用函数、公式和计算输入 参数 string start length 说明 任何字符串 类型 字符串 必需 是 是 是所提取字符串的开 数字 始位置 所提取字符串的长 数字 度示例SubStr (&Great Britain&;1;5) 返回“Great”。 SubStr (&Great Britain&;7;7) 返回“Britain”。5.1.2.21 Trim说明修整字符串的前导空格和尾随空格函数组字符语法string Trim(trimmed_string)输入 参数 string 说明 要修整的字符串 类型 字符串 必需 是示例Trim(& Great Britain &) 返回“Great Britain”。 Web Intelligence 函数915.1.2.22 Upper说明将字符串转换为大写函数组字符语法string Upper(string)输入 参数 string 说明 要转换的字符串 类型 字符串 必需 是示例Upper(&New York&) 返回“NEW YORK”。5.1.2.23 UrlEncode说明对字符串应用 URL 编码规则函数组字符语法string UrlEncode(html) 92在 SAP BusinessObjetcs Web Intelligence 中使用函数、公式和计算输入 参数 html 说明 要编码的 URL 类型 字符串 必需 是示例UrlEncode(&&) 返回 “http%3A%2F%2Fwww%2Ebusinessobjects%2Ecom”。5.1.2.24 WordCap说明将字符串中所有单词的首字母大写函数组字符语法string WordCap(string)输入 参数 string 说明 要大写的字符串 类型 字符串 必需 是示例WordCap(&Sales revenue for March&) 返回“Sales Revenue For March”。 Web Intelligence 函数935.1.3 日期和时间函数5.1.3.1 CurrentDate说明返回按照区域设置格式化的当前日期函数组日期和时间语法date CurrentDate()示例CurrentDate() 在日期为 2002 年 9 月 10 日时返回“2002 年 9 月 10 日”。5.1.3.2 CurrentTi

我要回帖

更多关于 函数返回值 的文章

 

随机推荐