RECURSIVIDADE - ESTRUTURA DE PRODUTOS

MARCIOGODOI 07/06/2011 17:36:31
#376101
Boa tarde Pessoal, estou trabalhando em uma rotina de estrutura de produto utilizando recursividade. A Rotina faz um Loop nos materias do produto e quando encontra um material que é um subproduto ele volta a chamar esta rotinha para buscar os materiais deste subproduto e assim por diante até encontrar todos materiais.

Ocorre que quando a Rotina chama ela mesma eu estou perdendo o controle da variavel inicial e nem todos os materiais estão sendo mostrados.

Alguém teria alguma logica para utilizar a recursividade para montagem de estrutura de produtos?

Obrigado!
LLAIA 07/06/2011 18:26:07
#376105
poste sua função recursiva para familiarizarmos com o contexto do seu problema.
MARCIOGODOI 07/06/2011 20:34:59
#376112
============================================================================================================

Dim xconsulta As MYSQL_RS [ô]BUFFER de consulta ao MYSQL
Dim i as integer [ô] Contador

Public Function EstruturaRecursiva(codigo As String, qtd As Double)

[ô]Consulta no banco de dados os itens do produto
Set xconsulta = MySQL.Execute([Ô]SELECT codigo,descricao,tipo, qtd FROM estrutura_item WHERE codigo_produto = [ô][Ô] & codigo & [Ô][ô] ORDER BY tipo[Ô])

If xconsulta.RecordCount > 0 Then [ô][ô] Verifica se existe registro com o codigo do produto passado na QUERY
For i = 1 To xconsulta.RecordCount [ô][ô] Loop na quantidade de materiais
If xconsulta([Ô]tipo[Ô]) = [Ô]sub-Produto[Ô] Then
EstruturaRecursiva xconsulta([Ô]codigo[Ô]), xconsulta([Ô]qtd[Ô]) [ô] Chama novamente o funcao para pegar os materiais do subProduto
End If
[ô] Imprime os materiais aqui
xconsulta.MoveNext
Next
End If

End Function

======================================================================================================

O que ocorre é que desta forma eu perco o posicionamento da variavel xconsulta e nao consigo imprimir os materiais que estão abaixo do primeiro sub-produto encontrado,

ASHKATCHUP 07/06/2011 23:10:01
#376129
Resposta escolhida
Crie a variável xconsulta dentro do loop
MARCIOGODOI 08/06/2011 00:05:51
#376133
Perfeito, muito obrigado, não estava conseguindo enxergar isto.

Funcionou certinho, vou reduzir muitas linhas de codigo.
Tópico encerrado , respostas não são mais permitidas