Autor Tópico: Preencher campos automaticamente  (Lida 6389 vezes)

Dário Andrade Santos

  • Intermediário
  • ***
  • Mensagens: 172
    • Email
Re:Preencher campos automaticamente
« Responder #15 Online: Agosto 14, 2012, 04:35:25 pm »
Logo imaginei...

Deve ter algo errado...

Vc está buscando os campos corretos?

na tabela  contas_receber tem lancamentos com o código que vc tá buscando?
Dário Andrade Santos
SC v8.1.006  - Mysql - Windows 7 Pro
São Paulo - SP

Dário Andrade Santos

  • Intermediário
  • ***
  • Mensagens: 172
    • Email
Re:Preencher campos automaticamente
« Responder #16 Online: Agosto 14, 2012, 04:36:39 pm »
se tiver o TeamViewer posso te ajudar remotamente
Dário Andrade Santos
SC v8.1.006  - Mysql - Windows 7 Pro
São Paulo - SP

rrma

  • Global Moderator
  • Expert
  • *****
  • Mensagens: 816
  • Quem com porcos se mistura tanto bate até que fura
    • Email
Re:Preencher campos automaticamente
« Responder #17 Online: Agosto 14, 2012, 04:39:23 pm »
Fred, sei que não é o tipo de resposta que quer receber, mas, humildemente te pergunto: Não seria o caso de você dar uma estudada básica no manual do sc, pelo menos nas funcionalidades e macros mais comuns, talvez rever a lógica das suas tabelas e um pouquinho de php?

Sei que todo começo no sc é difícil, já passei por isso.

O sc só vai te ajudar se vc tiver alguma bagagem de php e modelagem de banco.
Outra coisa que pode te ajudar muito é a pesquisa do forum.

Por favor não me leve a mal, estou aqui pra ajudar.
Rodrigo
Rodrigo Araújo

FredKeyster

  • Expert
  • *****
  • Mensagens: 1702
  • DEWENNINMEN
    • Email
Re:Preencher campos automaticamente
« Responder #18 Online: Agosto 14, 2012, 04:49:04 pm »
De forma alguma Rodrigo, tenho maturidade suficiente para entender seu ponto de vista, e estou estudando sim, sou novato no SC e estou me esforçando ao máximo para aprender. Desculpa se estou poluindo o fórum com perguntas sem nexo ou totalmente leigas. Mas como diz o ditado" A necessidade faz o homem".

Sobre o acesso remoto eu tenho sim Dário, me adiciona no Skype e conversamos.

Abração.


Skype: fredkeyster
F. A.
Analista de Sistemas

rrma

  • Global Moderator
  • Expert
  • *****
  • Mensagens: 816
  • Quem com porcos se mistura tanto bate até que fura
    • Email
Re:Preencher campos automaticamente
« Responder #19 Online: Agosto 14, 2012, 04:51:49 pm »
Fred, posta o dump das tabelas, te ajudo no que for necessário também.
Rodrigo Araújo

FredKeyster

  • Expert
  • *****
  • Mensagens: 1702
  • DEWENNINMEN
    • Email
Re:Preencher campos automaticamente
« Responder #20 Online: Agosto 14, 2012, 05:25:17 pm »
Rodrigo vou por aqui as tabelas relacionada nessa dúvida:

1ª Tabela de contas_bancaria

create table CONTA_BANCARIA
(
   ID_CONTA_BANCARIA    int not null,
   CODIGO_BANCO         int not null,
   AGENCIA              int not null,
   DIG_AGENCIA          int(1),
   CONTA                int not null,
   DIG_CONTA            int(1),
   NOME_BANCO           varchar(55) not null,
   CEP                  varchar(10),
   ENDERECO             varchar(60),
   BAIRRO               varchar(55),
   COMPLEMENTO          varchar(55),
   MUNICIPIO            varchar(55),
   UF                   char(2),
   TELEFONE             varchar(14),
   CELULAR              varchar(14),
   GERENTE              varchar(55),
   CONSI_FLUXO          char(1),
   DATA_ABERTURA        date,
   primary key (ID_CONTA_BANCARIA)
);

Essa tabela têm dados inseridos nela.

2ª é a tabela contas_receber, onde tem uma chave FK da tabela acima, do campo CONTA;


