Abrir outro programa sem avisar para gravar antes de sair

boa tarde ,

tem um form que inclui proposta e dentro desse form tenho um detalhe de produto e um detalhe de serviço. em múltiplos registro

mas o usuário quando esta incluindo os produtos ou serviço e verifica que precisa alterar ou incluir um novo produto ou serviço esqueçe de gravar vai com o mouse no menu\cadastro\estoque\produto e abre a tela de produto e perder toda as informações do itens do produto que ele estava digintando da tela da proposta.

Pergunta:

Tem alguma mameira de os forms serem todos modal como as aplicações desktop ou

tem alguma maneira se o usuário escolher ir para o cadastro de produto avisar que tem que gravar antes para não perder o que fez??

Isso dá dando muito problema porque usuario ja digita quase 20 itens e perder tudo

obs.: já tentei dar alguma mensagem pelo onexecute do menu e não deu certo…

è urgente

no chamado 17543-331010-1527 tem print screen explicando melhor

ou

https://www.dropbox.com/s/hakkrdlf95x9ktl/TELA%20DE%20EXPLICAÇÃO%20DO%20ERRO%2017543-3310101527.docx

obrigado

Nigri

Obrigado e um abraço

Nigri

E se você fizesse uma verificação se o formulário esta em modo de inserção ou update e bloqueasse o menu até que o cara inserisse e/ou atualizasse os itens, ou então pra sair ele clicasse em cancelar. Não pensei na maneira de se fazer isso apenas seria uma das maneiras mas preciso estudar melhor as macros disponível pra ver se dá pra montar alguma coisa, o idela seria fazer isso em uma biblioteca externa que permitisse controlar qualquer fomulário.

O ideal seria nunca sair de uma tela sem finalizar seu objetivo, eu creio que se alguém abre uma tela de cadastro é porque ela quer cadastrar não?

Se o cara precisa ir em outro lugar pra saber o que ele vai cadastrar coloque esse botão de visualização dentro da sua aplicação, eu não vejo o porque alguém vai sair da tela em que está sendo feita um cadastro para ir a outra tela, meio sem sentido não?

Agora quanto ao problema você pode fazer no onBlur do ultimo campo da aplicação, ai pergunta se deseja salvar, ou se deseja realmente sair.

Creio que pode ser usado o sc_ajax_message ai vc cria na mensagem um botão de redirecionamento caso ele realmente queira sair da aplicação.

Então Robert na verdade tive até um cliente que me pediu isso, pra gente é muito óbvio certas coisas, mas para o usuário final quanto mais a gente puder mastigar melhor.

Vou começar a pesquisar uma forma de fazer isso, acho que vai me poupar de alguns telefonemas chatos!

Instrui o usuario a clicar com o botao direito do mouse no item do menu intetessado e clicar em abrir em uma nova guia.

Quando tenho itens para serem selecionados e não estao pre cadastrados eu utilizo o LIGAÇÃO- CRIA LIGAÇÃO,
Dessa forma nao se perde o que ja esta digitado

exemplo.
http://www.scriptcase.com.br/sistemas/v6/exemplos_pt_br/form45/form45.php

Espero te ajudado.

Att Arquimedes

boa Noite Caros Amigos,

Como diz o Saulo para o usuário precisa prever para não cometer erro se não só tenho chamado é o que hoje está acontecendo com esse problema. O que já tive de usuário reclamando disso não é brincadeira.

O meu perfil dos meus cliente só trabalha com desktop e é possível fazer isso sem perder o que estava cadastrando

E o problema que quando o usuário esta lançando os produto na proposta simplesmente pega o mouse e vai até o menu do cadastro mesmo tendo a opção do botão de ligação.

Já enviei para o suporte esse problema sem solução …

Já tentei onblur não deu certo…

Por isso que estou pedindo ajuda porque a coisa está feia para o meu lado…

Muito obrigado pela ajuda

Nigri

Sim eu também faço isso que o Arquimedes falou, eu coloco aquele botão pro usuário poder cadastra em tempo de execução do seu cadastro atual.

Agora eu vou tentar pesquisar algo também com JQuery pra ver se consigo ajudar-los.

Mas ainda fico na expectativa que o usuário tem que evoluir junto com a tecnologia, é mais um motivo para vender cursos, palestras, suporte, treinamento e consultoria, se o cliente não tem o conhecimento básico de aplicações web, cabe a nós fazermos esse treinamento/suporte.

Não estou dizendo que é fácil, nem que vocês estão errados, mas convenhamos é um tempo que poderia está sendo usado para aplicações mais importantes, códigos que contribuem mais tanto com o sistema quanto a sociedade do SC.

Desculpem a minha revolta eu tenho um chefe que programa em Delphi e acha que WEB é a mesma coisa por isso fico revoltado assim xD.

Boa Tarde Roberto,

Concordo com você e estou tentando mudar a mente dos meus cliente pensar de forma diferente, mas na hora que você ensina os usuários e começa acontecer os problemas o cliente não quer saber .

Porque, os usuário coloca a culpa no sistema…

Outra problema que estou enfrentando são as telas os meu clientes não aprova as telas do sc .
tem cliente até que faz comparação de outras telas feito em php.

Como eu trabalho com vários cliente a exigência é diferente quando você faz sistema para unica empresa.

Mesmo assim vamos a luta e muito obrigado pela ajuda

um abraço

Nigri

Segue um código simples que achei na net e que resolve o problema apontado no tópico.
Não mexi nele, pelo que vi no SC ele vai precisar de uma melhor implementação porque ele esta avisando mesmo que nenhum dado seja alterado.

Para usar coloque este código no Menu Javascript no Onload do formulário.

[code]$(function(){
var formObject = $(’.new_reg, .edit_reg’);
formObject.data(‘original_serialized_form’, formObject.serialize());

$(’:submit’).click(function() {
window.onbeforeunload = null;
});

window.onbeforeunload = function() {
if (formObject.data(‘original_serialized_form’) !== formObject.serialize()) {
return “As mudanças deste formulário não foram salvas. Saindo desta página, todas as mudanças serão perdidas.”;
}
};
});[/code]