使用 rv_measure_calc 编辑方案值
若要使用
rv_measure_calc
编辑工作表中的方案值,工作表必须属于循环与模块的组合,并且“报告源”类型设置为“嵌入”。
注意:工作表中的单元格根据指定的规则进行修改:
必须也在 rv_measure_calc
参数中指定当前的度量。属性为:
- targetmeassure
- weightmeasure_multiply
- weightmeasure_divide
- measure_spread
- spread_type
- spread_rounding
- spread_error_correction
- ifemptymeasurespread_measure_spread (& ifemptymeasurespread_targetmeasure ifemptymeasurespread_weightmeasure_multiply, ifemptymeasurespread_weightmeasure_divide, Ifemptymeasurespread_spread_rounding, Ifemptymeasurespread_spread_error_correction)
将使用 Infor BI OLAP SplashValue 命令传递值。适用的参数:
- AllocationMode (0 - 5)
- TargetCell(元组)
- SourceCell(元组)
- Value(数值表达式)
- Rounding(逻辑表达式)
- DecimalPlaces(数值表达式)
- ErrorCorrection(逻辑表达式)
设置 SourceCell(“传递式度量”):
- 如果未指定“measure_spread”的值,则使用 ifemptyspreadmeasure_spread_measure 属性中定义的度量。
- 根据这个值,也将对 multiply、divide、target、spread_rounding 和 error_correction 使用 ifemptyspreadmeasure 中定义的属性。
- 如果 ifemptyspreadmeasure_spread_measure 值也未定义,则使用 rv_measure_spreadlike 中默认的传递度量。
- 如果 rv_measure_spreadlike 值也未指定,您无法编辑方案值。
- SplashValue.SourceCell 参数必须设置为 if(not isnull(measure_spread), measure_spread, if(not isnull(ifemptyspreadmeasure_spread_measure), ifemptyspreadmeasure_spread_measure, rv_measure_spreadlike))。
编辑现有值(原始值不等于 0)时:
- 如果
spread_type
度量设置为“value”,则将使用修改后单元格中的更新值。 - 如果
spread_type
度量设置为“delta”,则将使用原始值与更新值之间的差值。 - 将分别使用为
weightmeasure_multiply
和weightmeasure_divide
度量指定的值对该值进行相乘和相除,以计算weighted_difference
度量。注意:- 如果未定义 weightmeasure_multiply 或 weightmeasure_divide 的值,则必须使用现有值来计算该值。
- 如果未定义
measure_spread
度量的值,则将使用默认的rv_measure_spreadlike
=like_measure
。
如果未定义上述值,则无法保存修改的数据。
- 将使用
&LIKEFULL weighted_difference like_measure
来更新值。
指定新值(原始值等于 0)时:
- 将分别使用为
weightmeasure_multiply
和weightmeasure_divide
度量指定的值对该值进行相乘和相除,以计算weighted_difference
度量。注意:- 如果未定义 weightmeasure_multiply 或 weightmeasure_divide 的值,则必须使用现有值来计算该值。
- 如果未定义
measure_spread
度量的值,则将使用默认的rv_measure_spreadlike
=like_measure
。
如果未定义上述值,则无法保存修改的数据。
- 将使用
#LIKEFULL weighted_difference like_measure
度量来更新值。 - 如果
measure_spread
值为空,则使用ifemptyspreadmeasure_spread_measure
属性中定义的度量。此度量也使用ifemptyspreadmeasure
中定义的属性来对目标的值进行相乘和相除。未指定值时的传递度量定义为like_measure = nvl(measure_spread, nvl(ifemptyspreadmeasure_spread_measure, v_measure_spreadlike))
。因此,如果此度量的值为空,则使用rv_measure_spreadlike
中的默认传递度量。如果未定义此度量,则编辑操作会因为没有指定传递标准而失败。
确定值的舍入:
- 如果
spread_rounding
定义为正整数值,则 SplashValue 命令包含舍入:- SplashValue.Rounding 参数:1=1 (true)
- SplashValue.DecimalPlaces 参数:spread_rounding
- 如果
spread_rounding
为空、负值或没有定义,则舍入为 0=1。- SplashValue.Rounding 参数:0=1 (false)
- SplashValue.DecimalPlaces 参数:未定义
注意:如果 measure_spread 为空,则使用 ifemptyspreadmeasure_spread_rounding 参数。 - 以整数值(如预测的汽车数)传递结果的示例:
<Table> <Row name="[SOP_FREV]"> <Property name="targetmeasure" value="[SOP_FMI]" /><Property name="weightmeasure_divide" value="[SOP_FSELL]" /> <Property name="measure_spread" value="[SOP_FUNITS]" /><Property name="spread_type" value="value" /> <Property name="spread_rounding" value="0" /></Row> </Table>
设置纠错:
- 如果 spread_error_correction 为 TRUE 或者未定义,SplashValue 命令将包含纠错功能,即:一个基本元素可以获得取整后的值,确保所有传递结果的和等于(聚合)分散值。SplashValue.ErrorCorrection 参数设为 1=1 (true)。
- 如果 spread_error_correction 为 FALSE,则 SplashValue 命令不包含纠错功能。SplashValue.ErrorCorrection 参数设为 0=1 (false)。
注意:如果 measure_spread 为空,则使用 ifemptyspreadmeasure_spread_error_correction 参数。
已编辑但未提交到 OLAP(使用“重新计算”选项)的单元格将带有蓝色背景和编辑标志。使用“重新计算”选项来更新这些编辑时,这些编辑的单元格将恢复为标准格式。
但是,如果定义了计算规则(即,未在 rv_measure_calc measure 中为单元格定义非计算目标度量),则在重新计算数据时,OLAP 将放弃编辑内容并保留单元格的原始值。