RECURSIVIDADE - ESTRUTURA DE PRODUTOS
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!
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!
poste sua função recursiva para familiarizarmos com o contexto do seu problema.
============================================================================================================
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,
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,
Crie a variável xconsulta dentro do loop
Perfeito, muito obrigado, não estava conseguindo enxergar isto.
Funcionou certinho, vou reduzir muitas linhas de codigo.
Funcionou certinho, vou reduzir muitas linhas de codigo.
Tópico encerrado , respostas não são mais permitidas