У-у-ух... Чего-то вы замудрили... запутался пока читал...
В каком виде Вам необходимо представить это все в Excel? Если в виде дерева с корнем выбранного Вами узла? Метод, который рекурсивно будет вызвывать сам себя в каждом узле - параллельно выводя все необходимые данные в Excel в случае их обнаружения. То есть их можно и не собирать в Листы и Мапы - если вывод будет производится сразу.
Например:
X++:
public void WildRunning(str NameNode)
{
Table TableLocal;
;
select while TableLocal where TableLocal.ParentNodeId == NameNode
{
... //вывод в Excel
this.WildRunnig(TableLocal.NameNode);
}
}
На первом входе скормить имя вашего узла...