Auto-Complete baseado em mais de um campo do banco

Galera quero saber se existe alguma opção no scriptcase de se fazer um campo Auto-complete que possa completar informações por dois campos, Nome e CPF de uma tabela

vlw galera

Basta concatenar os campos do banco e usar o AS tipo:

Select nome||’->’||cpf AS campo from pessoa

Bom Dia,

Você pode utilizar o sc_concat, onde esta função seria para não ocorrer problemas dependendo do banco, visto que cada um tem uma sintaxe diferente. Exemplo do funciomaneto:

SELECT ClienteID, sc_concat(ClienteID, ’ - ', NomeCliente) FROM tbl_clientes

Seria só uma informação a mais para vocês.

Rodrigo Lins.

Você quer que ao digitar as letras na janela, a pesquisa seja feita por dois campos da tabela?
A muito tempo eu tentei, usando o sc_concate mas não funcionava, depois nunca mais testei. Talvez nas releases mais recentes funcione, não sei afirmar.

Eu também tive problemas com isso no passado, mas tenho encontrado uma solução (e eu não sabia que existia essa macro para que eu nunca tentei).

Minha solução foi usar o recurso de concatenação de banco de dados subjacente. Esta será diferente para cada banco de dados de origem, mas com a Oracle, MySQL (e outros motores padrão SQL), o comando é:

SELECT ClienteID, CONCAT (ClienteID, ‘-’, NomeCliente) FROM tbl_clientes

Se você estiver usando um back-end da Microsoft como SQL Server ou Access você pode tratar as strings como números:

SELECT ClienteID, (ClienteID+’-’+NomeCliente) FROM tbl_clientes

Você tem que ter cuidado com isto, porém, como se qualquer uma das seqüências são NULL, a célula inteira será considerado nulo (mesmo o hífen, é um pouco como se multiplicando nada por 0).

Outros bancos de dados irá responder de forma diferente, e talvez você precisa de olhar para a sua documentação (experimente o comando mysql primeira embora), e tentar os comandos no construtor SQL (a partir da janela principal, à esquerda do botão Home, tem um pequeno ícone como uma varinha mágica).

Espero que isso ajude você.

Haroldo, até a versão 5 ainda não funciona…

tentei este comando de outro forum para contornar a situação, mais da erro na hora de criar o banco.

1- on init event of the form
sc_exec_sql(“CREATE TEMPORARY TABLE TMP_ANAG (id INT NOT NULL ,anag VARCHAR( 255 ) NOT NULL ,PRIMARY KEY ( id ))”);
sc_exec_sql(“INSERT INTO TMP_ANAG (id ,anag ) SELECT id, concat(Last_name,’ ', First_name) From Customers where attivo=‘0’ ORDER BY Last_name,First_name”);

2- and then
on the Lookup of the filet Text-autocomplete

SELECT id, anag FROM TMP_ANAG ORDER BY anagr

acredito que deve ter algum erro aí…

Criando uma view para o select desejado, funciona direitinho.