Como mostrar vários fields, num campo lookup num grid?

Delphi

01/04/2005

Colegas..

Preciso mostrar no lookup de um field tipo lookup várias informações sobre o item a ser escolhido, como faço isso..

exemplo..

Para selecionar um material a ser inserido, preciso tb saber o modelo, a marca e a série do mesmo, mas estou num grid e só visualizo 1 campo, que seria a descrição..

já tentei

C_DESC_INSUMO;C_MODELO_INSUMO;C_MARCA_INSUMO;C_SERIE_INSUMO

e não deu certo.


Cabelo

Cabelo

Curtidas 0

Respostas

Ehvasc

Ehvasc

01/04/2005

Caro colega,


Uma solução é no evento OnGetText do field (no caso DESCRICAO), vc implementa o código abaixo
   Text := 
              Query.FieldByNAme(´C_DESC_INSUMO´).AsString+
              Query.FieldByNAme(´C_MODELO_INSUMO´).AsString+
              Query.FieldByNAme(´C_MARCA_INSUMO´).AsString+
              Query.FieldByNAme(´C_SERIE_INSUMO´).AsString;


isso funcionará, o campo DESCRICAO não precisa ser lookup


Espero ter ajudado, boa sorte e até a próxima


GOSTEI 0
Guilherme

Guilherme

01/04/2005

é so vc ir no fields editor (dois cliques no table1) ,clique com o botao direito e o escolher a opçao NEW FIELD , ai vc escolhe o nome pra seu campo ....escolha a opçao lookup e configure ......

de um clique duplo no grid e escolha o campo q ira mostar o campo criado e altere a opçao FIELD NAME . Pronto !!!!


espero ter ajudado !!!!!!!


Depois posta ai se deu certo e como vc fez !!!!


Ate +


GOSTEI 0
Cabelo

Cabelo

01/04/2005

Caro colega, Uma solução é no evento OnGetText do field (no caso DESCRICAO), vc implementa o código abaixo
   Text := 
              Query.FieldByNAme(´C_DESC_INSUMO´).AsString+
              Query.FieldByNAme(´C_MODELO_INSUMO´).AsString+
              Query.FieldByNAme(´C_MARCA_INSUMO´).AsString+
              Query.FieldByNAme(´C_SERIE_INSUMO´).AsString;
isso funcionará, o campo DESCRICAO não precisa ser lookup Colega.. Isso irá fazer mostrar todos os campos juntos no grid, e não ´pe o que eu quero, eu quero que o combo do field lookup, funcione como em um dblookupcombobox comum, quero que ele mostre vários campos, mas depois de selecionado, só fica aparecendo a descrição. Espero ter ajudado, boa sorte e até a próxima



GOSTEI 0
Cabelo

Cabelo

01/04/2005

Colega..

Isso irá fazer mostrar todos os campos juntos no grid, e não ´pe o que eu quero, eu quero que o combo do field lookup, funcione como em um dblookupcombobox comum, quero que ele mostre vários campos, mas depois de selecionado, só fica aparecendo a descrição.


GOSTEI 0
Flaviosan

Flaviosan

01/04/2005

Caro Cabelo,
que eu saiba só é possivel fazer essa concatenação de campos que vc quer em um dblookupcombobox, na propriedade listfield, separando o nome dos campos por ponto e virgula e setando a propriedade listfieldindex para o indice do campo que vc quer que seja mostrado quando já estiver selecionado.
Espero ter ajudado.


GOSTEI 0
Cabelo

Cabelo

01/04/2005

Mas se isso acontece, só acontece com o Delphi 7, pois fazia sso com o delphi 5.

Você sabe se consigo adicionar um objeto a um DBGrid?

lembro que no Delphi 5, eu conseguia fazr isso. Se conseguisse teria meu problema solucionado.


GOSTEI 0
Silviogs

Silviogs

01/04/2005

Olá

