在文本函数中使用 Current/Cur 关键字

您可以将 current 关键字与某些文本函数结合使用,使公式变得更为灵活、有效而简洁。current 关键字可替换文本函数中的必需参数。硬编码参数也可生成相同的结果,但 current 关键字生成的是动态值。例如,对多页网格中的 Page 参数使用 current 时,该关键字将生成每页的值。

您可以使用 current 关键字的任意一种形式:currentcurCurrent 关键字不区分大小写。

注:

只有在使用以下文本函数时,文本对象才支持 current 关键字:MemberNameMemberAliasMemberDescription,其中,current 指定“页”维参数。但是,在某些情况下必须定义网格名称、行和列,不能使用 current 关键字。

示例 1:

GetCell 函数中,有许多参数与输入函数的当前单元格相对应或可能相对应。因此,可以将 current 关键字应用于此函数。GetCell 函数使用以下语法:

<<GetCell ("GridName", Row, Column, Page)>>

在以下示例中,GetCell 的硬编码参数在多个页面中返回了相同的 Grid1、单元格 1A 和页面 1 单元格值:

<<GetCell ("Grid1", 1, A, 1)>>

下一示例将 current 关键字与 GetCell 函数结合使用。输入函数的单元格显示了每页不同的值。请注意,current 关键字还会应用于网格名称。如果网格名称发生变化,该文本公式仍然正确。

<<GetCell ("current", 1, current, current)>>

示例 2

如果在展开的单元格中使用 current 关键字,则结果与展开的单元格相对应。

以下示例在展开的单元格中使用 GetCell 函数(列 A 展开为 Qtr1、Qtr2、Qtr3 列,第 1 行展开为 East 和 West 行)。文本行 1 对 Column 参数使用了 current 关键字;文本行 2 对 Column 参数使用了硬编码值。

名称 说明
.

Qtr1、Qtr2、Qtr3

East、West

#

文本行 1

<<GetCell(cur, 1, cur, cur)>>

文本行 2

<<GetCell(current, 1, A, 1)>>

下表显示了这些结果。

名称 Quarter 1 Quarter 2 Quarter 3

East

5,120

4,502

7,304

West

3,405

2,300

4,462

文本行 1

5,120

4,502

7,304

文本行 2

5,120

5,120

5,120

  • 文本行 1 对 Column 参数使用了 current 关键字,导致每个展开的单元格(Qtr1、Qtr2、Qtr3)的当前列更新了值。同理,由于对 Page 参数使用了 current 关键字,文本行 1 中的值根据网格的当前页相应更新了每页。

  • 文本行 2 对 Column 参数 (A) 使用了硬编码值,导致所有季度具有相同的值 5,120。引用至 Column 参数的硬编码返回的值与列和行左上角的值相同。

表 -11 支持 Current 关键字的文本函数

文本函数 示例
<<DataSource("GridName.Axis[ID]",InfoType)>>

适用的参数:

  • GridName:在所有单元格中都受支持

  • InfoType:不适用

<<DataSource(current, "App")>>

注:

使用当前的网格名称。

<<GetCell("GridName",Row,Col,Page)>>

适用的参数:

  • GridName:在所有单元格中都受支持

  • Row:在所有单元格中都受支持

  • Col:在所有单元格中都受支持

  • Page:在所有单元格中都受支持

<<GetCell(cur, 1, cur, current)>>
<<GetCell(cur, 1(3), cur, current)>>

注:

显示第 1 行的第三个(展开的)行中的值。

<<GetCell(cur, cur, A, current)>>
<<GetCell(cur, cur, A(B), current)>>

注:

显示列 A 的第二个(展开的)列中的值。

在数据行或数据列标题中使用以下项目:

<<MemberName("DimName")>>

在非数据行或非数据列标题中使用以下项目:

<<MemberName("GridName",Row/Col/Page,"DimName")>>

使用以下适用的参数:

DimName:仅适用于标题单元格

<<MemberName(current)>>
<<MemberName("current", Row/Col/Page, "current")>>

注:

返回与标题单元格所在的维相对应的数据行、列或页的成员名称。可与 <<MemberDimension>> 函数结合使用,以创建网格的自定义标题。

<<CalcStatus("GridName",Row,Col,Page)>>

注:

允许使用 current 关键字的参数以粗体突出显示。

<<CellText("GridName", Row, Column, Page)>>
<<CellText("GridName", Row, Column, Page, MemberOverride)>>
<<GridDimension("GridName","Axis",index)>>

注:

允许使用 current 关键字的参数以粗体突出显示。

<<MemberAlias("DimName")>>
<<MemberAlias("GridName", "DimName")>> <<MemberAlias("GridName", Row|Col|Page, "DimName")>>
<<MemberDesc("DimName")>>
<<MemberDesc("GridName", "DimName")>>
<<MemberDesc("GridName", Row|Col|Page, "DimName")>>
<<MemberName("DimName")>>
<<MemberName("GridName", "DimName")>>
<<MemberName("GridName", Row|Col|Page, "DimName")>>
<<MemberQualifiedName("DimName")>>
<<MemberQualifiedName("GridName", "DimName")>>
<<MemberQualifiedName("GridName", Row|Col|Page, "DimName")>>
<<MemberProperty(DimensionName, Property)>> 
<<MemberProperty("GridName", DimensionName, Property)>> 
<<MemberProperty("GridName", Row|Col|Page, DimensionName, Property)>>
<<ProcessManagementStatus("GridName",Row,Column,Page)>>

注:

允许使用 current 关键字的参数以粗体突出显示。

 
<<ListOfCellDocuments("GridName",FileName)>>

注:

允许使用 current 关键字的参数以粗体突出显示。

 
<<GridDimension("GridName","Axis",Index)>>

适用的参数:

  • GridName:在所有单元格中都受支持

  • Axis:仅适用于标题单元格

  • Index:仅适用于标题单元格

<<GridDimension(cur,"Page",1)>>
<<GridDimension(cur,cur,cur)>>

注:

显示与标题单元格对应的维名称。

<<GetHeading("GridName",Page,Ref,Offset)>>
<<GetHeading("GridName",Page,Ref,"Delim")>>

适用的参数:

  • GridName:在所有单元格中都受支持

  • Page:在所有单元格中都受支持

  • Ref:除标题单元格外,支持在其他所有单元格中使用*

  • Offset:仅适用于标题单元格

  • Delim:不适用

<<GetHeading(cur, cur, A, " - ")>>
<<GetHeading(cur, cur, 1, " - ")>>

注:

上例显示了当前页的 A 列和第 1 行中的所有标题。

<<GetHeading(cur, cur, A, cur)>>

注:

对于包含公式的标题单元格所在位置所对应的维,显示了列 A 中的标题。

<<GetHeading(cur, cur, cur, " - ")>>

注:

如果在行文本单元格中使用,结果将为当前列中的所有标题以 "-" 分隔。这样,用户便可在手动分页后重复列标题。

*对参数 "reference" 使用 current 关键字将受到限制。作为行或列中的"自定义标题"输入时,不能在 GetHeading 函数中使用 current 关键字,因为这样会产生循环引用。您可以将 current 关键字用作单元格中的第三个参数,但此单元格必须是非网格标题区中文本行或文本列的一部分。例如,当行 3 为文本行时,如果您在单元格 A3 中添加公式 <<GetHeading(cur,cur,cur,1)>>,则结果为列 A 的第一个标题。您可以在标题单元格中使用 GetHeading 函数。但是,reference 参数不得使用 current 关键字。例如,如果在列 B 的标题单元格中输入 <<GetHeading(cur, cur, A, cur)>>,则会返回列 A 的标题。