Trocar de tela por meio de uma confirmação

Tenho um formulário com informações de uma pessoa. Ao incluir uma nova pessoa, ocorre a verificação do documenta desta para ver se já existe um cadastro anterior ativado ou não. Esse ativado ou não está relacionado com o formulário, que só apresenta os ativos. Ao verificar se existe tal documento e ele está nos desativados. Como faço para criar uma confirmação, que ao confirmar vá para o formulário de desativados no local onde está esse cadastro desativado?

  • Desde já muito obrigado pela ajuda!

no evento onValidateSuccess (quando da inclusão da pessoa)

Você verifica com sc_lookup (macro SC veja no web help) se existe tal documento, se sim utilize sc_redir ( outra macro SC) paqra desviar para o formulário desejado.

Então quando eu tento incluir essa pessoa, eu mando uma mensagem de erro dizendo que já existe um documento igual cadastrado. Gostaria de dar uma opção na tela para verificar esse cadastro desativado com o mesmo documento. Indo para lá possivelmente utilizando o sc_redir eu posso reativar ou não meu cadastro, porque já tenho um botão que faz isso. O evento é onValidateSucesso mesmo que eu não inclua uma pessoa de fato, pois apresenta o erro?

o evento onValidateSuccess é executado após a inserção do registro.

Então, mas eu não quero registrar. Eu estou fazendo a verificação do documento no onValidate. Gostaria de que ao encontrar o documento já registrado anteriormente, eu pudesse criar uma mensagem de confirmação para ir nesse registro antigo e reativar ele ou não com um botão já existente. Não sei ao certo em qual evento e como fazer essa mensagem para ir para outro formulário onde tem o registro com esse mesmo documento, mas que está desativado no caso.

Se você sair do formulário para outro formulário sem salvar vai perder os dados.

Crie aqui um fluxo do processo, para entender melhor seu problema.

Veja qual é a chave, campo que você quer usar para validar que a pessoa já existe, ai coloque em um Evento Ajax > OnBlur, em cima deste campo este código:

if (sc_btn_new) {

/* Macro sc_lookup */

$cpf_pesquisa={CPF};

sc_lookup(ass,"
SELECT
   Plano,
   Codigo,
   Nome
FROM
   associados
WHERE 
   CPF = '$cpf_pesquisa'
");

/* Erro no lookup */
if (FALSE === {ass}) {
	sc_error_message("Ocorreu um erro no acesso ao banco de dados.<BR>");
}
elseif (empty({ass})) { /* EOF */
	// Esta tudo Ok, pode continuar a Inclusão.
}
else {
	   if ({CPF}>0) {
		   sc_error_message('Associado CPF já Cadastrado no Plano: '.{ass[0][0]}.'-'.{ass[0][1]}.".<BR>");
	   }
}

}

Com isso assim que o usuário passar pelo código o SC vai exibir uma mensagem que ele já existe e vai mostrar o código / Nome, cadastro onde se encontra,
ai é o só o usuário descartar a inclusão e entrar no código exibido para Ativar o cadastro, atualizar, etc.

Na minha tabela o cpf seria o documento, o código seria o id da pessoa? O plano seria tipo o quê?

Sim isso mesmo, ai só adaptar o SELECT para ficar igual da sua tabela e usar o {Campo} que deseja pesquisar e mais algum outro ‘Nome’, etc, para dar uma referência,
melhor para o usuário onde esta o cadastro que foi encontrado.