10.2 LookUp
使用 LOOKUP函数参考另一源值
要在 *REC( )语句内计算新值,可以使用LOOKUP 函数为 EXPRESSION 或 FACTOR指令分配范围数据之外的源值。
语法
*LOOKUP {Model}
*DIM [{LookupID}:]{DimensionName}="Value" |{CallingDimensionName}[.{Property}]
*DIM MEASURES=”MeasureName”
*ENDLOOKUP
 示例1
在下列示例中,您正在读取“汇率”信息,并在计算中使用。也可以使用FOR/NEXT来查找多个值。
Environment:EnvironmentShell_V(EnvironmentShell示例环境的副本)
模型:计划
*XDIM_MEMBERSET TIME = 2006.AUG
*XDIM_MEMBERSET P_ACCT=CE0004010
*XDIM_MEMBERSET CATEGORY=ACTUAL
*LOOKUP RATE
*DIM TIME="2006.AUG"
*DIM CATEGORY="ACTUAL"
*DIM R_ACCT="AVG"
*DIM R_ENTITY="GLOBAL"
*DIM RATEEUR:INPUTCURRENCY="EUR"
*DIM MEASURES="PERIODIC"
*ENDLOOKUP
*WHEN P_ACCT
*IS "CE0004010"
*REC(EXPRESSION=%VALUE%/LOOKUP(RATEEUR),RPTCURRENCY="EUR")
*ENDWHEN
结束举例。
 示例2
在下列示例中,首先在*SELECT语句中读取所有报告币种并把值分配给变量%CUR%。使用FOR/NEXT,从“汇率”模型读取它们的汇率。然后在计算时使用。
脚本执行前模型中的值:
graphic
 
*XDIM_MEMBERSET TIME=2006.AUG
*XDIM_MEMBERSET P_ACCT=CE0004010
*XDIM_MEMBERSET CATEGORY=ACTUAL
*SELECT(%CUR%, "[ID]", RPTCURRENCY,"[REPORTING]=Y")
*LOOKUP RATE
*DIM CATEGORY="ACTUAL"
*DIM R_ACCT="AVG"
*DIM R_ENTITY="GLOBAL"
*DIM TIME="2006.AUG"
*DIM MEASURES="PERIODIC"
*FOR %LOOP_CUR%=%CUR%
*DIMC_%LOOP_CUR%:INPUTCURRENCY="%LOOP_CUR%"
*NEXT
*ENDLOOKUP
*WHEN P_ACCT
*IS "CE0004010"
*FOR %LOOP_CUR%=%CUR%
*REC(EXPRESSION=%VALUE%/LOOKUP(C_%LOOP_CUR%),RPTCURRENCY=%LOOP_CUR%)
*NEXT
*ENDWHEN
脚本执行之后模型中的值:
2006.AUG
 CE0004010
 C9000
 NONE
 ACTUAL
 EUR
 UPLOAD
 105,123.03
 
2006.SEP
 CE0004010
 C9000
 NONE
 ACTUAL
 USD
 UPLOAD
 157,915.81
 
也可以将属性值传递到范围成员以查找数据。
结束举例。
 示例
在这个示例中,相应的实体货币将从主数据读取,而且该货币将用于查找汇率值。
*XDIM_MEMBERSET TIME = 2007.AUG
*XDIM_MEMBERSET P_ACCT=CE0004010
*XDIM_MEMBERSET CATEGORY=ACTUAL
*XDIM_MEMBERSET ENTITY=C9000
*LOOKUP RATE *DIM TIME="2006.AUG"
*DIM CATEGORY="ACTUAL"
*DIM R_ACCT="AVG"
*DIM R_ENTITY="GLOBAL"
*DIM RATE:INPUTCURRENCY=ENTITY.CURRENCY
*DIM MEASURES="PERIODIC"
*ENDLOOKUP
*WHEN P_ACCT
*IS "CE0004010"
*REC(EXPRESSION=%VALUE%/LOOKUP(RATE),RPTCURRENCY=ENTITY.CURRENCY)
*ENDWHEN
结束举例。
限制
■不支持通过分配不同查找标识在单个LOOKUP中读取多个度量。