Auto-Complete baseado em mais de um campo do banco

(GooMag) #1

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

(GooMag) #2

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

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

(Rodrigo Lins) #3

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.

(Haroldo) #4

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.

(system) #5

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ê.

(ZooSP) #6

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í…

(Haroldo) #7

Criando uma view para o select desejado, funciona direitinho.