APROVEITAR

Fórum Alternar componentes no dbCtrlGrid #465165

28/12/2013

0

Bom dia pessoal e um feliz ano novo a todos....

Bem, estou dando uma melhorada no módulo de consulta de meus sistemas e para isso coloquei um dbctrlgrid para "facilitar" a vida dos usuários, mas ta complicando um pouco a minha.

A ideia é que o usuário escolha o(s) campo(s) e o(s) critério(s), e em seguida forneça o valor para que o sistema gere o sql necessário e retorne as informações solicitadas...

O usuário escolhendo um campo que não seja do tipo date, vai aparecer um edit para ser informado o valor (aqui tudo bem), porém quando o tipo do campo é date, o sistema deixa o edit com visible := false e dois (data inicial e final) TJvDateEdit (Jedi) fique com o visible := true. O que vem ocorrendo é que quando escolho o campo date, é feito a alternância dos componentes, porém o TJvDateEdit se repete em todas as linhas do dbctrlgrid, e ao sair da linha ele volta ao edit.

Será que existe uma luz no fim do túnel???

Abraço a todos.
Claudio Andrade

Claudio Andrade

Responder

Posts

31/12/2013

Claudio Andrade

Resolvido...

Tratamento feito no evento DBCtrlGrid1PaintPanel.
Responder

Gostei + 0

16/01/2014

Eduardo Costa

Claudio estou com esse mesmo problema, como foi que vc resolveu??
Responder

Gostei + 0

22/01/2014

Claudio Andrade

Opa Eduardo, tudo jóia??

Bem, o que eu fiz foi bem simples. Coloquei um MemoryTable para poder pegar o nome do campo e seu indice pela ordem do FieldsEditor e no evendo DBCtrlGrid1PaintPanel coloquei o código abaixo:

  if ADMemTable1.FieldByName('NC').AsString = 'Data' then
  begin
    dtDataInicio.Visible    := true;
    dtDataFim.Visible       := true;
    edValorConsulta.Visible := false;
  end
  else
  begin
    dtDataInicio.Visible    := false;
    dtDataFim.Visible       := false;
    edValorConsulta.Visible := true;
  end;


O campo NC (Nome do Campo) identifica se o campo armazena uma data ou outro tipo de informação. Identificando como data ele deixa dois DataEdit's como visíveis e o Edit que seria para o restante das informações como visible := false;

Para identificar o NC, no fieldseditor eu usei a propriedade DisplayLabel

Qualquer dúvida pode ficar a vontade para perguntar...

Abraço.
Responder

Gostei + 0

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

Aceitar