Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
caiochacal Aprendiz

Registrado: Sábado, 16 de Abril de 2011 Mensagens: 180
|
Enviada: Ter Jul 24, 2012 7:33 pm Assunto: Laço de repetiçaõ em duas tabelas |
|
|
Olá meus parceiro irmãos um abraço para todos!!!
Como ficaria um laço de repetição em duas tabelas?
estou fazendo assim.
Código: |
cdvenda.First;
cdvenda2.First;
while not (cdvenda.Eof) and
not (cdvenda2.Eof) do begin
.........
|
mais não repeti! |
|
Voltar ao Topo |
|
 |
Ghost_Rider Colaborador

Registrado: Segunda-Feira, 6 de Outubro de 2003 Mensagens: 4437
|
Enviada: Ter Jul 24, 2012 11:12 pm Assunto: |
|
|
O que vc quer dizer laço em duas tabelas ??? uma é filha da outra ??? |
|
Voltar ao Topo |
|
 |
caiochacal Aprendiz

Registrado: Sábado, 16 de Abril de 2011 Mensagens: 180
|
Enviada: Ter Jul 24, 2012 11:30 pm Assunto: |
|
|
Ghost_Rider escreveu: | O que vc quer dizer laço em duas tabelas ??? uma é filha da outra ??? |
eu tenho duas tabelas temporarias
e preciso fazer esse loop nas duas pra passar os dados dela para a tabela
do banco se eu não fizer esse laço de repetição so vai passa o primeiro dado
sendo q em cada tabela temp. tem mais dados. |
|
Voltar ao Topo |
|
 |
viox Colaborador

Registrado: Sábado, 22 de Outubro de 2011 Mensagens: 1090 Localização: SINOP - MT
|
Enviada: Qua Jul 25, 2012 10:14 am Assunto: |
|
|
programando de forma estruturada eu faria deste jeito.
Código: |
tabela1.disablecontrols;
tabela1.first;
while not tabela1.eof do
begin
...
tabela1.next;
end;
tabela1.enablecontrols; |
e a mesma coisa para tabela2, porém criaria uma função, para não repetir código. _________________ Just another Delphi guy.
http://www.soft42.com
http://www.nortaonegocios.com.br |
|
Voltar ao Topo |
|
 |
caiochacal Aprendiz

Registrado: Sábado, 16 de Abril de 2011 Mensagens: 180
|
Enviada: Qua Ago 08, 2012 11:08 am Assunto: |
|
|
viox escreveu: | programando de forma estruturada eu faria deste jeito.
Código: |
tabela1.disablecontrols;
tabela1.first;
while not tabela1.eof do
begin
...
tabela1.next;
end;
tabela1.enablecontrols; |
e a mesma coisa para tabela2, porém criaria uma função, para não repetir código. |
Olá meus brother blz!
ainda não resolvi este problema quero colocar duas tabelas dentro
do while:
estou fazendo assim individual para cada tabela:
Código: |
cdvenda.First;
while not cdvenda.Eof
do begin
tblsaidaservico.open;
tblsaidaservico.Insert;
tblsaidaservicoSAISER_COD_SAIDA_PAI.Value:= tbl_saidapaiSAIPAI_CODIGO.Value;
tblsaidaservicoSAISER_CODSERVICO.Value:= cdvendacod_prod.Value;
tblsaidaservicoSAISER_SERVICO.Value:= cdvendanome_prod.Value;
tblsaidaservicoSAISER_VALORSERVICO.Value:= cdvendavalor_prod.Value;
tblsaidaservicoSAISER_QUANTIDADE.Value:= cdvendaquant_prod.Value;
tblsaidaservicoSAISER_VALORTOTAL.Value:= cdvendasub_total.Value;
tblsaidaservicoSAISER_PROF.Value:= cdvendaatendente.Value;
cdvenda2.First;
while not cdvenda2.Eof
do begin
tbl_saidaproduto.open;
tbl_saidaproduto.Insert;
tbl_saidaprodutoSAIPROD_COD_SAIDA_PAI.Value:= tbl_saidapaiSAIPAI_CODIGO.Value;
tbl_saidaprodutoSAIPROD_CODPRODUTO.Value:= tbl_saidapaiSAIPAI_CODIGO.Value;
tbl_saidaprodutoSAIPROD_PRODUTO.Value:= cdvenda2nome_cliente.Value;
tbl_saidaprodutoSAIPROD_COD_BARRA.Value:= cdvenda2cod_cliente.Value;
tbl_saidaprodutoSAIPROD_VALORPRODUTO.Value:= cdvenda2valor_par.Value;
tbl_saidaprodutoSAIPROD_QUANTIDADE.Value:= cdvenda2quant_est.Value;
tbl_saidaprodutoSAIPROD_VALORTOTAL.Value:= cdvenda2Valor_cartao.Value;
cdvenda.Next;
cdvenda2.Next;
|
so que o laço so faz efeito pra segunda tabela!
a primeira não repete!!
como é q eu posso fazer isso para q funcione pra as duas? |
|
Voltar ao Topo |
|
 |