create table CONTAS_RECEBER
(
   ID_CONTAS_RECEBER    int not null,
   CODIGO               int,
   DATA_CONTA           date,
   DESCRICAO            varchar(60),
   CONTA                varchar(45),
   BANCO                varchar(35),
   CENTRO_CUSTO         varchar(55),
   CLIENTE              varchar(65),
   DOCUMENTO            varchar(55),
   DATA_VENCIMENTO      date,
   PREVISAO             char(1),
   VALOR                float,
   PROTADOR             varchar(55),
   ANOTACOES            text,
   primary key (ID_CONTAS_RECEBER)
);


Através dessa 2ª tabela, eu criei o formulário: Contas a Receber onde tem um campo FK_CONTA que é um select, e outro campo BANCO que é exatamente que quero que ao ser selecionado a conta corrente apareça o nome do Banco relacionado a essa C/C.

Isso ajuda?

Na realidade, o problema esta também na forma que tento explicar, Oh senhor! rsrs...

Abração!

F. A.
Analista de Sistemas

rrma

  • Global Moderator
  • Expert
  • *****
  • Mensagens: 816
  • Quem com porcos se mistura tanto bate até que fura
    • Email
Re:Preencher campos automaticamente
« Responder #21 Online: Agosto 14, 2012, 05:48:43 pm »
Fred, pelo que eu entendi, vc não quer apenas escolher um banco num select a partir do contas a receber, vc quer tb capturar o nome do banco num outro campo é isso?
Rodrigo Araújo

rrma

  • Global Moderator
  • Expert
  • *****
  • Mensagens: 816
  • Quem com porcos se mistura tanto bate até que fura
    • Email
Re:Preencher campos automaticamente
« Responder #22 Online: Agosto 14, 2012, 06:05:52 pm »
Com relação a estes detalhe, eu faria assim:

Tabela de contas bancárias
ID_CONTA_BANCARIA    int(11) not null autoincrement

Tabela de contas a receber
ID_CONTA_BANCARIA    int(11) not null

Nomes iguais facilitariam a manutenção posterior;
Mesmo tipo de campo INT nas 2 tabelas
Na tabela 1 usaria autoincremento, na tabela 2 não.
Eu padronizo todas as minhas tabelas e campos, sempre minusculo, sem espaço, usando apenas "_" pra separar palavras.

Na tela de contas a receber, apenas este campo como tipo select:
SELECT id_conta_bancaria, nome_conta_bancaria FROM contas_bancarias ORDER BY nome_conta_bancaria)
nome_conta_bancaria vc pode interpretar como o campo que descreve em texto de qual conta se trata, pra exibir pro usuário.
Ideal que a tabela de contas bancárias tenha um índice por este campo também.

O select, no momento do submit do form, vai gravar no contas a receber apenas o ID da conta bancária. Essa deve ser a única informação que vc precisa, pois se precisar pegar algum campo da conta depois, basta vc pesquisar no banco, evitando redundância de dados no banco, a não ser que vc precise mesmo desta descrição, depende do seu caso.

Se vc quiser pegar realmente o nome do banco pra gravar no contas a receber, vc pode criar um evento ajax (onChange) do campo conta bancária no contas a receber. Assim que vc escolher a conta no select, essa função pesquisaria essa descrição no banco e jogaria ela no campo que vc quer no contas a receber.
Rodrigo Araújo

FredKeyster

  • Expert
  • *****
  • Mensagens: 1702
  • DEWENNINMEN
    • Email
Re:Preencher campos automaticamente
« Responder #23 Online: Agosto 14, 2012, 08:56:42 pm »
Rodrigo fiz como combinado, só modifiquei o nome dessa maneira: que da no mesmo.

Tabela de contas bancárias
CONTA    int(11) not null autoincrement

Tabela de contas a receber
CONTA    int(11) not null

Na tela de contas a receber eu fiz:

SELECT ID_CONTA_BANCARIA, CONTA FROM conta_bancaria ORDER BY CONTA

E esse campo tem um índice sim.

Eu preciso pegar o nome de cada conta e jogar em outro campo, fazendo isso no evento ajax no onChange ficou assim: (O Dário esta me dando uma grande ajuda remota e ele me fez esse select)

$check_sql = "SELECT *"
   . " FROM conta_bancaria"
   . " WHERE CONTA = '{CONTA}'";
sc_lookup(rs, $check_sql);

if (isset({rs[0][0]}))     // Row found
{
    {BANCO} = {rs[0][0]};
   
}
      else     // No row found
{
   
   
}


Mas o campo BANCO da tabela contas_receber não é atualizado com o nome do banco q que se refere cada conta q o usuário escolher.
F. A.
Analista de Sistemas

FredKeyster

  • Expert
  • *****
  • Mensagens: 1702
  • DEWENNINMEN
    • Email
