ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Mudar o fieldname da coluna dbgrid?

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 16690
Localização: Curitiba-PR

MensagemEnviada: Sex Fev 17, 2017 11:00 am    Assunto: Mudar o fieldname da coluna dbgrid? Responder com Citação

Quero mudar o cnpj para coluna 1 e o nome para coluna 3, sem ter que mudar o select, como fazer?

Assim não funcionou
Código:
grdListaClientes.Columns[0].Visible := False;
  grdListaClientes.Columns[1].Title.Caption := 'CPF/CNPJ';
  grdListaClientes.Columns[1].FieldName := 'cnpj_cpf';
  grdListaClientes.Columns[1].Width := 125;
  grdListaClientes.Columns[2].Visible := False;
  grdListaClientes.Columns[3].Title.Caption := 'Cliente';
  grdListaClientes.Columns[3].FieldName :=  'Nome';
  grdListaClientes.Columns[3].Width := 280;
  grdListaClientes.Columns[4].Title.Caption := 'Telefone';
  grdListaClientes.Columns[4].Width := 125;
  grdListaClientes.Columns[5].Title.Caption := 'Celular';
  grdListaClientes.Columns[5].Width := 125;
  grdListaClientes.Columns[6].Visible := False;
  grdListaClientes.Columns[7].Visible := False;
  grdListaClientes.Columns[8].Visible := False;

_________________
Meus aplicativos para Android Free.
https://play.google.com/store/apps/details?id=br.com.coudsys.cruzadinha
https://play.google.com/store/apps/details?id=br.com.couldsys.desafiobiblico
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Visitar a homepage do Usuário
junior103
Aprendiz
Aprendiz


Registrado: Quarta-Feira, 1 de Julho de 2015
Mensagens: 101

MensagemEnviada: Sex Fev 17, 2017 1:46 pm    Assunto: Re: Mudar o fieldname da coluna dbgrid? Responder com Citação

adriano_servitec escreveu:
Quero mudar o cnpj para coluna 1 e o nome para coluna 3, sem ter que mudar o select, como fazer?

Assim não funcionou
Código:
grdListaClientes.Columns[0].Visible := False;
  grdListaClientes.Columns[1].Title.Caption := 'CPF/CNPJ';
  grdListaClientes.Columns[1].FieldName := 'cnpj_cpf';
  grdListaClientes.Columns[1].Width := 125;
  grdListaClientes.Columns[2].Visible := False;
  grdListaClientes.Columns[3].Title.Caption := 'Cliente';
  grdListaClientes.Columns[3].FieldName :=  'Nome';
  grdListaClientes.Columns[3].Width := 280;
  grdListaClientes.Columns[4].Title.Caption := 'Telefone';
  grdListaClientes.Columns[4].Width := 125;
  grdListaClientes.Columns[5].Title.Caption := 'Celular';
  grdListaClientes.Columns[5].Width := 125;
  grdListaClientes.Columns[6].Visible := False;
  grdListaClientes.Columns[7].Visible := False;
  grdListaClientes.Columns[8].Visible := False;


Você pode adicionar um TFDQuery e colocar um select nele... e add TDataSource e lincar Dataset dele com sua query. Na propriedade das colunas vc pode mudar o nome que vai mostar no grid
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 16690
Localização: Curitiba-PR

MensagemEnviada: Sex Fev 17, 2017 2:10 pm    Assunto: Re: Mudar o fieldname da coluna dbgrid? Responder com Citação

junior103 escreveu:
adriano_servitec escreveu:
Quero mudar o cnpj para coluna 1 e o nome para coluna 3, sem ter que mudar o select, como fazer?

Assim não funcionou
Código:
grdListaClientes.Columns[0].Visible := False;
  grdListaClientes.Columns[1].Title.Caption := 'CPF/CNPJ';
  grdListaClientes.Columns[1].FieldName := 'cnpj_cpf';
  grdListaClientes.Columns[1].Width := 125;
  grdListaClientes.Columns[2].Visible := False;
  grdListaClientes.Columns[3].Title.Caption := 'Cliente';
  grdListaClientes.Columns[3].FieldName :=  'Nome';
  grdListaClientes.Columns[3].Width := 280;
  grdListaClientes.Columns[4].Title.Caption := 'Telefone';
  grdListaClientes.Columns[4].Width := 125;
  grdListaClientes.Columns[5].Title.Caption := 'Celular';
  grdListaClientes.Columns[5].Width := 125;
  grdListaClientes.Columns[6].Visible := False;
  grdListaClientes.Columns[7].Visible := False;
  grdListaClientes.Columns[8].Visible := False;


