Problemas com master source e master fields?
Pessoal tenho uma tabela linkada em outra pelo mastersouce e o masterfields, ta beleza, mostra os campos certo cfe. o campo linkado.
O problema surge quando vou sair sem gravar no banco e retorno na tabela novamente.
Explico
1º tenho um dbgrid aonde tem os nomes dos associados e outra que tem os movimentos de cada associado, entao seleciono um associado e passo para o segundo dbgrid que deve mostrar todos dados referente aquele associado, pois como disse as tabelas estao linkadas.
Mostrar certo ateh que mostra, mais se eu forçar a saida antes de gravar os dados chamo esta função
e trato ela no onCloseQuery do form assim
O problema eh na hora de voltar novamente no form se caso essa funçao eh disparada. Apareçe todos os dados como se nao tivesse linkado as tabelas. Ai pra resolver somente saindo do programa e retornando novamente.
Bom trabalho com as tabelas fechadas e abro elas quando eh criado o form no evento oncreate e fecho as mesmas no evento ondestry do form, entao nao deveria destruir a ultima disparada que fez a função e quando eu abrisse o form mostrar certo, em vez de todos dados de todos associados?
Eh isso ai pessoal
Obrigado a atenção de todos
Adriano
O problema surge quando vou sair sem gravar no banco e retorno na tabela novamente.
Explico
1º tenho um dbgrid aonde tem os nomes dos associados e outra que tem os movimentos de cada associado, entao seleciono um associado e passo para o segundo dbgrid que deve mostrar todos dados referente aquele associado, pois como disse as tabelas estao linkadas.
Mostrar certo ateh que mostra, mais se eu forçar a saida antes de gravar os dados chamo esta função
//--Procedure checa se nao tem nada na tabela em andamento antes de fechar o form
procedure CheckState(ATable: TzQuery);
var
strMessage : String[25];
wrdMessageResult : word;
begin
ATable.UpdateRecord; { Atualiza a tabela sem gravar }
if ( ATable.Modified ) and
( ATable.State <> dsSetKey ) then
begin
if ATable.State = dsEdit then
strMessage := ´Editando registro, ´;
if ATable.State = dsInsert then
strMessage := ´Inserindo registro, ´;
wrdMessageResult := MessageDlg(strMessage+
´as informações que ainda não ´+
´foram salvas serão perdidas!´+#10+
´Salva as informações ?´, mtConfirmation,
[mbYes,mbNo,mbCancel],0);
case wrdMessageResult of
mrCancel: Abort;
mrYes : ATable.Post;
mrNo : ATable.Cancel;
end;
end
else
ATable.Cancel;
end;
e trato ela no onCloseQuery do form assim
procedure TFMensal.FormCloseQuery(Sender: TObject; var CanClose: Boolean); begin if (dm.ZQMensal2.State in [dsEdit, dsInsert]) then CheckState(dm.ZQMensal2); end;
O problema eh na hora de voltar novamente no form se caso essa funçao eh disparada. Apareçe todos os dados como se nao tivesse linkado as tabelas. Ai pra resolver somente saindo do programa e retornando novamente.
Bom trabalho com as tabelas fechadas e abro elas quando eh criado o form no evento oncreate e fecho as mesmas no evento ondestry do form, entao nao deveria destruir a ultima disparada que fez a função e quando eu abrisse o form mostrar certo, em vez de todos dados de todos associados?
Eh isso ai pessoal
Obrigado a atenção de todos
Adriano
Adriano_servitec
Curtidas 0
Respostas
Adriano_servitec
16/08/2007
Pessoal descobri, vacilo meu aqui. :oops:
Explico:
Quando eu criei a tela de splash eu usei o Project ---> Options (Shift+Ctrl+F11), aonde coloquei ele no lado direito ´Available Forms´ e acidentalmente coloquei o Form ´FMensal´ aonde chamo a tabela junto, por isso que perdia o valor.
Eh isso ai pessoal, deixo postado aqui pra se um dia alguem tiver o mesmo problema.
Explico:
Quando eu criei a tela de splash eu usei o Project ---> Options (Shift+Ctrl+F11), aonde coloquei ele no lado direito ´Available Forms´ e acidentalmente coloquei o Form ´FMensal´ aonde chamo a tabela junto, por isso que perdia o valor.
Eh isso ai pessoal, deixo postado aqui pra se um dia alguem tiver o mesmo problema.
GOSTEI 0