[Ajuda] Como deixar o DBLookupComboBox em Ordem Alfabética

Delphi

25/10/2013

Olá amigos,
Quero por os nomes de um DBLookupComboBox em Ordem Alfabética mais não sei como fazer.
Estou usando:
Delphi XE4
FireBird
IBTable e já esta selecionando porém não aparece em ordem alfabética.
Seria mais fácil editar o banco? Como ficaria?

Muito obrigado!
Jore Maximus

Jore Maximus

Curtidas 0

Respostas

Adilson Júnior

Adilson Júnior

25/10/2013

Seu DBLookup não está apontado para uma tabela, não está?
Basta você colocar um ORDER BY <nome_campo> !!!!
GOSTEI 0
Jore Maximus

Jore Maximus

25/10/2013

Olá Adilson Bragança Cápua Júnior,
Bom, não sei bem o que você quer dizer com apontando para uma tabela mas a conexão do DBLookComboBox esta assim veja:

Liguei ao DataSouce da Tabela Principal,

Liguei ao Campo FU_CODIGO que é um campo FK

Liguei ao DataSouce da Tabela Funcionário

Liguei ao Campo FU_NOME (Que é campo que desejo mostrar)

Novamente Liguei ao Campo FU_CODIGO que é um campo FK

Agora gostaria de mostrar os nomes em Ordem Alfabética.

Obrigado por me ajudar!

GOSTEI 0
Jesus Neves

Jesus Neves

25/10/2013

Voce pode tambem criar um indice local usando a propriedade IndexFieldNames do IBTable fazendo asssim, MeuIBTable.IndexFieldNames := '<Nome do campo>'.
GOSTEI 0
Jore Maximus

Jore Maximus

25/10/2013

Olá JESUS APARECIDO DE SOUZA NEVES,

Desculpe mas não entendi bem como fazer... Onde eu coloco este comando que você passou?

Obrigado por me ajudar!
GOSTEI 0
Joel Rodrigues

Joel Rodrigues

25/10/2013

Para facilitar: de onde vêm os dados que são listados no DBLookupCombobox? De uma tabela (dataset, table, query, etc), correto? Nesta tabela, altere a instrução SQL, adicionando a cláusula ORDER BY.
GOSTEI 0
Jore Maximus

Jore Maximus

25/10/2013

Olá Joel Rodrigues,

Então, Meus dados estão em um Table e o amigo JESUS , me passou o seguinte código: IBTable1.IndexFieldNames := '<PA_NOME>'. Só não sei onde colocá-lo.
Na sua dica eu teria que alterar onde essa instrução SQL?

Obrigado por sua ajuda!
GOSTEI 0
Joel Rodrigues

Joel Rodrigues

25/10/2013

Table não tem SQL, então use o IndexFieldsNames mesmo. Essa propriedade deve estar no Object Inspector. Caso não esteja, você pode definir isso em runtime, usando esse código que o amigo passou.
GOSTEI 0
Jore Maximus

Jore Maximus

25/10/2013

Então Joel Rodrigues,
O IBTable tem esta propriedade sim! Porém ao clicar s~´o aparece a opção para escolher o campo CÓDIGO.
E Este comando: IBTable1.IndexFieldNames := '<PA_NOME>'. Não sei onde colocá-lo.

Você pode me ajudar co isso?!

Já coloquei no OnCreate e no ONShow e não da certo dá erro!

Obrigado!
GOSTEI 0
Jesus Neves

Jesus Neves

25/10/2013

Olá Jore Maximus, pelo que entendi em sua explicação você usou o campo FU_NOME para listar no seu DBLookupComboBox certo? então antes da OPEN no IBTable1 faz assim
IBTAble1.IndexFieldNames := 'FU_NOME'
IBTable1.OPEN

Espero ter ajudado.
GOSTEI 0
Jore Maximus

Jore Maximus

25/10/2013

Perfeito!

Só um detalhe para quem for iniciante como eu e quiser usar ponha o ; (Ponto e vírgula no final) 8-)

IBTAble1.IndexFieldNames := 'FU_NOME';
IBTable1.OPEN;

Muito obrigado à todos!
GOSTEI 0
POSTAR