Pegar preço diferenciado no produto

Pessoal eu preciso selecionar um produto e ao seleciona-lo tenho que ir na tabela clienteXdesconto, e verificar se aquele cliente possui algum desconto especial para o produto selecionado.
Caso sim tem q já trazer o novo preço no preço unitário.
Alguém poderia dar uma mão em como fazer é com eventos ajax???

Obrigado

Evento onchange no campo codigo do produto:
Algo assim:

$_sel="Select desconto from clienteXdesconto where id_produto={id_produto} and id_cliente={id_cliente}";
sc_lookup(ds,$_sel);
if (!empty({ds})):
  {preco_unitario_com_desconto}=round({preco_unitario}*$ds[0][0]/100,2);
endif;

Obrigado.
Porém não esta funcionando. Meu campo na tela, é um campo tipo select do scriptcase com a lookup que puxa descrição do produto.
Como faço para puxar o código invés da descrição do produto?
Usei essa macro para ver o q ele estava passando
sc_ajax_message({PRODUTO}, “Título”, “Parâmetro”, “Parâmetros_Redir”);

Seu campo select deve ter um lookup automático do tipo : Select id_produto, descricao_produto from produtos …

O próprio campo select guarda o id do produto.

Haroldo, pesquisei bastenate e ja consegui fazer parte

mas não consigo atualizar ainda o campo se tiver um valor diferenciado para o cliente: Estou colcoacando meu codigo abaixo
que utilizo na onchange do produto

O problema esta no while porém nao sei onde…

$Cont = 0;
$AVista = 0;
$APrazo = 0;
$Desc = 0;
$Encontrou = 0;
//Pega cliente e forma pgto do cabeçalho
$Sql = "SELECT CLIENTE, F_PGTO FROM scped001 where EMPRESA = 1 and CODIGO = ";
$Sql = $Sql.{CODIGO};
sc_lookup(data,$Sql);
$Cliente = {data[0][0]};
$Fpgto = {data[0][1]};
//SELECIONA SE TIVER PRECOS DIFERENCIADOS

$Sql = “SELECT VLR_AVISTA, VLR_PRAZO, PERC_DESC FROM desc001 WHERE EMP_PROD = ‘1’ AND PRODUTO =’”
.{PRODUTO}."’ AND CLIENTE = ‘".$Cliente."’";
$Cont = 0;
sc_lookup(data,$Sql);
while($data->EOF)
{
if ({data[$Cont][0]} > 0)
{
$AVista = {data[$Cont][0]};
}
if ({data[$Cont][1]} > 0)
{
$APrazo = {data[$Cont][1]};
}
if ({data[$Cont][2]} > 0)
{
$Desc = {data[$Cont][2]};
}
$Cont = ($Cont + 1);
$data->MoveNext();
}

se seu select retorna apenas um registro faça assim:

sc_lookup(ds, $_sel);
if (!empty($ds)) {
$AVista = {data[0][0]};
$APrazo = {data[0][1]};
$Desc = {data[0][2]};
}

Haroldo essa [e minha dificuldade,
Pois tem casos de ter mais de um registro no banco.

Como faço para percorrer o dataset?

tentei o exemplo de while que o scriptcase tem mas ele não roda o evento (acho q por erro de código)

Veja no web help a macro SC select

Observe que o lookup realizado foi precedido do…
$_sel = “SELECT VLR_AVISTA, VLR_PRAZO, PERC_DESC FROM desc001 WHERE EMP_PROD = ‘1’ AND PRODUTO =’”
.{PRODUTO}."’ AND CLIENTE = ‘".$Cliente."’";

Logo o ‘where’ já realizou o tratamento, ou realiza o tratamento que quer, mas tente explicar melhor com o que você quer dizer com…
“Pois tem casos de ter mais de um registro no banco.”
Dê exemplo em cima da sua estrutura para podermos ajudar melhor…