Ajuda: Não sei como trazer dados de outra tabela para os campos de um formulário

Olá pessoal,

Imagina que isto deve ser uma coisa simples, mas não estou sabendo como fazer e preciso da ajuda de vocês.

Imaginem o seguinte. Tenho um formulário de abertura de OS e neste formulário tem os campos:

Cliente
Endereço
Cidade
Telefone

Os dados do cliente estão na tabela “clientes”, com todas estas informações.

Preciso que ao digitar o nome do cliente, onde estou usando o auto-complete, após escolher o cliente as outras informações que estão na tabela de clientes sejam trazidas para este formulário automaticamente, pois preciso deixar gravados aqui também. Um cliente pode mudar de endereço, mas não posso alterar uma OS mais antiga.

E tem mais uma outra coisa neste formulário que eu não sei fazer. É o seguinte:

Tenho uma tabela de equipamentos e cada equipamento cadastrado é de um cliente. Esta informação já está na tabela de equipamentos.

A OS é para apenas um equipamento e não precisará ter mais de um, como um mestre detalhe.

Só que quando eu for escolher o equipamento também deve aparecer somente os equipamentos do cliente específico e não todos.

Por favor, já assisti a todos os vídeos de treinamento e li quase tudo que achei nada deste tipo.

Tentei usar o sc_lookup em um evento ajax on-change no cliente, mas não está dando nada certo.

Vocês podem me dar uma explicação de como devo fazer isto?

Agradeço antecipadamente.

Obrigado.
MA

O sc_lookup, vc está fazendo o que com as informações?

O correto seria vc criar os campos manualmente que vai contemplar os dados do cliente e que não faz parte da tabela de OS, criar um método em Programação/Métodos PHP para fazer o sc_lookup e preencher o conteúdo desses campos, executar esse método no OnLoad e no OnRecord, e no OnChange do campo cliente.

Olá Endrigo,

Obrigado pelo retorno.
Você pode me dar um exemplo deste método que devo criar?

[]´s

sc_lookup(dttomador,“SELECT logradouro, bairro, cidade, uf, cep, telefone FROM dibc_tomador WHERE id_tomador = tomador_id_tomador}”);

if(!empty({dttomador}))
{
{endereco_tomador} = {dttomador[0][0]};
{bairro_tomador} = {dttomador[0][1]};
{cidade_tomador} = {dttomador[0][2]};
{estado_tomador} = {dttomador[0][3]};
{cep_tomador} = {dttomador[0][4]};
{telefone_tomador} = {dttomador[0][5]};
}

Cara isso já passei! pra mi foi terrível… passei uma semana pra descobri isso.

Analisei bem o Scriptcase e alguns exemplos na AJUDAR e conseguir , acho que foi um milagre!.

segue o código para cópia ou trazer dados de uma tabela , um detalhe é que pode ser tabelas que não tenham também algum tipo de ligação ou seja não precisa ter ligação como por exemplo mestre detalhe:

======== No evento ‘onChange’ do campo ao seleciona-lo ou digita-lo coloque===================

$check_sql = ‘SELECT campo1 ,campo2’
. ’ FROM tabela onde será copiado os dados’
. " WHERE campo da tabela onde será copiado os dados=’" . {um campo da tabela que receberá os dados} . “’”;

//{um campo da tabela que receberá os dados} esse campo normalmente será igual o campo da campo da tabela onde será copiado os dados, nesse campo quando você selecionar automaticamente os dados será copiados no evento ‘onChange’

//seguindo o código

sc_select(rs, $check_sql);

//initialize the field
{dataentrada_add} = 0;
if (false == {rs}) // Error while accessing database(validação básica)
{
sc_error_message(‘Erro ao acessa a Base de dados.’);
}
else

//Percorre toda a tabela
while(!$rs->EOF) -
{
//cópia os dados quais você está querendo
{campo da tabela que receberá os dados}= $rs->fields[0];
{campo da tabela que receberá os dados}= $rs->fields[1];

//fields[0] será igual ao campo1 do ‘$check_sql’ feito na tabela onde será copiado os dados
//fields[1] será igual ao campo2 do ‘$check_sql’ feito na tabela onde será copiado os dados
// no meu caso só queria cópia dos campos campo1 e campo2 da tabela onde será copiado os dados caso queira cópia mais é só adicionar campos no SELECT depois adicionar mais linhas abaixo:{campo da tabela que receberá os dados}= $rs->fields[1]; por exemplo :{campo da tabela que receberá os dados}= $rs->fields[3]…assim em diante…
//move-se para próximo campo da tabela
$rs->MoveNext();
}
//fechar
$rs->Close();
}
===================FIm======================
cara tive muito dificuldade no scriptcase para entender , então tive uma ideia USAR meus conceitos de DELPHI E DEU CERTO, apenas eu associo a programação em DELPHI EM PHP seguindo algumas regras claras do SCRIPTCASE! fica perfeito!

FALOW!!!

evento onchange? ora, como insiro sua solução? ela está correta, mas fora o próprio form, os demais objetos dele não possuem eventos…

O Evento onChange é um Evento Ajax existente no scriptcase.

Estou com o mesmo problema, já tentei fazer conforme está descrito acima, mas para mim não deu certo! preciso de ajuda…

eu tenho a tabela “clientes” com todas as informações no banco, onde estou precisando passar alguns dados para o formulário que criei, essa é a nova tabela do formulário criado “fatura_medico”

preciso passar as seguintes informações dos campos ao digitar o nome do médico:

TABELA CLIENTES TABELA FATURA_MEDICO
cli_nome -> med_nome
cli_cpf -> med_cpf
cli_status -> med_status

Mais informações, mostre o que tu ja tentou fazer, mostre o codigo que tu tem y não da certo, em que parte esta os codigos, de preferencia coloca imagen aqui, si não souber como , faz upload na net y passa o link , por exemplo no imgur.com

Amigo sou novo no scriptcase ainda não sei mexer muito bem, vou lhe mostrar o que fiz:

Criei um novo evento ajax onChange

e coloquei o seguinte código:

$clientes_sql = ‘SELECT cli_cpf, cli_agencia, cli_conta, cli_status, cli_banco’
. ’ FROM clientes’
. " WHERE cli_cpf=’" . {med_cpf} . “’”;

sc_select(rs, $clientes_sql);

{dataentrada_add} = 0;
if (false == {rs}) // Error while accessing database(validação básica)
{
sc_error_message(‘Erro ao acessa a Base de dados.’);
}
else

while(!$rs->EOF) -
{
{med_cpf}= $rs->fields[0];
{med_agencia}= $rs->fields[1];
{med_conta}= $rs->fields[2];
{med_status}= $rs->fields[3];
{med_banco}= $rs->fields[4];

$rs->MoveNext();
}
$rs->Close();
}

não sei se fiz certo, pois não tenho conhecimento em PHP

Segue aqui a tabela e os campos da tabela que utilizei:

  • Tabela clientes -> Campos da tabela clientes: cli_nome, cli_cpf, cli_banco, cli_agencia, cli_conta, cli_status
    Obs.: Essa é a tabela que contem os dados as informações.

*Tabela fatura_medico -> Campos da tabela fatura_medico: med_nome, med_cpf, med_banco, med_agencia, med_conta, med_status
Obs.: Essa é a tabela que irar receber os dados da tabela clientes.

No meu aparece os dados, mas não salva na tabela…

Para salvar na Tabela os campos que você quer tem que existir nesta tabela também, não pode usar campos virtuais criados ali na hora no formulário, coloca o campo que
você quer na sua tabela do banco de dados, e depois entra no formulário em Aplicação > Sincronizar Tabelas, ai você pode fazer a rotina que vai dar certo
ele gravar os dados.

Aparece fora do campo de edição e não dentro do campo de edição (como se fosse um label de fora do campo) e não salva os dados:

$check_sql = ‘SELECT telefone, endereco, numero, complementom bairro, cidade, estado’
. ’ FROM clientes’
. " WHERE Nome = ‘{cliente}’";

sc_select(rs, $check_sql);

{telefone} = {rs[0][1]};
{endereco} = {rs[0][2]};
{numero} = {rs[0][3]};
{complemento} = {rs[0][4]};
{bairro} = {rs[0][5]};
{cidade} = {rs[0][6]};
{estado} = {rs[0][7]};

Ramosinfo, tenta assim (deve iniciar do zero), também esta faltando uma vigurla (,) após complementom

{telefone} = {rs[0][0]};
{endereco} = {rs[0][1]};
{numero} = {rs[0][2]};
{complemento} = {rs[0][3]};
{bairro} = {rs[0][4]};
{cidade} = {rs[0][5]};
{estado} = {rs[0][6]};

Estou com uma duvida parecida, mas preciso trazer em um multiplos registros, fiz dessa forma porém ela só funciona em um forms unico registro.
exemplo eu tenho um Compra e tenho que trazer todos os itens dessa comprar para fazer um check-in entao esse ID vai está em N lugares, porém com esse codigo de cima ele só traz a Primeira compra quando uso unico registro como ja mencionei