FORM HISTORICO DE CLIENTE ATRAVES DE CAMPO VIRTUAL É POSSIVEL?

28/02/2013

1

Bom Amigos Colaboradores,

Preciso mais uma vez das vossa orientações.

Meu Problema é o seguinte:
Estou desenvolvendo um sistema único e exclusivo para emissão de OS para uma oficina de carro. Tenho meu form de Cadastro para o veiculo, o cliente e para o Cadastro de OS.

No entanto, ao cadastrar a OS no Form da mesma, existe alguns campos especifico como (NOME DO CLIENTE, CONTATO, CPF, PLACA DO VEICULO, MARCA, MODELO, etc.),que não serão digitado, pois ja possui cadastro dos mesmos em formulario proprio, e a forma de captura dos mesmo se dá atraves de um outro formulario de consulta que é aberto ao clica no botao. É feito a pesquisa e os dados retornados são transferidos para o form OS.

Até aqui está tudo ok.

Porem, ao realizar a pesquisa, ele retorna nos campos acima apenas o codigo do cliente, por exemplo, pesquise por Pedro e foi retornado em cadas campo o numero do cadastro dele. Então crie campos virtuais para exibir os dados.

Mas o meu Problema vem agora.

Pois preciso criar historico de OS por cliente, por veiculo e por Periodo. O Historico por periodo ja foi feito.

Mas para os de cliente e veiculo estou com duvidas, pois os campos dos dados acima, registram na tabela apenas o codigo do cliente e nao os dados exibidos nos campos virtuais.

Fiz o form de historico do cliente, crie um TZQuery (ZEOS) de consulta, no SQL do Componente ficou assim: "SELECT * FROM OS WHERE NOME_CLIENTE LIKE :NOME_CLI".

Claro e evidente que se consulta pelo nome do cliente no form historico não vai aparecer nada, mas se consultar pelo codigo ai sim exibirá.

Minha pergunta é: como contornar isso, para que possa realizar a consulta pelo nome do cliente, embora na tambem OS esta apenas o codigo no campo NOME_CLIENTE?
Tem como fazer essa consulta atraves de um campo virtual e retornar o valor pretendido?

Componentes de Conexão com Banco : ZEOS
Banco : FIREBIRD

Desculpe a extensão do questionamento, mas precisa relatar minuciosamente para entender a questão.

Obrigado,
Responder

Posts

'select * from os where nome_cliente like ''%' + edtit1.text + '%'' '

tenta esse select dentro do delphi e veja se aparece os nomes.
Responder

01/03/2013

Junior Miranda

1 - Como estão sendo criados estes campos virtuais(Lookup), se você não guarda o ID do veículo na OS?
2 - Com relação a pesquisa, o seu cliente pode pesquisar pelo campo "NOME" e o seu software passa para o parâmetro de consulta, o ID equivalente.

[]'s
Responder

Mas para os de cliente e veiculo estou com duvidas, pois os campos dos dados acima, registram na tabela apenas o codigo do cliente e nao os dados exibidos nos campos virtuais.

Como está a estrutura de sua tabela Histórico? Com apenas o código do cliente na tabela você pode depois pegar o nome dele e outros dados usando junção.


Fiz o form de historico do cliente, crie um TZQuery (ZEOS) de consulta, no SQL do Componente ficou assim: "SELECT * FROM OS WHERE NOME_CLIENTE LIKE :NOME_CLI".

Claro e evidente que se consulta pelo nome do cliente no form historico não vai aparecer nada, mas se consultar pelo codigo ai sim exibirá.

Minha pergunta é: como contornar isso, para que possa realizar a consulta pelo nome do cliente, embora na tambem OS esta apenas o codigo no campo NOME_CLIENTE?
Tem como fazer essa consulta atraves de um campo virtual e retornar o valor pretendido?

Novamente, depende muito de como foram estruturadas as suas tabelas, como o banco foi planejado.


Boa sorte e bons códigos!
Responder