Ir para conteúdo
Fórum Script Brasil
  • 0

Evento No Dbgrid


AlexBEE

Pergunta

Ola a Todos

Eu estou com um problema, eu tenho que colocar um evento de OnClicK e um Evento OnEnter em uma CELULA do DBGrid.

Eu quero fazer tipo aquele negocio de selecionar um ESTADO e no outro campo so mostrar as cidades daquele estado!!!!!!!!!

Eu estou usando campo DBLookupComboBox dentro das celulas da Tabela do DbGrid.

ALGUÉM SABE ENTÃO COMO COLOCAR EVENTOS EM ALGUNS CAMPOS DA TABELA E NÃO NA TABELA TODA!!!!!!????????

OBRIGADO

ALEXANGELO

Link para o comentário
Compartilhar em outros sites

11 respostass a esta questão

Posts Recomendados

  • 0

E se você utilizar o evento OnChange do field referente ao estado (field do dataset utilizado no DBGrid) e usar o valor deste campo para filtrar a query que você, provavelmente, utiliza como loockup para cidade? Não resolveria?

Link para o comentário
Compartilhar em outros sites

  • 0

Ola

Eu utilizava 2 eventos para fazer esse negocio do estado e cidade, eu usava esse codigo:

procedure TfrmCliente.DBLookupComboBox1Click(Sender: TObject);
begin
  inherited;

        DM.SqlkCidade.Filter := '';
        DM.SqlkCidade.Filtered := False;
        DBLookupComboBox2.KeyValue := 0;
end;

procedure TfrmCliente.DBLookupComboBox2Enter(Sender: TObject);
begin
  inherited;

        if (DBLookupComboBox1.Text) <> '' then
        begin
            DM.SqlkCidade.Refresh;
            DM.SqlkCidade.Filter := 'ID_UF = ' + IntToStr(DBLookupComboBox1.KeyValue);
            DM.SqlkCidade.Filtered := True;
        end
        else begin
            DM.SqlkCidade.Filter := '';
            DM.SqlkCidade.Filtered := False;
            ShowMessage('ESCOLHA PRIMEIRO UM ESTADO!!!!');
            DBLookupComboBox1.SetFocus;
            Exit;
        end;
end;

so que eu não consegui adapitar esse codigo para fazer a mesma coisa no evento OnChange!!!!!!

Link para o comentário
Compartilhar em outros sites

  • 0

Agora que você postou esse código, queria exclarecer que a sugestão que dei anteriormente baseava-se na possibilidade de você estar utilizando um Loockupfield (acho que é isto) no seu dataset, o que faz com que um um combobox seja automaticamente criado dentro do seu DBGrid. Mas vejo que não era o caso. No momento não poderei lhe ajudat, aqui onde estou não tenho o D7 então não lembro de cabeça os detalhes.

Link para o comentário
Compartilhar em outros sites

  • 0

Seria isto talvez?

procedure TfrmCliente.DBLookupComboBox1Change(Sender: TObject);
begin
  inherited;

  DM.SqlkCidade.Filtered := False;
  DM.SqlkCidade.Filter := '';
  DBLookupComboBox2.KeyValue := 0;

  DM.SqlkCidade.Filter := 'ID_UF = ' + IntToStr(DBLookupComboBox1.KeyValue);
  DM.SqlkCidade.Filtered := True;
  DM.SqlkCidade.Refresh;
end;

Link para o comentário
Compartilhar em outros sites

  • 0

Ok

Eu consegui fazer com esse codigo que você passou!!!!!!!

So tem um probleminha como eu estou trabalhando com o DBGrid, pode-se colocar varios registros, quando você so colocar 1 registro é perfeito, so que quando você começa a colocar mais de 1 registro começa a perder os registros anteriores!!!!!!!!!!!!

você teria alguma ideia de como reselver isso???????????

Link para o comentário
Compartilhar em outros sites

  • 0

Ola

Eu consegui diagnosticar exatamente o meu Problema!!!!!!!!!!!!

O problema é o mesmo que esta acontecendo com todas as telas que Utilizam Cidade e Estado!!!!!!!!!

Quando eu seleciono um estado e uma cidade e salvo, todos os outros registro daquela tela que não forem o estado selecionado a cidade desaparece, so que quando ele fecho e abro o programa estodas la.

EX:

Eu tenho varios registros de um cadrastro de CLientes, e utilizo vairos Estados e Cidade: Tipo:

1 - MATO GROSSO DO SUL - CAMPO GRANDE

2 - MINAS GERAIS - BELO HORIZONTE

3 - RIO DE JANEIRO - RIO DE JANEIRO

4 - SÃO PAULO - CAMPINAS

5 - RIO DE JANEIRO - CABO FRIO

So que se eu Fazer um Cadrastro Tipo para o Estado do "RIO DE JANEIRO" e cidade de "NITEROI" e salvar, quando eu navego pelos registros daquela tabela TODOS os estados que não forem "RIO DE JANEIRO" as cidades desaparesem, e as Cidade do estado de "RIO DE JANEIRO" ficam Normais, se agora eu fazer um registro para outro estado vai acont4ecer a mesma coisa so que para esse novo estado escolido!!!!!!!!!

O Codigo que eu utilizo para fazer esse filtro é:

procedure TfrmCliente.DBLookupComboBox1Click(Sender: TObject);
begin
  inherited;

        DM.SqlkCidade.Filter := '';
        DM.SqlkCidade.Filtered := False;
        DBLookupComboBox2.KeyValue := 0;
end;

procedure TfrmCliente.DBLookupComboBox2Enter(Sender: TObject);
begin
  inherited;

        if (DBLookupComboBox1.Text) <> '' then
        begin
            DM.SqlkCidade.Refresh;
            DM.SqlkCidade.Filter := 'ID_UF = ' + IntToStr(DBLookupComboBox1.KeyValue);
            DM.SqlkCidade.Filtered := True;
        end
        else begin
            DM.SqlkCidade.Filter := '';
            DM.SqlkCidade.Filtered := False;
            ShowMessage('ESCOLHA PRIMEIRO UM ESTADO!!!!');
            DBLookupComboBox1.SetFocus;
            Exit;
        end;
end;

alguém SABE O QUE ESTA ACONTECENDO???????????????????

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...