viox Colaborador

Registrado: Sábado, 22 de Outubro de 2011 Mensagens: 1090 Localização: SINOP - MT
|
Enviada: Qua Ago 08, 2012 11:24 am Assunto: |
|
|
Creio que vc queira assim, não?
Código: |
cdvenda.First;
tblsaidaservico.Close;
tblsaidaservico.Open;
while not cdvenda.Eof do
begin
tblsaidaservico.Append;
tblsaidaservicoSAISER_COD_SAIDA_PAI.Value:= bl_saidapaiSAIPAI_CODIGO.Value;
tblsaidaservicoSAISER_CODSERVICO.Value:= cdvendacod_prod.Value;
tblsaidaservicoSAISER_SERVICO.Value:= cdvendanome_prod.Value;
tblsaidaservicoSAISER_VALORSERVICO.Value:= cdvendavalor_prod.Value;
tblsaidaservicoSAISER_QUANTIDADE.Value:= cdvendaquant_prod.Value;
tblsaidaservicoSAISER_VALORTOTAL.Value:= cdvendasub_total.Value;
tblsaidaservicoSAISER_PROF.Value:= cdvendaatendente.Value;
tblsaidaservico.Post;
cdvenda.Next;
end;
cdvenda2.First;
tbl_saidaproduto.Close;
tbl_saidaproduto.Open;
while not cdvenda2.Eof do
begin
tbl_saidaproduto.Append;
tbl_saidaprodutoSAIPROD_COD_SAIDA_PAI.Value:= tbl_saidapaiSAIPAI_CODIGO.Value;
tbl_saidaprodutoSAIPROD_CODPRODUTO.Value:= tbl_saidapaiSAIPAI_CODIGO.Value;
tbl_saidaprodutoSAIPROD_PRODUTO.Value:= cdvenda2nome_cliente.Value;
tbl_saidaprodutoSAIPROD_COD_BARRA.Value:= cdvenda2cod_cliente.Value;
tbl_saidaprodutoSAIPROD_VALORPRODUTO.Value:= cdvenda2valor_par.Value;
tbl_saidaprodutoSAIPROD_QUANTIDADE.Value:= cdvenda2quant_est.Value;
tbl_saidaprodutoSAIPROD_VALORTOTAL.Value:= cdvenda2Valor_cartao.Value;
tbl_saidaproduto.Post;
cdvenda2.Next;
end;
|
_________________ Just another Delphi guy.
http://www.soft42.com
http://www.nortaonegocios.com.br |
|
Voltar ao Topo |
|
 |
maizena Colaborador


Registrado: Terça-Feira, 20 de Março de 2012 Mensagens: 1497 Localização: Laguna - SC
|
Enviada: Qua Ago 08, 2012 11:38 am Assunto: |
|
|
tenta assiim
Código: |
cdvenda.First;
while not cdvenda.Eof do
begin
tblsaidaservico.open;
tblsaidaservico.Insert;
tblsaidaservicoSAISER_COD_SAIDA_PAI.Value:= tbl_saidapaiSAIPAI_CODIGO.Value;
tblsaidaservicoSAISER_CODSERVICO.Value:= cdvendacod_prod.Value;
tblsaidaservicoSAISER_SERVICO.Value:= cdvendanome_prod.Value;
tblsaidaservicoSAISER_VALORSERVICO.Value:= cdvendavalor_prod.Value;
tblsaidaservicoSAISER_QUANTIDADE.Value:= cdvendaquant_prod.Value;
tblsaidaservicoSAISER_VALORTOTAL.Value:= cdvendasub_total.Value;
tblsaidaservicoSAISER_PROF.Value:= cdvendaatendente.Value;
cdvenda.Post;
cdvenda.Next;
end;
cdvenda2.First;
while not cdvenda2.Eof do
begin
tbl_saidaproduto.open;
tbl_saidaproduto.Insert;
tbl_saidaprodutoSAIPROD_COD_SAIDA_PAI.Value:= tbl_saidapaiSAIPAI_CODIGO.Value;
tbl_saidaprodutoSAIPROD_CODPRODUTO.Value:= tbl_saidapaiSAIPAI_CODIGO.Value;
tbl_saidaprodutoSAIPROD_PRODUTO.Value:= cdvenda2nome_cliente.Value;
tbl_saidaprodutoSAIPROD_COD_BARRA.Value:= cdvenda2cod_cliente.Value;
tbl_saidaprodutoSAIPROD_VALORPRODUTO.Value:= cdvenda2valor_par.Value;
tbl_saidaprodutoSAIPROD_QUANTIDADE.Value:= cdvenda2quant_est.Value;
tbl_saidaprodutoSAIPROD_VALORTOTAL.Value:= cdvenda2Valor_cartao.Value;
cdvenda2.Post;
cdvenda2.Next
end;
|
Mais se estudar bem a logica da pra fazer alguma coisa melhor.
Espero que ajude. _________________ Canal Delphi+ INSCREVA-SE: http://www.youtube.com/channel/UCnVF5ly5PRwZONE-U7xZM6w?feature=watch |
|
Voltar ao Topo |
|
 |
