Duvida Detectar se o programa foi aberto direto ou foi chamado

Discussão em 'Progress 4GL' iniciado por rafael.andrade, Julho 28, 2015.

  1. rafael.andrade

    rafael.andrade Membro Master Moderador Equipe de Suporte

    Seguinte galera, como fazer para detectar se o programa foi aberto direto ou foi chamado, tipo usando o código abaixo ou executando via CTRL-ALT-X, como saber?

    Código:
    DEF VAR MeuPrograma AS HANDLE.
    RUN prg\meuprog.r PERSISTENT SET MeuPrograma.
    RUN chamada IN MeuPrograma(INPUT 1, INPUT 2).
    
    Levanto em conta que ao executar o "RUN prg\meuprog.r PERSISTENT SET MeuPrograma." ele executa uma procedure INICIALIZAR chamada no MAIN BLOCK.
    upload_2015-7-28_10-46-34.png

    Aguardo retorno.

    Abraço

    Rafael
  2. bootstrapmaster

    bootstrapmaster Moderator Moderador Equipe de Suporte

    vc quer ver isso dentro do seu programa, algo tipo, quem me chamou ?????, vc vai ter que analisar o program-name(indice) pra saber quem o chamou.
    Código:
    /* Note this program should be run as a subroutine. *//* The deeper the nesting, the better the illustration. */ DEFINE VARIABLE level AS INTEGER NO-UNDO INITIAL 1. REPEAT WHILE PROGRAM-NAME(level) <> ?:  DISPLAY LEVEL PROGRAM-NAME(level) FORMAT "x(30)".  level = level + 1.END.
    Exemplo do help do progress
  3. jaisonantoniazzi

    jaisonantoniazzi Membro Ativo

    Boa tarde,
    tentou usar o INSTANTIATING-PROCEDURE?
    rafael.andrade curtiu isso.
  4. rafael.andrade

    rafael.andrade Membro Master Moderador Equipe de Suporte

    Procurando por essa solução eu vi algo sobre INSTANTIATING-PROCEDURE, mas não entendi seu uso e funcionamento, poderia explicar?
  5. rafael.andrade

    rafael.andrade Membro Master Moderador Equipe de Suporte

    Marvilha, assim eu consigo visualizar:

    Código:
       MESSAGE THIS-PROCEDURE:INSTANTIATING-PROCEDURE:NAME
           VIEW-AS ALERT-BOX INFO BUTTONS OK.
    
    Vlw gente!!!

Compartilhe esta Página