Texto Auto-Complete + Razão Social e Nome Fantasia

(Régis Matos) #1

Pessoal, tenho um campo auto-complete.

Simples, que seleciona o cliente.

Eu preciso simplesmente ao localizar o cliente.

Pelo Nome ou Fantasia

Utilizando o campo auto-complete

Tentei coloca o seguinte select, mais não tive sucesso…

SELECT id_cliente, nome as cliente
FROM clientes
UNION ALL
SELECT id_cliente, fantasia as cliente
FROM clientes

alguém tem idéia como eu faço isso.

(Haroldo) #2

Crie uma view para concatenar as strings num único campo.Nunca testei mas acredito que funcione.

(Diogo Toscano) #3

funciona sim, pois vai pegar no universo do resultado do recordset criado na view.

Mas acredito q subselect ja resolva, tem q testar:

Select
id_cliente,
cliente
FROM
(
SELECT id_cliente, nome as cliente FROM clientes
UNION ALL
SELECT id_cliente, fantasia as cliente FROM clientes
)temptable

(Régis Matos) #4

Se eu colocar o select direto no phpmyadmin funciona…

A ideia é boa, acho que estamos no caminho, mais deu esse erro…

Erro ao acessar o banco de dados
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘FROM WHERE = 878’ at line 1
SELECT FROM WHERE = 878

ao abrir a aplicação…

e também no modo insert, não funciona…

Lembrando que estou usando texto auto complete.

E no texto digitado (AutoComplete) quero digitar o nome ou fantasia e já localizar o cliente…

alguém já conseguiu fazer isso?

(Diogo Toscano) #5

é, faz a view mesmo :-p

(belgadata) #6

bom dia,

Eu faço assim:

Select
id_cliente,
Nome_cliente || ’ - N.Fantasia=> ’ || Nome_fantasia || ’ - CPF_CNPJ=> ’ || cpf_cnpj
FROM

view_Clientes

com autocomplete e opcao de pesquisa “qualquer parte” , podemos achar o cliente por uma das tres informacões. Todos podem concatenar com sua preferencia.

Criando a view, fica bem flexivel (configuravel) por cliente o que será concatenado fica no banco e não no codigo (projeto).

Abraços a todos !

(Régis Matos) #7

Que coisa emmm… Não consegui… parece brincadeira…

O mais próximo que cheguei foi fazer um select.

Select
id_cliente,
sc_concat(nome, ’ - N.Fantasia=> ’ , fantasia)
FROM clientes

Quase deu certo… rsrsrs

Talvez se a NetMake revisasse esse comando ( SC_CONCAT ) daria pra usar ele rsrsrsrs

(Haroldo) #8

Tentou criar a view no banco?

(Régis Matos) #9

Tentei,

CREATE ALGORITHM = UNDEFINED VIEW view_clientes AS SELECT id_cliente, nome, fantasia
FROM clientes

Tentei de outras formas também…

CREATE ALGORITHM = UNDEFINED VIEW view_clientes AS SELECT id_cliente, nome || " - N. Fantasia " || fantasia
FROM clientes

E nada…

O bom seria se esse sc_concat funcionasse nessa situação.

(robertobru) #10

O meu funciona assim:

Script gerado pelo Phpmyadmin, banco Mysql:
CREATE ALGORITHM=UNDEFINED DEFINER=root@localhost SQL SECURITY DEFINER VIEW view_cliente AS select clientes.cod AS codigo,concat(clientes.fantasia,_latin1’ - ',clientes.end_cliente) AS nome from clientes;

Scriptcase:
No filtro, campo cod,

SELECT codigo, nome
FROM view_cliente
ORDER BY nome ASC

(Régis Matos) #11

Roberto, eu fiz = vc falou… mais achei meio estranho…

O bom mesmo… seria se esse select funcionasse…

Tipo, pega o nome ou razão…

Do jeito que eu consegui aqui… ficou nome + razão

O bom é se fosse nome ou razão

Exatamente = o retorno desse select…

Ai ficaria show mesmo… pq o cliente as x quer localizar pelo nome ou razão… mais de forma simples…

SELECT id_cliente, nome as cliente
FROM clientes
UNION ALL
SELECT id_cliente, fantasia as cliente
FROM clientes

(Régis Matos) #12

No tipo de campo Select, funcionou com o select que o Haroldo(Infinitus Web 2.0) fez…

Muito bom mesmo…

Mais seria melhor digitar qualquer parte do nome do cliente e já localizar…

Tipo, qualquer parte do nome ou fantasia

Seria melhor usar o auto complete, mais ele não está retornando o select…

Será q é mais um bug do campo???

Ou é eu que não estou conseguindo fazer o Select mesmo…

Select
id_cliente,
cliente
FROM
(
SELECT id_cliente, nome as cliente FROM clientes
UNION ALL
SELECT id_cliente, fantasia as cliente FROM clientes
)temptable

ou

SELECT id_cliente, nome as cliente
FROM clientes
UNION ALL
SELECT id_cliente, fantasia as cliente
FROM clientes