gpt4 book ai didi

algorithm - 多级报表的递归算法

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:07:50 25 4
gpt4 key购买 nike

我目前正在开发一个多级 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);
}

当前结果(其中 b1c1c2bc 的子级 分别):

1    a
2 b
2 b1
3 c
4 c1
5 c2

想要的结果:

1    a
2 b
3 b1
2 c
3 c1
3 c2

最佳答案

TLDR:不要重新发明轮子,使用现有的算法和框架。

我假设您的问题不是针对训练练习,而是现实世界中的问题。如果这是一个练习,请在回到 x++ 之前尝试在一个大社区中使用您选择的易于使用的语言很好地掌握递归。

你的递归方法看起来不完整,因为在每次递归中,你遍历了 tmpBom 的所有记录,这(除非你在其他地方修改该表中的记录)没有意义并且永远不会终止.我也看不出这种方法如何产生您描述的结果。我建议您查看一些递归算法培训 Material ,以了解递归的基本部分。

您标记了问题 并且语法看起来也很像。很遗憾,您没有添加 版本的信息你正在使用,但我会假设因为它是目前最常用的版本。

在此版本中,已经有一个开箱即用的 SSRS 报告,可以向您显示 Material list 的结构。您可以在库存管理 > 报告 > Material list > 行 调用报告。修改此报告应该相当容易,以便它在报告尚未满足您的要求时也显示级别。

如果您仍需要实现自己的解决方案,请查看类 BOMSearch 及其子类。它在多个地方使用(检查交叉引用),也可用于扩展/展开 Material list 。

另请注意,那里有很多文章试图解释如何在 x++ 代码中扩展或分解 Material list ,但与互联网上的所有内容一样,请注意:大多数文章不完整或简单错了。

关于algorithm - 多级报表的递归算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54224293/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com