Autor Tópico: ****RESOLVIDO***** Salvar Unico Campo Formulário Mestre/Detalhe  (Lida 2572 vezes)

Agostinho

  • Avançado
  • ****
  • Mensagens: 277
    • Email
****RESOLVIDO***** Salvar Unico Campo Formulário Mestre/Detalhe
« Online: Junho 07, 2010, 11:36:47 am »
criei um formulario mestre/detalhe aonde no detalhe eu tenho apenas um campo que é de valor aonde se é digitado, para esse campo criei uma chamada ajax, que executa uma função em php que faz um insert em uma tabela que não é nem uma das duas nem a mestre nem a detalhe é outra. Porem o insert não é realizado, o evento não é executado, coloqueo o ajax no evento OnChante, OnBlur e nada ocorre, tentei colocar uma sc_alert e ele tambem nao me aparece na tela. Alguem teria alguma dica de como resolver isto?

Grato
« Última modificação: Junho 14, 2010, 02:22:23 pm por Agostinho »

waae

  • Avançado
  • ****
  • Mensagens: 292
    • Email
Re: Salvar Unico Campo Formulário Mestre/Detalhe
« Responder #1 Online: Junho 08, 2010, 03:15:57 pm »
vc tentou colocar no evento "onBeforeInsert" ou no "onAfterInsert" desse formulário detalhe tipo:
sc_exec_sql("INSERT INTO.....
?

Agostinho

  • Avançado
  • ****
  • Mensagens: 277
    • Email
Re: Salvar Unico Campo Formulário Mestre/Detalhe
« Responder #2 Online: Junho 09, 2010, 04:56:17 pm »
Não tentei, vou fazer isso e posto o resultado, obrigado pelo retorno.

Agostinho

  • Avançado
  • ****
  • Mensagens: 277
    • Email
Re: Salvar Unico Campo Formulário Mestre/Detalhe
« Responder #3 Online: Junho 10, 2010, 11:22:33 am »
Ele nao passa evento, coloquei um sc_alert nele e nada ocorre, aparece até a imagem do ajax, mas nada é executado.

waae

  • Avançado
  • ****
  • Mensagens: 292
    • Email
Re: Salvar Unico Campo Formulário Mestre/Detalhe
« Responder #4 Online: Junho 11, 2010, 08:34:31 am »
se vc colocar o sc_alert no evento "onAfterInsert" não vai aparecer mesmo o Alerta.

O certo seria você usar o sc_exec_sql("insert Into... no evento "OnBeforeInsert".

ex:
sc_exec_sql("INSERT INTO nomedatabela (campo1,campo2)
VALUES({campodesseformulario1}, {campodesseformulario2})");

Não funcionou?

Agostinho

  • Avançado
  • ****
  • Mensagens: 277
    • Email
Re: Salvar Unico Campo Formulário Mestre/Detalhe
« Responder #5 Online: Junho 11, 2010, 10:31:06 am »
Não funcionou, vou tentar ser radical, ou seja, excluir e fazer do zero para ver.

Agostinho

  • Avançado
  • ****
  • Mensagens: 277
    • Email
Re: Salvar Unico Campo Formulário Mestre/Detalhe
« Responder #6 Online: Junho 11, 2010, 10:52:32 am »
Nada, simplesmente não da erro, não faz o insert, coloquei em modo debug a aplicação e mesmo assim não aparece nada.

waae

  • Avançado
  • ****
  • Mensagens: 292
    • Email
Re: Salvar Unico Campo Formulário Mestre/Detalhe
« Responder #7 Online: Junho 11, 2010, 01:22:41 pm »
coloque o codigo aki pra gente ver!!

Agostinho

  • Avançado
  • ****
  • Mensagens: 277
    • Email
Re: Salvar Unico Campo Formulário Mestre/Detalhe
« Responder #8 Online: Junho 11, 2010, 06:10:42 pm »
O codigo abaixo esta no evento BEFOREINSERT

$obs = "Pgto efetuado através do cheque numero " + [numero_cheque];
sc_exec_sql("INSERT INTO movimentotitulo (tipo_lancamento, titulo, cheque, data_movimento, valor, observacao, debito_credito)
   VALUES ([1, [v_tit],[cheque], '[data_movto]', '[v_valor]',$obs, 'D')");


O mais estranho de tudo é que não da erro nenhum, nem debugando, nem olhando no log do banco de dados, nada, ele simplesmente não executa, ja mudei para Grid Editavel, voltei para Grid Editavel(View) e nada. coloquei isto tambem no evento OnChange(Ajax) do campo que é digitado, chega até a ser mostrado o processamento do ajax, mas na realidade, nao ta fazendo nada.

To no desespero ja..... 3 dias em cima disto e nada.
« Última modificação: Junho 11, 2010, 06:13:12 pm por Agostinho »

waae

  • Avançado
  • ****
  • Mensagens: 292
    • Email
Re: Salvar Unico Campo Formulário Mestre/Detalhe
« Responder #9 Online: Junho 14, 2010, 07:58:40 am »
Algumas observações:
1º:
[numero_cheque] é uma variável global?
caso esse seja o campo que você está tentando pegar direto do formulário o correto seria:
$obs = "Pgto efetuado através do cheque numero " + {numero_cheque};

2º:
na parte:  VALUES ([1, [v_tit],[cheque], '[data_movto]', '[v_valor]',$obs, 'D')");
porque está "VALUES ([" ?? porque abre esse colchete se não o fecha ?? ele está a mais ai nessa linha!!!
Outra coisa... como a variavel $obs é do tipo texto vc tem que colocá-la entre '...' (aspas simples)
Resumindo:
... VALUES (1, [v_tit],[cheque], '[data_movto]', '[v_valor]','$obs', 'D')");

acho que é isso.. pelo menos os "erros" que achei..

« Última modificação: Junho 14, 2010, 08:00:49 am por waae »

Agostinho

  • Avançado
  • ****
  • Mensagens: 277
    • Email
Re: Salvar Unico Campo Formulário Mestre/Detalhe
« Responder #10 Online: Junho 14, 2010, 11:25:59 am »
Algumas observações:
1º:
[numero_cheque] é uma variável global?
caso esse seja o campo que você está tentando pegar direto do formulário o correto seria:
$obs = "Pgto efetuado através do cheque numero " + {numero_cheque};
Quanto ao [numero_cheque] ele é uma variavel global mesmo, o form de manutenção do cheque ira passar ele para este outro form via sessão.


2º:
na parte:  VALUES ([1, [v_tit],[cheque], '[data_movto]', '[v_valor]',$obs, 'D')");
porque está "VALUES ([" ?? porque abre esse colchete se não o fecha ?? ele está a mais ai nessa linha!!!
Outra coisa... como a variavel $obs é do tipo texto vc tem que colocá-la entre '...' (aspas simples)
Resumindo:
... VALUES (1, [v_tit],[cheque], '[data_movto]', '[v_valor]','$obs', 'D')");
Vou alterar os dados e retorno, obrigado, fiquei tanto tempo olhando e nao vi isso.......

acho que é isso.. pelo menos os "erros" que achei..



Agostinho

  • Avançado
  • ****
  • Mensagens: 277
    • Email
Re: Salvar Unico Campo Formulário Mestre/Detalhe
« Responder #11 Online: Junho 14, 2010, 11:31:50 am »
Tentei de novo com as suas dicas e mesmo assim nada ocorreu, não estou sabendo usar direito esse mestre detalhe, o duro é que o sql não é gerado, pelo menos o debug não mostra, e no banco nada é gravado.

Agostinho

  • Avançado
  • ****
  • Mensagens: 277
    • Email
Re: Salvar Unico Campo Formulário Mestre/Detalhe
« Responder #12 Online: Junho 14, 2010, 02:21:35 pm »
Consegui resolver de maneira XUNXEX, mas fazer o que, fica ai a dica para alguem, veja o cenário:

Tenho 3 tabelas:
   Titulos (Dados dos Titulos pagar/Receber)
   MovimentoTitulo (Dados que alteram o saldo do titulo), pode ser juros/descontos
   Cheque(Cheques emitidos pela empresa)

Criei um form Mestre(Cheque), com 1 detalhe(Titulos pagos com este cheque).

Problema Criado:
      Não podia gravar na tabela titulos, a gravação tem que ser na tabela de MovimentoTitulo referenciando o pgto efetuado pelo cheque, esse pagamento pode ser total ou parcial. Tentei via ajax, não deu certo, tentei colocar o codigo SQL no evento before insert, tambem não deu certo.

Solução XUNXEX:
    Criei uma view que lista os titulos vencidos até a presente data, o form detalhe passou a pegar desta view os dados(Form Grid Editavel).
    Usei procedure para gravar os dados UPDATE que seriam da view, e na procedure no banco de dados eu recebo os dados e faço a gravação na tabela MovimentoTitulo e atualizo o saldo do titulo pendente ou zero cfe o caso.

Pelo menos enquanto não vejo uma solução mais profissional, ficou assim mesmo....infelizmente.

waae

  • Avançado
  • ****
  • Mensagens: 292
    • Email
Re: ****RESOLVIDO***** Salvar Unico Campo Formulário Mestre/Detalhe
« Responder #13 Online: Junho 15, 2010, 01:34:09 pm »
Agostinho..
esse codigo era pra ter resolvido.

Só uma coisa que não perguntei:
no evento onbeforeInsert de qual formulário vc tah colocando esse codigo?? Tem que ser no formulário de Detalhe.

Agostinho

  • Avançado
  • ****
  • Mensagens: 277
    • Email
Re: ****RESOLVIDO***** Salvar Unico Campo Formulário Mestre/Detalhe
« Responder #14 Online: Junho 18, 2010, 10:12:35 am »
Sim, eu estava colocando ele no form detalhe mesmo, mas mesmo assim ele não executava, dai publiquei pensando ser problema na area de desenvolvimento e mesmo assim naõ houve nada. Tambem fiquei sem entender, mas como o prazo ja ta estourando, tive que improvisar.

Obrigado pela ajuda.