Oi Pessoal ! Tenho um formulário com 2 tabelas, uma mestre e a outra detalhe, e acontece que quando eu apago um registo na tabela detalhe que tem campo chamado “valor” o sistema não atualiza o relatório PDF automaticamente, só atualiza depois de eu carregar no botão “atualizar” ! Não há uma forma de o sistema atualizar os dados do PDF depois de eu apagar uma linha na tabela detalhe automaticamente ? Obrigado !
Ola
Não entendi muito o problema.
O relatorio PDF reflete os dados no momento da criação; para atualiza vc tem que imprimi-lo novamente e não me lembro dele ter botão de atualizar.
Caso precise ficar atualizando acho melhor usar a consulta.
Atenciosamente
Moacir
Oi Moacir ! No mestre eu tenho um campo “Total”, e quando eu apago uma linha do formulário detalhe, o campo “Total” no mestre não atualiza de imediato, só atualiza se eu pressionar o botão “atualizar” !
Acredito que ele quer dizer exportação do PDF no formulário. O que está na tela reflete no PDF.
No evento onAfterDelete não deve estar aplicando sc_master_value para atualizar dinâamicamente o campo total no formulário mestre.
Oi Haroldo ! Antes de mais gostaria de elogia-lo pelos seus contributos aqui neste forum ! No after_delete eu tenho sim o “sc_master_value”. Aqui vai o codigo que tenho no onAfterDelete "sc_lookup(dataset,“select SUM(TotalFacturado) FROM FornecedorFacturacao
WHERE FornecedorId = {FornecedorId}”);
if(!empty({dataset[0][0]}))
{
$total1 = {dataset[0][0]};
sc_exec_sql(“UPDATE Fornecedor SET ValorFacturacao = $total1 WHERE FornecedorId = {FornecedorId}”);
sc_format_num($total1, ‘.’, ‘,’, 2, ‘S’, ‘1’, ‘’);
sc_master_value(‘ValorFacturacao’,$total1);
} else {
$total1 = 0;
sc_format_num($total1, ‘.’, ‘,’, 2, ‘S’, ‘1’, ‘’);
sc_master_value(‘ValorFacturacao’,$total1);
}"
De uma olhadinha no seu sc_format_num no webhelp. Ele retorna uma valor que deve ser guardado em uma variável, e você não está fazendo isso.
Oi Haroldo ! Mas na inserção “onAfterInsert” a função funciona bem, a variável não é a “ValorFacturacao” ? Desculpe a minha ignorância !
Olhou no webhelp como usar a macro?
Sim ! Estou a usar o exemplo número 5 !
Avaliando webhelp da macro sc_format, realmente há conflito entre as duas informações no whebhelp:
Coloque a aplicação em modo debugt para avaliarmos se o select sum estã sendo executado quando da deleção do registro do detalhe.
Nota, se tiver apenas um item e for excluir pode ser que seu if após sc_lookup não funcione.
no lugar de: if(!empty({dataset[0][0]}))
tente if ($dataset)
Mais uma observação.
Use o evento onafterdelete e na ultima linha sc_commit_trans();
Pois não consigo entender muito bem como o formulário trata as transações no banco e a relação dos eventos com os momentos dessas transações.
Postei duvida a respeito mas nunca obtive retorno da Netmake sobre o assunto (acostumado já).
Oi Haroldo ! A função parece-me estar correcta porque apaga o registo da base de dados ! Só não apaga no relatório PDF ! Só apaga se eu carregar no botão actualizar !
Você usa exportar para PDF correto?
Consegue fazer um vídeo mostrando o problema?
Não ! Crio um botão no formulário que chama a aplicação em PDF !
Report PDF?
e nesse botão atualização faz o que?
Sim é um Report PDF ! O botão é o standart do formulário do scriptcase que actualiza os dados depois de alguma alteração feita no formulário !