Fórum Alternar componentes no dbCtrlGrid #465165
28/12/2013
0
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
Curtir tópico
+ 0Posts
31/12/2013
Claudio Andrade
Tratamento feito no evento DBCtrlGrid1PaintPanel.
Gostei + 0
16/01/2014
Eduardo Costa
Gostei + 0
22/01/2014
Claudio Andrade
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.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)