Captura de Campos

(Helder) #1

Minha duvida e a seguinte:
Como posso fazer no SC que em um formulário, ao informar o código de um determinado produto ele buscar no cadastro de produtos e me retornar vários campos:
esse é digitado ->Código Produto “1” retorno ->Descrição: “Água Sanitária” Ud: “LT” R$ Unit.: " 1,82"
Existe a possibilidade de fazer isso pois ja tentei de varias formas e não consegui.

SC 4.00.0026 - demo

(Haroldo) #2

sc_lookup(dataset,“comando sql”, “conexão”)
sc_lookup (dataset, “comandoSQL”, “conexão”)

Esta macro permite que o usuário execute comandos SQL e tenha acesso ao “dataset” proveniente do comando. O “dataset” fica disponível, em forma de array (linha/coluna).

Para acessar o próprio dataset, veja a macro sc_select.

O parâmetro “conexão” é opcional, sendo necessário, apenas, se o comando for executado em uma base de dados diferente da especificada para a aplicação.

Ex:
sc_lookup(dataset, “select clienteid, nomecliente, limitecred from clientes” );

Para ter acesso à primeira linha (recordset), teremos:
{clienteid} = {dataset[0][0]};
{nomecliente} = {dataset[0][1]};
{limitecred} = {dataset[0][2]};

Para ter acesso à segunda linha (recordset), teremos:
{clienteid} = {dataset[1][0]};
{nomecliente} = {dataset[1][1]};
{limitecred} = {dataset[1][2]};

Caso ocorra erro na execução do comando sql, a variável atribuida ao dataset retornará como “false” e a mensagem de erro estará disponível na variável “dataset_erro”.
É importante, também, verificar se o select retornou dados, para evitar o acesso a variáveis inexistentes, uma vez que o array de saída só será criado se o comando select retornar dados.

Ex:
sc_lookup(meus_dados, “select clienteid, nomecliente, limitecred from clientes”);
if ({meus_dados} === false){

echo "Erro de acesso. Mensagem = " . {meus_dados_erro};

}
elseif (empty({meus_dados})){

echo "Comando select não retornou dados ";
}
else{

{clienteid} = {meus_dados[0][0]};
{nomecliente} = {meus_dados[0][1]};
{limitecred} = {meus_dados[0][2]};

}

O comando SQL também pode ser composto de campos da aplicação (variáveis locais) ou de variáveis globais:

Ex:
sc_lookup(dataset, “select valor pedido from pedidos where clienteid = '{clienteid} ’ and cod_vendedor = [var_glo_vendedor]”);

Observação: Em qualquer circunstância, o comando tem que ser encerrado com ponto e vírgula “;”.

(Helder) #3

Obrigado pela ajuda…
Vou tentar aqui…