Duvida JavaScript executando código progress

Discussão em 'Progress 4GL' iniciado por erickles, Outubro 6, 2014.

  1. erickles

    erickles Membro Participativo

    Bom dia pessoal,

    Há alguma maneira de, dentro de uma função javascript, eu conseguir executar código progress? Procurei pelo fórum e não encontrei nada parecido...
  2. jaisonantoniazzi

    jaisonantoniazzi Membro Ativo

    Boa tarde @erickles
    experimente usar crase como "Expression escapes"
    HTML:
    <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
    <HTML>
    <HEAD>
    <META NAME="jaison antoniazzi" CONTENT="jaison">
    <TITLE>WebSpeed Script</TITLE>
    </HEAD>
    
    <BODY>
    <p id="elemento1"></p>
    <p id="elemento2"></p>
    <script>
    document.getElementById("elemento1").innerHTML = "` 'hoje é:' + string(today)`";
    </script>
    <script>
    document.getElementById("elemento2").innerHTML = "` 'Propath=' + PROPATH`";
    </script>
    </BODY>
    </HTML>
    Abraço.
  3. erickles

    erickles Membro Participativo

    Legal!

    Mas pelo que vi, não consigo executar uma procedure, certo?
  4. jaisonantoniazzi

    jaisonantoniazzi Membro Ativo

    Claro que sim, fiz este exemplo, para a função RETORNARAGORA funcionar, você deverá depositar o programa hora.p em uma pasta visível pelo appserver e ativar o appserver padrão ASBROKER1 ou não executar a função.
    Segue o código:

    HTML:
    <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
    <HTML>
    <HEAD>
    <META NAME="jaison antoniazzi" CONTENT="jaison">
    <TITLE>WebSpeed Script</TITLE>
    </HEAD>
    <BODY>
    <script language="speedscript">
        PROCEDURE contar:
            DEFINE VARIABLE codigo AS INTEGER     NO-UNDO.
            REPEAT codigo = 1 to 10:
                {&out} 'codigo=' codigo '&nbsp;' now '<br>'.
            END.
        END.    
        function retornarAgora returns datetime ():
    
            DEFINE VARIABLE agora AS DATETIME    NO-UNDO.        
    
            DEFINE VARIABLE hserver AS HANDLE      NO-UNDO.
            DEFINE VARIABLE hhora AS HANDLE      NO-UNDO.        
           
            CREATE SERVER hserver.
           
            hserver:CONNECT('-AppService asbroker1').
            IF  hserver:CONNECTED() THEN DO:
           
                RUN hora.p 
                    PERSISTENT SET hhora
                    ON SERVER hserver.
           
                RUN retornar IN hhora ( OUTPUT agora ).
           
                DELETE OBJECT hhora.
               
                hserver:DISCONNECT().
           
                DELETE OBJECT hserver.
           
            END.
    
            return agora.
        end.
    </script>
    
    <p id="elemento1"></p>
    <p id="elemento2"></p>
    Agora <p id="elemento3"></p>
    <script>
    document.getElementById("elemento1").innerHTML = "` 'hoje é:' + string(today)`";
    </script> 
    <script>
    document.getElementById("elemento2").innerHTML = "` 'Propath=' + PROPATH`";
    </script> 
    
    <script>
    document.getElementById("elemento3").innerHTML = "` retornarAgora()`";
    </script> 
    
    Run em progress ABL com WebSpeed<br>
    <script language="speedscript">
        run contar.    
    </script>
    
    </BODY>
    </HTML>
    
    Código do programa hora.p no appserver:
    PROCEDURE retornar:
        DEFINE OUTPUT  PARAMETER agora AS DATETIME    NO-UNDO.
    
        agora = NOW.
    END.
    
    
  5. erickles

    erickles Membro Participativo

    Muito obrigado! Ajudou bastante!
  6. erickles

    erickles Membro Participativo

    Uma outra dúvida: eu consigo informar um parametro (que seja uma variável do javascript) dentro desta função?

Compartilhe esta Página