将问题简单归纳如下:
A指标包含了A1、A2、A3三个子指标;
A1指标包含了A11、A12两个子指标;
现要求输入某个父指标的名称,如A1,获取其子指标之和(A11+A12)。
输入的指标可能是A指标,也可能是A11指标,当没有子指标时,返回其本身的值,否则返回其下所有层级的指标值之和。
我写的方法如下(C#):
public decimal CalcKPI(KPI kpi,decimal initialValue)
{
if(kpi.HasChild)
{
KPI[] kpis=kpi.GetChild();
foreach(KPI k in kpis)
{
return initialValue+CalcKPI(k,0);
}
}
else
{
return kpi.Value;
}
}
方法写完了,现在不知道这个递归的流程图要怎么画。。请高手帮画一下,谢谢!