se vc estiver usando o rxlib( RxDBLookupCombo) mude a propriedade Fieldelimiter para ; (ponto e vírgula). E a propriedade DisplayAllFields para true. Caso estiver usando o DbLookupComboBox padrão basta apenas na propriedade Listfield coloque codigo;descproduto;precounit

Atencisomente,

Silvio Guedes


GOSTEI 0
Cabelo

Cabelo

01/04/2005

Olá se vc estiver usando o rxlib( RxDBLookupCombo) mude a propriedade Fieldelimiter para ; (ponto e vírgula). E a propriedade DisplayAllFields para true. Caso estiver usando o DbLookupComboBox padrão basta apenas na propriedade Listfield coloque codigo;descproduto;precounit Atencisomente, Silvio Guedes


Colega..

Na verdade, isso eu sei fazer, e não é esse meu problema, o que preciso pode ter duas opções :

1ª - Mostrar no campo LookUp de um dataset, quando associar no grid, vários campos, mas sendo somente um o resultado;

2ª - Adiconar um componente ao DBGrid, que poderia ser um DBLookUpComboBox, com a propriedade listfield com os campos que eu desejo, sendo que o keyfield seria usado com o result.

Mas o problema é que não estou consegundo achar nenhuma solução, sendo quelquer uma das opções.

OBs: No Delphi 5 é possível fazer isso, mas os comando para o Delphi 7 não funcionam.

Gostaria de saber como fazer.


GOSTEI 0
Cabelo

Cabelo

01/04/2005

Sobe..


GOSTEI 0
Guilherme

Guilherme

01/04/2005

cara vc q fazer um campo um campo lookup nun grid buscando hen um data set nao é ???????


GOSTEI 0
Cabelo

Cabelo

01/04/2005

É exatamente isso, terei um campo lookup num data set e este estará ligado a um DBGrid.

Até aí blz, funciona legal, quando eu trago somente um campo no lookup. O q eu quero é :

Quando clicar no combo do campo lookup no grid, eu visualizar outros campos desta tabela lookup no grid, e quando selecionar o item que desejo, ele simplesmente, mostra um dos campos, assim como funciona o DBLookupComboBox, na propriedade listfield, posso adicionar vários campos separados por virgula, mas quando fecho o combo, ele simplemente mostra o campo que estiversetado no ListFieldIndex.


GOSTEI 0
Guilherme

Guilherme

01/04/2005

cara no segundo post é eu !!!! ta esplicado certim e da certo porq eu so usso assim ....mas se presisar de ajuda pra fazer isso au nao tiver dando certo o q te falei ou vc nao intendeu me adicione no msn gborges_13@hotmail.com



abraço


GOSTEI 0
Cabelo

Cabelo

01/04/2005

Com já havia respondido, o q quero não é criar o campo lookup, isso eu sei fazer, o q preciso é que quando for selecionar o material, seja visualizado vários campos no combo, mas após a seleção, apareça somente a descrição do material no grid.


GOSTEI 0
Cabelo

Cabelo

01/04/2005

sobe..


GOSTEI 0
Silviogs

Silviogs

01/04/2005

Olá

você teria como mandar os fontes do delphi5 para mim, vou testar com o delphi7 ou 2005


Silvio Guedes
silvio.guedes@ig.com.br


GOSTEI 0
Cabelo

Cabelo

01/04/2005

É muito simples..

Posso te mandar..

é uma linha de comando..


GOSTEI 0
Cabelo

Cabelo

01/04/2005

Colegas..

Ainda não consegui resolver meu problema..

Alguém???


GOSTEI 0
Cabelo

Cabelo

01/04/2005

Colegas..

Ainda não conseguí resolver meu problema, se alguém puder me ajudar.. eu agradeço..


GOSTEI 0
Cabelo

Cabelo

01/04/2005

Sobe de novo... :cry:


GOSTEI 0
Cabelo

Cabelo

01/04/2005

sobe última vez.. :(


GOSTEI 0
POSTAR