Алгоритм рекурсии для многоуровневого отчета

используйте этот метод: -

 StackTraceElement[] stacktrace = Thread.currentThread().getStackTrace();
 stackTraceElement e = stacktrace[2];//maybe this number needs to be corrected
 System.out.println(e.getMethodName());

Вызывающий пример метода Код здесь: -

public class TestString {

    public static void main(String[] args) {
        TestString testString = new TestString();
        testString.doit1();
        testString.doit2();
        testString.doit3();
        testString.doit4();
    }

    public void doit() {
        StackTraceElement[] stacktrace = Thread.currentThread().getStackTrace();
        StackTraceElement e = stacktrace[2];//maybe this number needs to be corrected
        System.out.println(e.getMethodName());
    }

    public void doit1() {
        doit();
    }

    public void doit2() {
        doit();
    }

    public void doit3() {
        doit();
    }

    public void doit4() {
        doit();
    }
}
0
задан rjv 17 January 2019 в 17:37
поделиться

1 ответ

TLDR : не изобретать велосипед, использовать существующие алгоритмы и структуры.

Я предполагаю, что ваш вопрос не о тренировочном упражнении, а о реальной проблеме. Если это упражнение, постарайтесь получить хорошее представление о рекурсии на простом в использовании языке по вашему выбору в большом сообществе, прежде чем вернуться к x ++.

Ваш метод рекурсии выглядит неполным, потому что в каждой рекурсии вы перебираете все записи из tmpBom, что (если вы не измените записи в этой таблице где-то еще) не имеет смысла и никогда не завершится. Я также не понимаю, как этот метод может дать результат, который вы описываете. Я предлагаю вам взглянуть на некоторые учебные материалы по алгоритму рекурсии, чтобы узнать об основных частях рекурсии.

Вы отметили вопрос , и синтаксис также очень похож на этот. К сожалению, вы не добавили информацию о том, какую версию вы используете, но я предполагаю , поскольку в настоящее время это самая распространенная версия в использовании. [ 118]

В этой версии уже есть готовый отчет SSRS, который покажет вам структуру ведомости материалов. Вы можете вызвать отчет в Управление запасами> Отчеты> Спецификации> Строки . Следует довольно легко изменить этот отчет, чтобы он также отображал уровень, если отчет еще не удовлетворяет вашим требованиям.

Если вам все еще нужно реализовать собственное решение, взгляните на класс BOMSearch и его детей. Он используется в нескольких местах (проверьте перекрестные ссылки), а также может использоваться для расширения / взрыва спецификации.

Также обратите внимание, что есть много статей, которые пытаются объяснить, как расширить или взорвать спецификацию в коде x ++, но, как и во всех вещах в Интернете, будьте осторожны: большинство из них неполные или простые неправильно.

0
ответ дан FH-Inway 17 January 2019 в 17:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: