uso sc_lookup

(Paulo (ClickInformatica)) #1

Olá a todos

Estou com um problema no seguinte:
Estou cadastrando um veiculo ( exemplo)
quando coloco a placa ele tras a descrição do modelo. até aqui beleza.
A questão e que eu queria que ele trouxesse também
marca,cor,combustivel, etc… ( várias informações do carro em questão ) acredito que devo utilizar o SC_LOOKUP, mas não sei como fazer isso.

Agradeço a ajuda de todos…

Paulo José
Click Informatica.

(system) #2

Olá Paulo, boa tarde…

Dá pra criar um evento ajax (onchange ou onblur) no campo Placa, e fazer o uso da macro sc_lookup, como vc disse… ficaria algo assim nesse evento:

sc_lookup(dscarro,"SELECT modelo, marca, cor, combustivel, ... FROM veiculos WHERE placa = ''{campo_placa}");
if (!empty({dscarro}) && {dscarro} != FALSE)
{
{campo_modelo} = {dscarro}[0][0];
{campo_marca} = {dscarro}[0][1];
{campo_cor} = {dscarro}[0][2];
{campo_combustivel} = {dscarro}[0][3];
{campo_...} = {dscarro}[0][...];
}

Não sei se era isso que queria, mas espero ter ajudado…

Att.
Robson

(Paulo (ClickInformatica)) #3

Olá Robson,

Obrigado pela sua ajuda.
usei o sc_lookup da seguinte forma:
Criei dois campos ( como label )
no evento onchange coloquei o codigo.

sc_lookup(dscarro, "
SELECT
marcas.mar_descricao,modelo.mod_descricao
FROM
venda_veiculos INNER JOIN veiculos ON venda_veiculos.venda_veiculo = veiculos.vei_placa
INNER JOIN marcas ON veiculos.vei_marca = marcas.mar_id
INNER JOIN modelo ON veiculos.vei_modelo = modelo.mod_id
WHERE vei_placa = ‘{venda_veiculo}’ ");

if (!empty({dscarro}) && {dscarro} != FALSE)
{
{marca} = {dscarro}[0][0];
{modelo} = {dscarro}[0][1];

}

Beleza total, trouxe as informações que eu precisava.
O problema é que o sc_lookup só esta trazendo na hora da inclusão. Gostaria de uma maneira que ele exiba depois que grave o registro.

Grato

Paulo

(Cleyton Euler) #4

Use o código nos eventos da aplicação. onAfterInsert: executa depois de inserir no banco por exemplo.

(system) #5

Olá Paulo,

No seu caso vc colocou este código apenas no evento ajax, ou seja, ele irá buscar e mostrar estas informações apenas ao alterar o campo placa… para aparecer em todos os registros, coloque o mesmo código no evento onLoad do formulário. Desta forma, sempre que o usuário abrir o form, os 2 campos labels também serão preenchidos.

Att.
Robson

(Paulo (ClickInformatica)) #6

Resolvido

Obrigado pela a ajuda, Kleyton e Robson

Coloquei no evento Onload
e resolveu o problema.
Obrigado novamente.