Re:Preencher campos automaticamente
« Responder #24 Online: Agosto 14, 2012, 09:00:46 pm »
Sim, pra não complicar, como eu mudei o nome dos campos na tabela vou por elas aqui atualizadas (Cor vermelho):

create table CONTA_BANCARIA
(
   ID_CONTA_BANCARIA    int not null,
   CODIGO_BANCO         int not null,
   AGENCIA              int not null,
   DIG_AGENCIA          int(1),
   CONTA                int not null,
   DIG_CONTA            int(1),
   NOME_BANCO           varchar(55) not null,
   CEP                  varchar(10),
   ENDERECO             varchar(60),
   BAIRRO               varchar(55),
   COMPLEMENTO          varchar(55),
   MUNICIPIO            varchar(55),
   UF                   char(2),
   TELEFONE             varchar(14),
   CELULAR              varchar(14),
   GERENTE              varchar(55),
   CONSI_FLUXO          char(1),
   DATA_ABERTURA        date,
   primary key (ID_CONTA_BANCARIA)
);


create table CONTAS_RECEBER
(
   ID_CONTAS_RECEBER    int not null,
   CODIGO               int,
   DATA_CONTA           date,
   DESCRICAO            varchar(60),
  CONTA                int not null,
   BANCO                varchar(35),
   CENTRO_CUSTO         varchar(55),
   CLIENTE              varchar(65),
   DOCUMENTO            varchar(55),
   DATA_VENCIMENTO      date,
   PREVISAO             char(1),
   VALOR                float,
   PROTADOR             varchar(55),
   ANOTACOES            text,
   primary key (ID_CONTAS_RECEBER)
);
F. A.
Analista de Sistemas

rrma

  • Global Moderator
  • Expert
  • *****
  • Mensagens: 816
  • Quem com porcos se mistura tanto bate até que fura
    • Email
Re:Preencher campos automaticamente
« Responder #25 Online: Agosto 14, 2012, 09:21:02 pm »
Acho que no onChange do select de contas vai ficar mais ou menos assim:
É o nome do banco que vc quer?

$sql = "SELECT NOME_BANCO from CONTA_BANCARIA WHERE  ID_CONTA_BANCARIA = {SEU_CAMPO_CONTA_TIPO_SELECT}";
sc_lookup(rs_conta, $sql);
if (isset({rs_conta[0][0]}))     // Row found
{
    {BANCO} = {rs_conta[0][0]};
}
      else     // No row found
{
     sc_error_message("Banco não selecionado");
}

Aproveita esses trechos de código pra ir estudando. Procura entender linha a linha o que está acontecendo, ajuda muito.
Rodrigo Araújo

FredKeyster

  • Expert
  • *****
  • Mensagens: 1702
  • DEWENNINMEN
    • Email
Re:Preencher campos automaticamente
« Responder #26 Online: Agosto 14, 2012, 09:33:42 pm »
Pessoal eu consegui fazendo dessa forma:

$check_sql = "SELECT nome_banco FROM conta_bancaria WHERE id_conta_bancaria = '{CONTA}'";
sc_lookup(rs, $check_sql);

if (isset({rs[0][0]}))     // Row found
{
    {BANCO} = {rs[0][0]};
   
}
      else     // No row found
{
   echo 'Erro!';
   
}


Gostaria de agradecer a paciência do Dário por ter me ensinado a lógica, e pela força do Rodrigo por me encorajar a procurar e entender como funciona o SC.
Obrigado irmãos!
F. A.
Analista de Sistemas

Dário Andrade Santos

  • Intermediário
  • ***
  • Mensagens: 172
    • Email
Re:Preencher campos automaticamente
« Responder #27 Online: Agosto 14, 2012, 10:08:37 pm »
Que bom...

Precisando não se exite em postar, sou novo por aqui e percebi que o pessoal ajuda bastante.

Abraço a todos
Dário Andrade Santos
SC v8.1.006  - Mysql - Windows 7 Pro
São Paulo - SP

FcbInfo

  • Novato
  • *
  • Mensagens: 41
Re:Preencher campos automaticamente
« Responder #28 Online: Setembro 03, 2012, 08:55:03 pm »
Agradecendo ao Dário, rrma e também ao Fred pelo post.

As informações deste post foram EXTREMAMENTE úteis para mim.

Marco Sabo

  • Iniciante
  • **
  • Mensagens: 76
Re:Preencher campos automaticamente
« Responder #29 Online: Abril 27, 2013, 03:21:58 pm »
Graças a este tópico consegui fazer o campo carregar automaticamente após atualizar outro campo.
Obrigado a todos.