[RESOLVIDO] Criar mensagem após inserção em form

Olá,
Gostaria de um apoio de vocês do Fórum.

Após o usuário inserir os dados em um formulário ao clicar em Incluir gostaria de colocar uma mensagem: Ocorrência cadastrada com sucesso!! Deseja imprimir? Sim ou Não ( se ele clicar em Sim gostaria de direcionar para um report_pdf que tenho) se clicar em Não, aí o formulário seria fechado.

Como eu posso proceder? Hoje eu tenho só uma mensagem de alerta no OnAfterInsert como esta: echo"";

Obrigado,

Boa tarde!! Bom, eu faria isso, criando uma nova aplicação, tipo controle, onde mostraria a mensagem e essa pergunta se deseja imprimir ou não.

Dá para fazer sim.
Esse exemplo utiliza o sweetalert2 que pode facilmente ser adaptado para apresentar uma tela de confirmação.

https://v9.infinitusweb.com.br/forum_sc/control_test_sweetalert/

2 Curtidas

Entendi, gostei desse script Haroldo,
Então eu tenho que fazer um form de controle, como eu faço a partir do evento como chamar esse form de controle?

Obrigado,

No seu formulário mesmo. Não precisa de duas aplicações.
Mas a dica de @thyagohenrique85 também funciona.

https://v9.infinitusweb.com.br/forum_sc/sc9_201904251618_export_forum_sc.zip

Pode usar este como exemplo, no formulário é igual.

Baixe a biblioteca do sweetalert2 e importe como biblioteca externa no SC.

5 Curtidas

Muito boa dica Haroldo , obrigado

1 Curtida

Esqueci de observar que a partir da v9.3.008 passou a funcionar no modo mobile.

1 Curtida

Agradeço ao Haroldo e Sandro pelas dicas.
Porém como sou iniciante vou tentar fazer por tentativa e erro.
Importar a biblioteca no SC até consigo, a questão vai ser adaptar ela na minha aplicação, eu coloco ela no evento OnafterInsert? e como faço as chamadas para outras aplicações como por exemplo report_pdf se o usuário clicar que quer imprimir?
Ainda muitas dúvidas…
Abraços

Explico:

Os eventos são exatamente os mesmos que uso na controle.

  1. No evento onapp criou-se uma global com valor 0.
  2. No evento onsc incluído a biblioteca Sa2.
$js=sc_url_library('sys','sweetalert','sweetalert2.all.min.js');
?><script src="<?php echo $js; ?>"></script><?php

Ela está como pública.Bibliotecas de terceiro sempre deixo como públicas no SC, apenas as minhas bibliotecas pessoais que deixo no projeto.

  1. No Evento ONVSuc movido 1 para global, significa que ouve submissão do formulário e não houve erros de validação.

  2. Criar um botão javascript (fica no lugar do salvar e ou incluir que devem ser escondidos) com o código:

swal({
  	title: 'Salvar os dados da tela?',
 	text: "Clique em cancelar para abortar o salvamento!",
  	type: 'question',
  	showCancelButton: true,
  	confirmButtonColor: '#3085d6',
  	cancelButtonColor: '#d33',
  	confirmButtonText: 'Confirme o Salvamento!'
}).then((result) => {
	if (result.value) {
   		nm_atualiza('alterar');
  	}else{
		swal({
			type: 'wornning', 
			title: 'OPs! Dados não foram salvos.',
			showCloseButton: true,
			timer: 1500
		});
	}
})

Esse código aciona o Sa2 em modo de confirmação, mas no seu caso @mafranca não precisa do passo 4, pois você deseja a confirmação após o salvamento.

5.Aqui é o macete… Após a submissão do formulário o mesmo é recarregado e o evento onLoad é executado, e nossa global vai controlar o que fazer. Como acabamos de passar pela onValSuc sabemos que houve uma submissão de formulário e a global vale 1.
Segue o código da onLoad:

if ([iw]==1) {
	?><script>
		swal({ 
			type: 'success',
  			title: 'Dados Salvos com sucesso!',
  			showCloseButton: true,
  			timer: 1500});
	</script><?php 
	[iw]=0;
}

Se houve erro é movido 0 para global no evento onValFaile nenhuma mensagem é ativada deixando para o SC exibir suas mensagens de erro nativamente.

Aqui a mensagem é apenas informativa pelo sucesso do salvamento, mas no seu caso @mafranca você colocará a mensagem em modo de confirmação, se sim você recarrega o report pdf, pode ser em uma aba do menu, uma nova página no navegador ou uma modal.

No meu exemplo, eu posso evitar o salvamento.

Estude os modos do Sa2, vale apena.
Depois que fez o primeiro fica fácil implementar no restante do sistema.

3 Curtidas

Muito bacana Haroldo, vou tentar implementar neste final de semana.
Comunico para vocês o resultado.
Fico extremamente feliz pelo apoio, desta forma podemos fazer o SC ser mais forte.

Abs.

Na versão 9.3.012 parou de funcionar mobile.

Aguardando ansiosamente pára uma nova versão do SC com melhorias em mobile, para assuntos como esse rodarem em dispositivos móveis.

1 Curtida