Ir para conteúdo
  • Cadastre-se

dev botao

Ajuda com uma função recursiva


  • Este tópico foi criado há 858 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

pessoal tenho uma base de dados com uma receita de produto, e dentro da receita principal, pode haver outros produtos que também possuem receitas ou não e dentro destas outros produtos que possuem também receitas, então pode haver vários níveis, como poderia montar uma função recursiva para ir listando todos esses níveis um abaixo do outro ?

Obrigado 

Link para o comentário
Compartilhar em outros sites

Renato obrigado pela resposta

a tabela por exemplo se chama receitas, dentro dela tenho campo codigoprincipal e o codigoitem

primeiro codigo o principal o segundo os itens que o formam:

100 - 150

100 - 151

100 - 152

digamos que o 152 seja formado pelos itens:

152 - 160

152 - 161

152 - 162

o 162 seja formado pelos itens:

162 - 180

162 - 181

como montaria sua sua função pra retornar,

100 = principal, estrutura resultante seria:

100-150

100-151

100-152

  152-160

  152-161

  152-162

    162-180

    162-181

?

Obrigado

Link para o comentário
Compartilhar em outros sites

  • Consultores

Tentou simular com a base que passei?

function receita(produto): string;

Begin

  Result := produto + #13;

  for i:=0 to select de produtosReceita -1 do

    Result := Result +

 produto + '-' +//concatenar aqui deve resolver essa última dúvida

receita(produtosReceita[i]);

End;

 

Link para o comentário
Compartilhar em outros sites

Renato

tentei assim, mais nao consegui terminar

procedure TF1Receitas.Button4Click(Sender: TObject);
begin
  ShowMessage(receita('004479'));
end;

function TF1Receitas.receita(produto: String): string;
var
  i: Integer;
begin
  Result := produto + #13;

  for i := 0 to CdsReceita.RecordCount -1 do
    Result := Result + receita(CdsReceita.RecordCount[i]);
end;

Onde CdsReceita é uma clientdataset da pesquisa


 

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 858 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.