Cruzamento de dados no formulario

21/02/2006

0

Boa tarde,

Estou tendo um problema sério com o cruzamento de informações em um form de pedidos. Explicando melhor:

Quando dois usuarios abrem o formulario para fazer um pedido, em alguns casos o pedido está somando os itens dos dois pedidos em um só,etc...,etc...

Que posso fazer??

Estou fazendo o applyupdates(-1) e depois o post no Dataset.

Teria como bloquear isto?


Jose


Responder

Posts

21/02/2006

Paullsoftware

Usa interbase/Firebird...

o applyUpdates é para ser usado apenas quando a propriedade CacheUpDate esta ativa... tente fazer um filtro para poder somar os itens do pedido filtrando pelos itens pertencentes ao pedido de código = xxx

vc usa o Master/Detail pelo código ne isso...

como está seu código, post aqui!


Responder

21/02/2006

Dli

Uso a relacao master-detail e ela funciona perfeitamente.Mas... verifiquei que a tabela detail está sem PK.

Poderia ser isto???



Jose


Responder

21/02/2006

Paullsoftware

não se vc possui um campo único na tabela...

tenta relaciona as tabela em tempo de execução tipo:
Master: Cod,CodProduto,Desc,Total...
Detail: Cod,CodMaster,CodItem,Valor...

em tempo de execução faço no Detail:

Propriedade SQL do Detail:
Select * From Detail
where CodMaster=:CodAtual


no evento AffterScroll do Master faço...
Detail.Close;
Detail.ParamByName(´CodAtual´).AsInteger := Master.FieldByName(´Cod´).AsInteger;
// Se você mexe na estrutura da sql durante a soma dos registros então mude de acordo com sua necessidade
//po exemplo, Detail.Sql[1]:=´Where Outros_Criterios and CodMaster=:CodAtual´;
//Detail.ParamByName(´CodAtual´).AsInteger := Master.FieldByName(´Cod´).AsInteger;
Detail.Open;


outra coisa, de um Post na tabela Master antes de começar a lançar os itens do Detail, lembre-se que para haver relacionamento o registro Filho precisa do Pai...
espero ter ajudado...


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar