Autor Tópico: Ajuda: Não sei como trazer dados de outra tabela para os campos de um formulário  (Lida 2527 vezes)

Maurélio

  • Avançado
  • ****
  • Mensagens: 304
  • O eterno Aprendiz.'.
    • Email
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
Marco Aurélio

Endrigo

  • Intermediário
  • ***
  • Mensagens: 242
    • Email
Re:Ajuda: Não sei como trazer dados de outra tabela para os campos de um formulário
« Responder #1 Online: Agosto 24, 2013, 02:59:12 pm »
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.
Endrigo Rodrigues
(31)3464-1020
CentOS 6 64bits + ScriptCase 8.00.0041 + PostgreSQL 9.3

Maurélio

  • Avançado
  • ****
  • Mensagens: 304
  • O eterno Aprendiz.'.
    • Email
Re:Ajuda: Não sei como trazer dados de outra tabela para os campos de um formulário
« Responder #2 Online: Setembro 04, 2013, 10:32:49 pm »
Olá Endrigo,

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

[]´s
Marco Aurélio

biggomes

  • Novato
  • *
  • Mensagens: 11
Re:Ajuda: Não sei como trazer dados de outra tabela para os campos de um formulário
« Responder #3 Online: Setembro 05, 2013, 12:04:38 pm »
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]};   
}

italo2303

  • Iniciante
  • **
  • Mensagens: 97
Re:Ajuda: Não sei como trazer dados de outra tabela para os campos de um formulário
« Responder #4 Online: Setembro 11, 2013, 04:25:14 pm »
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!!!!!!!!!!

infoseg

  • Novato
  • *
  • Mensagens: 1
    • Email
Re:Ajuda: Não sei como trazer dados de outra tabela para os campos de um formulário
« Responder #5 Online: Outubro 07, 2015, 12:27:37 pm »
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...

Thyago Brasil

  • Expert
  • *****
  • Mensagens: 889
  • Crê no Senhor Jesus e será salvo tu e tua família
    • www.brasdesign.com.br
    • Email
Re:Ajuda: Não sei como trazer dados de outra tabela para os campos de um formulário
« Responder #6 Online: Outubro 07, 2015, 01:36:47 pm »
O Evento onChange é um Evento Ajax existente no scriptcase.
Thyago Brasil
Desenvolvedor Web
Site: http://www.brasdesign.com.br

SC 5.02/SC 8.1

flatrix16

  • Novato
  • *
  • Mensagens: 34
    • Email
Re:Ajuda: Não sei como trazer dados de outra tabela para os campos de um formulário
« Responder #7 Online: Outubro 16, 2015, 03:48:03 pm »
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


« Última modificação: Outubro 16, 2015, 04:15:34 pm por flatrix16 »

Willian Fernando

  • Expert
  • *****
  • Mensagens: 1148
  • .....
    • Email
Re:Ajuda: Não sei como trazer dados de outra tabela para os campos de um formulário
« Responder #8 Online: Outubro 16, 2015, 04:00:47 pm »
Estou com o mesmo problema, já tentei fazer conforme está descrito acima, mas para mim não deu certo! preciso de ajuda...

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

flatrix16

  • Novato
  • *
  • Mensagens: 34
    • Email
Re:Ajuda: Não sei como trazer dados de outra tabela para os campos de um formulário
« Responder #9 Online: Outubro 18, 2015, 10:41:31 am »
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.

« Última modificação: Outubro 18, 2015, 10:43:28 am por flatrix16 »

ramosinfo

  • Intermediário
  • ***
  • Mensagens: 149
Re:Ajuda: Não sei como trazer dados de outra tabela para os campos de um formulário
« Responder #10 Online: Maio 28, 2016, 05:24:29 pm »
No meu aparece os dados, mas não salva na tabela...

Jailton

  • Expert
  • *****
  • Mensagens: 2034
Re:Ajuda: Não sei como trazer dados de outra tabela para os campos de um formulário
« Responder #11 Online: Maio 28, 2016, 05:34:05 pm »
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.
O Princípio da Vibração. "Nada está parado, tudo se move, tudo vibra". Caibalion.

ramosinfo

  • Intermediário
  • ***
  • Mensagens: 149
Re:Ajuda: Não sei como trazer dados de outra tabela para os campos de um formulário
« Responder #12 Online: Maio 28, 2016, 06:03:40 pm »
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]};

« Última modificação: Maio 28, 2016, 06:05:27 pm por ramosinfo »

dellapiazza

  • Intermediário
  • ***
  • Mensagens: 172
    • Email
Re:Ajuda: Não sei como trazer dados de outra tabela para os campos de um formulário
« Responder #13 Online: Maio 29, 2016, 01:49:56 pm »
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]};
André Della Piazza
SC 8.1 / Win Server 2008 R2 / SQL Server 2014 Express