GARANTIR DESCONTO

Fórum Liberar dados do cache usando ClientDataSet #337554

08/02/2007

0

Olá, pessoal!

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

Paulo Trajano

Responder

Posts

08/02/2007

Emerson Nascimento

eu prefiro utilizar speedbuttons/toolbuttons pelo visual e praticidade, porém eles não recebem foco e me geram o mesmo problema que você relatou, mas eu me utilizo do mesmo recurso: jogo o foco para o próximo componente.
se você utilizar um botão que recebe foco, o problema está solucionado.


Responder

Gostei + 0

08/02/2007

Paulo Trajano

Srs Moderadores, perdão! Eu postei o tópico duas vezes. :oops:

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...


Responder

Gostei + 0

08/02/2007

Paulo Trajano

Emerson, acho que achei uma solução pra esse nosso (meu e seu e de muitos) problema:

Antes da validaçõa dos dados, e consequentemente antes do Post, eu testei um
ClientDataSet.UpdateRecord;
Até agora deu certo! Testa aí tb!

:D


Responder

Gostei + 0

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

Aceitar