Fórum Liberar dados do cache usando ClientDataSet #337554
08/02/2007
0
OLha só, pesquisei sobre assunto mas não tive muito êxito. No meu sistema (assim como em muitos que usam FB com DBX e Clientdataset) existe uma situação intrigante. Suponhamos que o usuário esteja em uma operação de Atualização ou Inserção de dados. Ele entra com um certo dado em um componente estilo Edit, ou combo ou check... Somente ao sair desse (principalmente se for um Edit) é q os dados são, digamos, escritos no ClientDataSet. Nesse caso, se o último campo alterado pelo usuário for um requerido, e ele não retirou o foco do Edit, ao clicar no botão gravar, uma rotina de validação de campos será ativada. Então o usuário se pergunta: ´Mas eu não digitei a informação?´
Daí, eu uso a seguinte alternativa: Jogo o foco para outro edit, para forçar a atualização dos dados.
Teria uma alterrnativa mais elegante para fazer isso?
Grato
Paulo Trajano
Curtir tópico
+ 0Posts
08/02/2007
Emerson Nascimento
se você utilizar um botão que recebe foco, o problema está solucionado.
Gostei + 0
08/02/2007
Paulo Trajano
Mas qto ao assunto, Emerson, eu tb prefiro usar Speeds pq tem um visual bem melhor. Matutei por um bom tempo pra achar ua solução mas até hoje não consegui. Exemplo interessante:
No meu form básico de cadastro (o pai) tem um EDit para busca rápida de registros. Esse edit tem que ser desabilitado caso o DataSet esteja em edição ou inserção para que o usuário não invente de pesquisar um registro no meio de uma operação dessa. É exatamente para esse Edit que eu jogo o foco. Mas se ele tiver desabilitado? Msg de erro! Entaum eu tive que dizer ao Delphi:
if not EdtLocaliza.Enabled then EdtLocaliza.Enabled:= True; EdtLocaliza.SetFocus;
E por aí vai. Mas eu keria achar uma outra opção...
Gostei + 0
08/02/2007
Paulo Trajano
Antes da validaçõa dos dados, e consequentemente antes do Post, eu testei um
ClientDataSet.UpdateRecord;
:D
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)