Autor Tópico: Erro no evento onAfterInsert  (Lida 432 vezes)

Alexandre - FENTECH

  • Novato
  • *
  • Mensagens: 22
    • Email
Erro no evento onAfterInsert
« Online: Novembro 24, 2014, 12:27:59 pm »
Bom dia.

Utilizo o onAfterInsert para obter campos calculados pelo banco de dados. Até a a versão 8.00.0018, os valores obtidos eram atualizados sem problemas, mas a partir da versão 8.00.0020, o valor não é atribuído ao campo (e consequentemente não é exibido na tela).

Exemplo:


// Check for record
$check_sql = "SELECT first 1 codigolote"
   . " FROM ctbctacab"
   . " WHERE exercicio = '" . {exercicio} . "'"
     . " and datalote = '" . {datalote} . "'"
     . " and descricaolote = '" . {descricaolote} . "'"
     . " and valorlote = 0" . {valorlote}
     . " order by codigolote desc";
sc_lookup(rs, $check_sql);

if (isset({rs[0][0]}))     // Row found
{
    {codigolote} = {rs[0][0]}; // essa atribuição é feita mas o valor não retorna para a tela.
}

Caio Guerra

  • Administrator
  • Iniciante
  • *****
  • Mensagens: 53
    • Email
Re:Erro no evento onAfterInsert
« Responder #1 Online: Novembro 24, 2014, 02:54:25 pm »
Olá Alexandre, boa tarde.

Qual o tipo do formulário que você está usando (Único registro, múltiplos...)?

Após a inserção, o formulário está configurado para retornar ao registro que foi inserido em modo de edição, ou abre opções para incluir um novo registro?

Alexandre - FENTECH

  • Novato
  • *
  • Mensagens: 22
    • Email
Re:Erro no evento onAfterInsert
« Responder #2 Online: Novembro 24, 2014, 03:51:09 pm »
Boa tarde.

O erro foi detectado em formulários de GRID EDITAVEL.

O campo do exemplo é do tipo AUTO INCREMENTO MANUAL (mas acontece com os do tipo CALCULADO PELO BANCO DE DADOS).
Após a inserção (até a versão 18), no onAfterInsert, era retornado o valor gerado pelo TRIGGER de inserção do banco de dados (pelo comando do exemplo).
Nas telas que estou compilando com a versão 20, o valor é gerado pelo banco, obtido, atribuído, mas não é exibido. O valor fica sendo o que a aplicação calcula no caso do AUTO INCREMENTO MANUAL (diferente do calculado pelo banco).
No caso de campos CALCULADO PELO BANCO DE DADOS, a aplicação segue as mesmas ações, mas não é exibido um valor.