Salvando todos detalhes pela tabela Mestre

Delphi

30/06/2011

Bom gente, utilizo um relacionamento master-detail de 3 camadas, percebi que ao salvar o mestre os detalhes são salvos porém ao salvar ele vai automaticamente para o primeiro registro da tabela, e isso que eu não quero que aconteça, pois quando salvo outras tabelas normal sem este tipo de relacionamento ela salva e continua no mesmo registro, apenas com master-detail aconteçe isso ? Como concerto ?
Ronaldo Lanhellas

Ronaldo Lanhellas

Curtidas 0

Respostas

Wilson Junior

Wilson Junior

30/06/2011

Quem vai para o primeiro regsitro, o mestre ou o detalhe?
GOSTEI 0
Ronaldo Lanhellas

Ronaldo Lanhellas

30/06/2011

Os dois !, todos as tabelas relacionadas vão para o primeiro registro, cheguei até pensar que seja alguma propriedade do DataSetProvider, porém não encontrei nada a respeito !
GOSTEI 0
Wilson Junior

Wilson Junior

30/06/2011

Você da um refresh nas tabelas após a gravação?
- Sim, o refresh é como se executasse um novo SQL, assim ele reposiciona o cursor para o primeiro registro;
- Não, coloque aqui o código da parte da gravação para poder analisar.

Espero ter colaborado.
GOSTEI 0
Ronaldo Lanhellas

Ronaldo Lanhellas

30/06/2011

Amigo, creio que não esteja relacionado ao Refresh pois em outros sistemas que também utilizo o refresh ele nunca direciona a tabela para o registro inicial, o meu "Save" é bem simples também creio faça diferença, mais vamos lá
  if crud.Save(DsPromotores) thenbegin crud.Atualizar (DsPromotores.DataSet); ac_imprimir.execute;end;
  agora dentro da Classe CRUD 
 método Save   if MessageDlg('Deseja Salvar as Alterações ?',mtInformation, [mbOK,mbCancel],0) = mrOK thenbegin  try TClientDataSet(Ds.DataSet).ApplyUpdates(0); result := true; except reulst := false;endelseresult := false;



método atualizar 
 Ds.Refresh ;  


GOSTEI 0
Wilson Junior

Wilson Junior

30/06/2011

Em todas as outras rotinas que você grava você chama a action ac_Imprimir? O que esta action faz especificamente?

Aguardo retorno.
GOSTEI 0
Ronaldo Lanhellas

Ronaldo Lanhellas

30/06/2011

Esta rotina faz impressão com WriteLn direto na impressora. 
GOSTEI 0
Wilson Junior

Wilson Junior

30/06/2011

Mas ele utiliza os ClientDataSet Mestre e/ou Detalhe?
GOSTEI 0
Ronaldo Lanhellas

Ronaldo Lanhellas

30/06/2011

Detalhe ... ele faz o seguinte : 
 pega todos os produtos de um vendedor e imprimi ( sendo que os produtos são da tabela detalhe e o vendedor da mestre)
GOSTEI 0
POSTAR