Você pode adicionar um TFDQuery e colocar um select nele... e add TDataSource e lincar Dataset dele com sua query. Na propriedade das colunas vc pode mudar o nome que vai mostar no grid
Desculpe amigo, mais não entendi. Vc diz colocar um query e montar um select?

Mais ja tenho o select pronto, não posso mudar a ordem do meu select, fiz aqui direto no dbgrid inclui suas colunas e configurei da forma que eu preciso




Mais não queria assim desta forma "engessando" o dbgrid as colunas. Usamos os componentes livres aqui.


Obrigado.
_________________
Meus aplicativos para Android Free.
https://play.google.com/store/apps/details?id=br.com.coudsys.cruzadinha
https://play.google.com/store/apps/details?id=br.com.couldsys.desafiobiblico
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Visitar a homepage do Usuário
leo_cj
Mestre
Mestre


Registrado: Sábado, 26 de Março de 2011
Mensagens: 789

MensagemEnviada: Sex Fev 17, 2017 2:41 pm    Assunto: Responder com Citação

o sistema emite algum erro ou simplesmente não muda?

que eu fiz um teste aqui e funcionou normalmente

eu criei duas colunas no grid, coluna 1 e coluna 2
criei uma tabela virtual com os campos 1 e 2
vinculei a coluna 1 ao campo 1 e a coluna 2 ao campo 2
pelo código, alterei o fieldname da coluna invertendo elas
setando a coluna 1 para o campo 2 e a coluna 2 para o campo 1

o resultado no grid veio conforme setei via código


Código:
DBGrid1.Columns[0].FieldName := 'teste1';
  DBGrid1.Columns[1].FieldName := 'teste';
  ClientDataSet1.CreateDataSet;
  ClientDataSet1.Open;
  ClientDataSet1.Append;
  ClientDataSet1.FieldByName('teste').AsString := 'Primeira Coluna';
  ClientDataSet1.FieldByName('teste1').AsString := 'Segunda Coluna';
  ClientDataSet1.Post;
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 16690
Localização: Curitiba-PR

MensagemEnviada: Sex Fev 17, 2017 2:45 pm    Assunto: Responder com Citação

leo_cj escreveu:
o sistema emite algum erro ou simplesmente não muda?

que eu fiz um teste aqui e funcionou normalmente

eu criei duas colunas no grid, coluna 1 e coluna 2
criei uma tabela virtual com os campos 1 e 2
vinculei a coluna 1 ao campo 1 e a coluna 2 ao campo 2
pelo código, alterei o fieldname da coluna invertendo elas
setando a coluna 1 para o campo 2 e a coluna 2 para o campo 1

o resultado no grid veio conforme setei via código


Código:
DBGrid1.Columns[0].FieldName := 'teste1';
  DBGrid1.Columns[1].FieldName := 'teste';
  ClientDataSet1.CreateDataSet;
  ClientDataSet1.Open;
  ClientDataSet1.Append;
  ClientDataSet1.FieldByName('teste').AsString := 'Primeira Coluna';
  ClientDataSet1.FieldByName('teste1').AsString := 'Segunda Coluna';
  ClientDataSet1.Post;
Olá amigo, no meu caso aqui simplesmente não muda, só consegui mudar da forma acima mesmo. Não entendi o porque.

Obrigado.
_________________
Meus aplicativos para Android Free.
https://play.google.com/store/apps/details?id=br.com.coudsys.cruzadinha
https://play.google.com/store/apps/details?id=br.com.couldsys.desafiobiblico
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Visitar a homepage do Usuário
johnny-walker
Moderador
Moderador


Registrado: Sábado, 4 de Outubro de 2003
Mensagens: 9891
Localização: Contagem/MG - BRAZIL

MensagemEnviada: Sáb Fev 18, 2017 6:52 pm    Assunto: Responder com Citação

Você pode mudar o index em runtime, não seria mais fácil:


http://stackoverflow.com/questions/1944573/repositioning-columns-in-dbgrid-in-delphi



bye
_________________
P.O.W.E.R B.Y D.E.L.P.H.I
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB