1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Bloquear Botão Relatorio

Boa Tarde galera! Na minha aplicação em diversas paginas tenho um Relatório que gera um PDF, está funcionando perfeitamente, mas o cliente pediu para que o botão fosse desabilitado assim que o usuário fizesse a requisição, para que ele não fique apertando diversas vezes, bloquear eu consigo, agora eu não consigo voltar o botão depois que o relatório foi emitido. Gero o relatório com o seguinte código:

function Localizar(url)
{
    var btn = document.getElementById('relatorio');
    if(btn != null){
       btn.disabled = true;
       alert(btn.disabled);
       }
    var Janela = window;

    msgWindow=   Janela.open(url,"Localizar","width=550,height=350,resizable=1,scrollbars=1,status=0,  location=0,top=0,left=0");
msgWindow.moveTo(screen.width/2-550/2,screen.height/2-350/2-20);


};

E o código java é esse:

    if ( bytes != null && bytes.length > 0 )
    {
      res.setContentType( "application/pdf" );
      res.setContentLength( bytes.length );
      res.setHeader("Content-disposition", "inline; filename=teste.pdf");  

      BufferedOutputStream bos = new BufferedOutputStream( res.getOutputStream() );
      bos.write( bytes );
      bos.flush();
      bos.close();    
 return mapping.getInputForward();                
    }

Estou usando Struts 1.1

  • Não seria apenas habilitar o botão após a linha: msgWindow.moveTo? Afinal, mesmo que o relatório ainda não tenha sido completamente carregado, a tela já estaria na frente do botão.

    btafarelo   07 de mai de 2013
  • Então btafarelo, isso foi o mais próximo que consegui chegar, tentei por ajax, mas não consigo escrever na tela o streaming pdf que vem, vc sabe se tem como?. Se não vou deixar assim mesmo...mas valeu mesmo pela atenção...

    juniorsml   07 de mai de 2013
  • Cara por ajax acho que não, mas pode chamar uma página nova. Nela você coloca um iframe para exibir o pdf incorporado e no final faz um script que habilita o botão. No final da página você faz um script usando o objeto window.opener e habilita o botão novamente.

    btafarelo   07 de mai de 2013
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

1 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags javascript pdf relatórios ou faça a sua própria pergunta.