Iniciar uma conversa

Utilizando as macros sc_lookup e sc_exec_sql

Exibindo Campos de duas tabelas na mesma aplicação.

Nesse tutorial iremos mostrar como exibir e manipular dados de duas tabelas diferentes em uma única aplicação.

Usaremos tabelas que representam pedidos e clientes, onde cada pedido tem seu cliente, iremos exibir dados do cliente nessa aplicação de pedidos.

Primeiramente iremos criar uma aplicação formulário baseado na primeira tabela, tabela de pedidos.

Nessa aplicação temos que criar campos para exibir os valores do cliente da tabela clientes.

 

Exibindo dados da segunda tabela

Criaremos um método PHP que chamaremos de carregarCliente, nesse método inclua o código abaixo:

 

$customer = {customerid};

sc_lookup(cliente, "SELECT

companyname, contactname, stateid , city, address , creditlimit

FROM

customers

WHERE

customerid = '$customer'");

 

if(!empty({cliente})){

 

{companyname} = {cliente[0][0]};

{contactname} = {cliente[0][1]};

{stateid} = {cliente[0][2]};

{city} = {cliente[0][3]};

{address} = {cliente[0][4]};

{creditlimit} = {cliente[0][5]};

}

 

Aqui estamos usando a macro sc_lookup(), com essa macro podemos resgatar registros do banco de dados executando um SELECT em qualquer tabela do banco de dados.

Nessa macro passamos 2 parâmetros, no primeiro informamos um dataset para resgatar os valores. damos qualquer nome para esse dataset, no exemplo iremos nomea-lo de cliente. O segundo parâmetro informamos uma String com o comando sql SELECT para resgatar os valores.

Esse dataset é uma matriz PHP onde temos duas posições entre colchetes. No primeiro colchete informamos a linha da matriz, no segundo informamos a coluna.

 

No evento onLoad chamaremos nosso método carregarCliente, inserindo a linha de comando abaixo:

carregarCliente();

 

Alteramos o campo cliente do formulário para tipo select e criamos um evento onChange nesse campo chamando o método carregarCliente, incluindo a linha abaixo:

carregarCliente();

 

Alterando dados das duas tabelas ao mesmo tempo

Para alterar os dados da segunda tabela (Cliente) insira o código abaixo no evento onBeforeUpdate

 

$customerid = {customerid};

$companyname = {companyname};

$contactname = {contactname};

$stateid = {stateid};

$city = {city};

$address = {address};

$creditlimit = {creditlimit};

 

if((!empty($customerid)) && (!empty($companyname)) && (!empty($contactname)) && (!empty($stateid)) &&

(!empty($city)) && (!empty($address)) && ($creditlimit >= 0)){

 

sc_exec_sql("UPDATE

customers

SET companyname = '$companyname', contactname = '$contactname',

stateid = '$stateid', city = '$city', address = '$address', creditlimit = '$creditlimit'

WHERE

customerid = '$customerid'");

 

}else{

sc_error_message("existe campos vazio.");

}

 

Aqui estamos usando a macro sc_exec_sql, com ela podemos dar comandos SQL, como por exemplo INSERT, UPDATE, DELETE.

No exemplo o que estamos fazendo é atualizando a tabela de cliente de acordo com as alterações feitas.

Escolher arquivos ou arraste e solte arquivos
Esse artigo foi útil?
Sim
Não
  1. Ronyan Alves

  2. Publicado

Comentários