caiochacal Aprendiz

Registrado: Sábado, 16 de Abril de 2011 Mensagens: 180
|
Enviada: Qua Ago 08, 2012 1:11 pm Assunto: |
|
|
maizena escreveu: | tenta assiim
Código: |
cdvenda.First;
while not cdvenda.Eof do
begin
tblsaidaservico.open;
tblsaidaservico.Insert;
tblsaidaservicoSAISER_COD_SAIDA_PAI.Value:= tbl_saidapaiSAIPAI_CODIGO.Value;
tblsaidaservicoSAISER_CODSERVICO.Value:= cdvendacod_prod.Value;
tblsaidaservicoSAISER_SERVICO.Value:= cdvendanome_prod.Value;
tblsaidaservicoSAISER_VALORSERVICO.Value:= cdvendavalor_prod.Value;
tblsaidaservicoSAISER_QUANTIDADE.Value:= cdvendaquant_prod.Value;
tblsaidaservicoSAISER_VALORTOTAL.Value:= cdvendasub_total.Value;
tblsaidaservicoSAISER_PROF.Value:= cdvendaatendente.Value;
cdvenda.Post;
cdvenda.Next;
end;
cdvenda2.First;
while not cdvenda2.Eof do
begin
tbl_saidaproduto.open;
tbl_saidaproduto.Insert;
tbl_saidaprodutoSAIPROD_COD_SAIDA_PAI.Value:= tbl_saidapaiSAIPAI_CODIGO.Value;
tbl_saidaprodutoSAIPROD_CODPRODUTO.Value:= tbl_saidapaiSAIPAI_CODIGO.Value;
tbl_saidaprodutoSAIPROD_PRODUTO.Value:= cdvenda2nome_cliente.Value;
tbl_saidaprodutoSAIPROD_COD_BARRA.Value:= cdvenda2cod_cliente.Value;
tbl_saidaprodutoSAIPROD_VALORPRODUTO.Value:= cdvenda2valor_par.Value;
tbl_saidaprodutoSAIPROD_QUANTIDADE.Value:= cdvenda2quant_est.Value;
tbl_saidaprodutoSAIPROD_VALORTOTAL.Value:= cdvenda2Valor_cartao.Value;
cdvenda2.Post;
cdvenda2.Next
end;
|
Mais se estudar bem a logica da pra fazer alguma coisa melhor.
Espero que ajude. |
Olha só assim desse jeito ele repetiu a primeira tabela, so q a segunda tabela ele quadriplicou!
e agora? |
|
Voltar ao Topo |
|
 |
maizena Colaborador


Registrado: Terça-Feira, 20 de Março de 2012 Mensagens: 1497 Localização: Laguna - SC
|
|
Voltar ao Topo |
|
 |
caiochacal Aprendiz

Registrado: Sábado, 16 de Abril de 2011 Mensagens: 180
|
Enviada: Qua Ago 08, 2012 11:34 pm Assunto: |
|
|
maizena escreveu: | Amigo oq exatamente vc precisa? |
fala meu brother maizena blz!
eu quero isso ai q eu coloquei.
eu tenho duas tabelas temporarias a venda e a venda2 ai os dados dessas tabelas eu salvo cada uma em uma tabela do banco.
venda tem dois registro ai vão dois registro para a tabela1 do banco.
venda2 tem dois registro ai vão dois regitro para a tabela2 do banco.
so q quando mando esses registros para a segunda tabela não vão dois vão quatro registros. entendeu? |
|
Voltar ao Topo |
|
 |
maizena Colaborador


Registrado: Terça-Feira, 20 de Março de 2012 Mensagens: 1497 Localização: Laguna - SC
|
|
Voltar ao Topo |
|
 |
tanure Profissional

Registrado: Segunda-Feira, 7 de Novembro de 2011 Mensagens: 712
|
Enviada: Qui Ago 09, 2012 8:22 am Assunto: |
|
|
na hora de armazenar nas tableas temporárias
ja pensou em salvaros 4 registros da primeira tabalea em vendas1
e todos os outros 4 registros da tabela 2 na vendas 2?
ao invés de colocar meio a meio |
|
Voltar ao Topo |
|
 |
|