Formulário de Pedidos
Pessoal,
Gostaria de abrir uma discussão sobre a maneira que a maioria faz o formulário de pedido ...
e já aproveitando o gancho, estou com um problema; tenho um botão finaliza pedido e neste botão tenho código:
1º dou um ibdatasetpedido.post (para salvar os itens da tabela mestre)
2º no mesmo código do botão dou um ibqueryitens.ExecSql (que executa uma instrução que salva os itens do pedido,
só que há um problema, qdo vou salvar os itens ele fala que houve uma violação de FK porque o pedido ainda não existe, mas eu dei um ´salvar´ primeiro no pedido ?? porque isso tá acontecendo ??
Obrigado
Kleber.
Gostaria de abrir uma discussão sobre a maneira que a maioria faz o formulário de pedido ...
e já aproveitando o gancho, estou com um problema; tenho um botão finaliza pedido e neste botão tenho código:
1º dou um ibdatasetpedido.post (para salvar os itens da tabela mestre)
2º no mesmo código do botão dou um ibqueryitens.ExecSql (que executa uma instrução que salva os itens do pedido,
só que há um problema, qdo vou salvar os itens ele fala que houve uma violação de FK porque o pedido ainda não existe, mas eu dei um ´salvar´ primeiro no pedido ?? porque isso tá acontecendo ??
Obrigado
Kleber.
Ksotte
Curtidas 0
Respostas
Ksotte
24/05/2006
Alguém ???? ......... por favor............
GOSTEI 0
Catunda
24/05/2006
vc está dando o applyupdates na transação apos o post?
GOSTEI 0
Pestana
24/05/2006
aproveitando o mesmo tópico está acontecendo a mesma coisa comigo, eu não sei mais como resolver isso.
try
dataSetVendas.Post;
dataSetItens.Post;
DM.Trans.CommitRetaining;
except
DM.Trans.RollbackRetaining;
raise;
end;
estou utilizando o D7 e o Interbase 6.5
try
dataSetVendas.Post;
dataSetItens.Post;
DM.Trans.CommitRetaining;
except
DM.Trans.RollbackRetaining;
raise;
end;
estou utilizando o D7 e o Interbase 6.5
GOSTEI 0
Brjedi
24/05/2006
Dêem uma olhada na ClubeDelphi 78. O artigo sobre SP/Triggers tem uma solução para esse problema.
[]s,
[]s,
GOSTEI 0
Pestana
24/05/2006
blz BrJedi vou verificar isso, depois eu posto aqui informando o resultado.
GOSTEI 0
Pestana
24/05/2006
Acho que o orçamento foi feito na propria aplicação, o que mostra é a solução depois do orçamento, para passar o orçamento para a tabela de vendas... o meu problema é diferente disso.
GOSTEI 0
Laelsonc
24/05/2006
Olá. Amigo como eu to desenvolvendo um formulário de pedidos aqui e ja ia postar um dúvida aqui referente, gostaria de saber uma opinião sua.
A dúvida é com relação a condições de pagamento. No meu caso tem alguns produtos que tem certo desconto á vista. Esse desconto varia de produto pra outro. O seu formulário preve essa situação ? Tô sem saber onde eu devo lançar esse desconto. Se é o no produto ou se devo fazer pedidos separados. Depois qro ver nas vendas...rsrsr.
A dúvida é com relação a condições de pagamento. No meu caso tem alguns produtos que tem certo desconto á vista. Esse desconto varia de produto pra outro. O seu formulário preve essa situação ? Tô sem saber onde eu devo lançar esse desconto. Se é o no produto ou se devo fazer pedidos separados. Depois qro ver nas vendas...rsrsr.
GOSTEI 0
Pestana
24/05/2006
alguem conhece os componentes IBX? pra eu enviar o fonte em que está acontecendo o problema. agradeço muito quem me ajudar, estou prescisando resolver isso até a semana que vem.
GOSTEI 0
Emerson Nascimento
24/05/2006
manda aí...
emerson.en@gmail.com
emerson.en@gmail.com
GOSTEI 0
Pestana
24/05/2006
emerson.en eu já enviei pra você por e-mail.
GOSTEI 0
Leonardobhbr
24/05/2006
@laelsonc
No meu sistema eu fiz tanto (descontos,impostos) tanto para itens se tiver um tratamento diferenciado de valores quanto no pedido como um todo.
No meu sistema eu fiz tanto (descontos,impostos) tanto para itens se tiver um tratamento diferenciado de valores quanto no pedido como um todo.
GOSTEI 0
Corcos
24/05/2006
Eu uso os componentes da paleta Interbase (IBQuery, IBUpdateSQL, IBTransaction)
[b:c85ee0ffdb]No botão INCLUIR[/b:c85ee0ffdb]
begin
Qry.Cancel;
Qry.Append;
end;
[b:c85ee0ffdb]No botão ALTERAR[/b:c85ee0ffdb]
begin
if Qry.IsEmpty then
exit
else
Qry.Edit;
end;
[b:c85ee0ffdb]No botão SALVAR[/b:c85ee0ffdb]
if Qry.State in [dsInsert] then
With dtmDados do
Begin
Qry.Post;
Qry.ApplyUpdates;
IBTransaction.Commit;
Qry.Close;
Qry.Open;
end;
if Qry.State in [dsEdit] then
with dtmDados do
Begin
Qry.Post;
Qry.ApplyUpdates;
TIBTransaction.Commit;
Qry.Close;
Qry.Open;
end;
end;
[b:c85ee0ffdb]No botão INCLUIR[/b:c85ee0ffdb]
begin
Qry.Cancel;
Qry.Append;
end;
[b:c85ee0ffdb]No botão ALTERAR[/b:c85ee0ffdb]
begin
if Qry.IsEmpty then
exit
else
Qry.Edit;
end;
[b:c85ee0ffdb]No botão SALVAR[/b:c85ee0ffdb]
if Qry.State in [dsInsert] then
With dtmDados do
Begin
Qry.Post;
Qry.ApplyUpdates;
IBTransaction.Commit;
Qry.Close;
Qry.Open;
end;
if Qry.State in [dsEdit] then
with dtmDados do
Begin
Qry.Post;
Qry.ApplyUpdates;
TIBTransaction.Commit;
Qry.Close;
Qry.Open;
end;
end;
GOSTEI 0
Pestana
24/05/2006
[b:fe10b43705]emerson.en[/b:fe10b43705],
consegui resolver aquele problema?
consegui resolver aquele problema?
GOSTEI 0
Emerson Nascimento
24/05/2006
na verdade eu não pude olhar. quando você mandou o email eu o peguei na empresa e ficou lá. mas eu prometo que amanhã vejo pra você.
GOSTEI 0
Pestana
24/05/2006
UP
GOSTEI 0
Pestana
24/05/2006
UP
GOSTEI 0