Array
(
)

Cruzamento de dados no formulario

Dli
   - 21 fev 2006

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


Paullsoftware
   - 21 fev 2006

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!


Dli
   - 21 fev 2006

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

Poderia ser isto???



Jose


Paullsoftware
   - 21 fev 2006

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:
#Código

Select * From Detail
where CodMaster=:CodAtual


no evento AffterScroll do Master faço...
#Código
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...