Excel e Progress

Discussão em 'Progress 4GL' iniciado por eder.ufscar, Julho 27, 2010.

  1. eder.ufscar

    eder.ufscar Membro Participativo

    Galera estou com o seguinte problema fiz um programa em progress onde o resultado de sua execução é jogado em uma planilha do excel, porém se no meio da execução o usuário der o comando ctrl + pause break o programa é interrompido porém o aplicativo do excel fica ativo na memória do computador existe uma forma de tratar esse comando para que junto o aplicativo do excel cai juntamente com a aplicação progress?
  2. jalegria

    jalegria Membro Participativo

    Saudações

    Vc pode tentar por "ON STOP" no bloco que gera o excel.

    Código:
    DO ON STOP UNDO, RETRY:
    
      IF RETRY
      THEN DO:
        /*FINALIZA O EXCEL*/
        LEAVE.
      END.
    
      GERA EXCEL.
    
    END.
    
    Tem outros jeitos de fazer, mas foi só pra te dar uma idéia...
  3. eder.ufscar

    eder.ufscar Membro Participativo

    Cara fica assim o código? ou é de uma outra maneira?
    Código:
    DO ON STOP UNDO, RETRY:
    
                  IF RETRY THEN DO:
                    /*FINALIZA O EXCEL*/
                    LEAVE.
                  END.
    
                 excelappl:range("A" + string(linha, "99999999999999")):value = temp-movimentos.cd-transacao.
                 excelappl:range("B" + string(linha, "99999999999999")):value = temp-movimentos.nr-serie-doc-original.
                 excelappl:range("C" + string(linha, "99999999999999")):value = temp-movimentos.nr-doc-original.
                 excelappl:range("D" + string(linha, "99999999999999")):value = temp-movimentos.cd-unidade-carteira.
                 excelappl:range("E" + string(linha, "99999999999999")):value = temp-movimentos.cd-carteira-usuario.
                 excelappl:range("F" + string(linha, "99999999999999")):value = nome.
                 excelappl:range("G" + string(linha, "99999999999999")):value = temp-movimentos.cd-prestador-solicitante.
                 excelappl:range("H" + string(linha, "99999999999999")):value = temp-movimentos.cd-servico.
                 excelappl:range("I" + string(linha, "99999999999999")):value = descricao.
                 excelappl:range("J" + string(linha, "99999999999999")):value = temp-movimentos.cd-prestador-pagamento.
                 excelappl:range("K" + string(linha, "99999999999999")):value = preserv.nm-prestador.
                 excelappl:range("L" + string(linha, "99999999999999")):value = temp-movimentos.in-nivel-prestador.
                 excelappl:range("M" + string(linha, "99999999999999")):value = temp-movimentos.lg-anestesista.
                 excelappl:range("N" + string(linha, "99999999999999")):value = temp-movimentos.qt-repasse.
                 excelappl:range("O" + string(linha, "99999999999999")):value = temp-movimentos.qt-procedimento.
                 excelappl:range("P" + string(linha, "99999999999999")):value = temp-movimentos.vl-real-pago.
                 excelappl:range("Q" + string(linha, "99999999999999")):value = modalidade.
                 excelappl:range("R" + string(linha, "99999999999999")):value = plano.
                 excelappl:range("S" + string(linha, "99999999999999")):value = tipo-plano.
                 excelappl:range("T" + string(linha, "99999999999999")):value = temp-movimentos.cd-modulo.
                 excelappl:range("U" + string(linha, "99999999999999")):value = hr-inicial.
                 excelappl:range("V" + string(linha, "99999999999999")):value = hr-final.
               
                 ASSIGN linha = linha + 1.
                 END.
               END.
  4. jalegria

    jalegria Membro Participativo

    Sim, mas deve ter outros comando para abrir a aplicação Excel.

    Vc tem q ter em mente que qdo o programa estiver executando alguma linha dentro do bloco DO ON STOP...END e o usuario der CTRL-BREAK o progress dará um RETRY no bloco indo para o IF que está dentro dele logo no começo.

    Sacou?
    Faz uns testes aí e envia o veredicto...

Compartilhe esta Página