carregar campos do formulario...help...@@@ RESOLVIDO @@@

Olá, estou apanhando com uma coisa simples mas não consegui resolver até agora…alguém poderia me dar uma luz ?

sc_lookup(dataset,“select UnitPrice from products
WHERE ProductID = ‘{ProductID}’”);

if(!empty({dataset}[0][0])){

{UnitPrice} = {dataset}[0][0];
sc_set_focus('Quantity');

}
else{
{UnitPrice} = 0;
sc_set_focus(‘UnitPrice’);
}

Peguei dos samples do sc form38_1

Quero encaixar no meu formulario pedido_itens

nome da tabela = produtos
campo da tabela produtos (para pegar produto e preço)
produtos campo = produtos
preço campo = valor_final

campo na tabela formulario pedidos_itens

nome da tabela pedido_itens
produtos campo = produtos
preço campo = valor_unitario

Tudo isso usando o evento onchange do ajax

Coloquei desse jeito mas naum funfa…

sc_lookup(dataset,“select valor_final from produtos
WHERE produtos = ‘{produtos}’”);

if(!empty({dataset}[0][0])){

{? ? ?} = {dataset}[0][0];
sc_set_focus('Quantidade');

}
else{
{? ? ?} = 0;
sc_set_focus(’? ? ?’);
}

qual seria o correto ?

Agradeço desde jah…bye

Vc quer pegar o valor final do produto e colocar no valor unitário da tabela pedidos itens?

Caro,
teste com esse código por gentileza.

sc_lookup(dataset,“select valor_final from produtos
WHERE produtos = ‘{produtos}’”);

if(!empty({dataset[0][0]})){

{? ? ?} = {dataset[0][0]};
sc_set_focus('Quantidade');

}
else{
{? ? ?} = 0;
sc_set_focus(’? ? ?’);
}

para testar o retorno do dataset você pode colocar um echo.
EX: echo {dataset[0][0]};

Correto eu quero que na hora que escolher o produto para a venda, ja seja carregado o campo do valor…

Onde está “? ? ?” eu não sei o que colocar pois já testei tudo e nada…

Vc coloca o nome do campo que tem que receber o valor, exatamente como ele é escrito.
E o código deve estar no evento ajax (onChange) do campo que vai disparar o evento.

No exemplo abaixo, ele busca o preço sugerido do produto na tabela produtos, se tiver, seta o preço sugerido num campo de nome valor_final e move o foco para um campo de nome Quantidade. Se não tiver, seta 0 no campo valor_final e move o foco para o campo valor_final.

Observe o case sensitive em nomes de campos e variáveis.

sc_lookup(dataset,“select valor_final from produtos
WHERE produtos = ‘{produtos}’”);

if(!empty({dataset[0][0]})){

{valor_final} = {dataset[0][0]};
sc_set_focus('Quantidade');

}
else{
{valor_final} = 0;
sc_set_focus(‘valor_final’);
}

Padronizei tudo agora nas tabelas e ficou assim…

sc_lookup(dataset,“select valor from produtos = faz um select no banco de dados na tabela produtos
WHERE produto = ‘{produto}’”); = onde campo chamado produto = produto

if(!empty({dataset}[0][0])){

{valor} = {dataset}[0][0];                           =     campo valor
sc_set_focus('quantidade');                           =     campo quantidade

}
else{
{valor} = 0; = campo valor
sc_set_focus(‘valor’); = campo valor
}

Está acontecendo que ao selecionar o produto ele não mostra o preço e nem vai para o campo quantidade automático…fica tudo em branco…

erenha,

A contrução do código está correta.

Vamos tentar depurar:

O dataset está retornando valor, ou seja, está devolvendo o valor do produto?
No formulário, o nome do campo que recebe o valor do dataset chama-se valor?
Como vc está construindo o evento ajax?

Para testar coloque este código no evento onLoad do seu formulário:

Pegar o valor final do produto código 1 da tabela
sc_lookup(dataset,“select valor_final from produtos WHERE produtos = ‘1’”);

// Se o dataset não retorna vazio
if(!empty({dataset[0][0]})){

 // Seta o valor final no campo
{valor_final} = {dataset[0][0]};

}
else{

 // Seta 0 no campo
{valor_final} = 0;

}

Se isto funcionar, o problema pode estar na construção do evento ajax.

Deixei só esse código e ele naum retorna o valor do primeiro item…

O Dataset não esta retornando?

Ele não me mostra nada…

Olá,

Poderias tentar isto:

sc_lookup(dataset,“select valor_final from produtos WHERE produtos = 1”);

E dizer se retorna alguma coisa?

vou testar…

vlw

Nada acontece e estou usando em modo debug e aparece isso

(mysql): select valor from produtos WHERE produto = 1

ele vai para o campo de preço mas não preenche nada e usando o exemplo do form38_1 ele preenche o campo preço e vai para o caampo quantidade automatico…

Usei

SELECT valor FROM produtos WHERE 1

no mysql e retorna os valores corretamente dos 3 produtos…

ou seja é no sc que estou errando…

Fiquei curioso!!! Este código é simples e já era para estar funcionado.

Parceiro, se quiser manda alguns prints de tela no meu e-mail: cleytoneuler@federalsolutions.com.br

*** RESOLVIDO ***

o código correto ficou assim

sc_lookup(dataset,“select valor from produtos
WHERE id = ‘{produto}’”);

if(isset({dataset}[0][0])){

{valor} = {dataset}[0][0];
sc_set_focus('quantidade');

}
else{
{valor} = 0;
sc_set_focus(‘valor’);
}

tava colocando produto / produto por isso retornava o codigo do produto WHERE id = ‘{produto}’");

VLW AOS COLEGAS AQUI E AO HAROLDO QUE ME AJUDO A ACHAR O ERRO…

VLW GALERA !!!