【发布时间】:2019-01-16 19:48:23
【问题描述】:
我目前正在开发一个多级 SSRS 报告,并且我正在努力使用该算法。我开发了一个递归类,如下所示,但级别数不正确。我希望父记录(由 a、b 和 c 表示)显示子记录,以便子记录的级别 = (parentRecLevel+1)。现在,级别值只是增加 1。有人有什么建议吗?
protected BOMLevel getBomLevelItem(str itemId, int numLevel, boolean firstRec)
while select tmpBOM
{
bomLevel = this.getBomLevelItem(bomLevel.ItemId, bomLevel.Level, false);
}
Current Outcome(其中 b1、c1 和 c2 是 b 和 c 的子项 分别):
1 a
2 b
2 b1
3 c
4 c1
5 c2
想要的结果:
1 a
2 b
3 b1
2 c
3 c1
3 c2
【问题讨论】:
-
一般情况下,请仅将递归作为最后的手段,它几乎总是低效的。看看是否有可行的递归替代方案。
-
@JosephDoggie 递归通常是表达解决方案的最直观的方式。因此,这是找到问题的有效解决方案的好方法。一旦你得到一个可行的解决方案,你就可以担心它的效率。由于解决方案可能效率低下而避免递归是过早优化的练习。使程序工作;然后让它高效。
标签: algorithm recursion reporting-services x++