1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

  2. Anuncie Aqui ! Entre em contato fdantas@4each.com.br

Programa com Parâmetro Opcional

Discussão em 'Progress 4GL' iniciado por rafael.andrade, Junho 28, 2012.

  1. rafael.andrade

    rafael.andrade Membro Master Moderador Equipe de Suporte

    Pessoal, blz?

    Existe uma forma em progress para criar parâmetro opcional? (como no VB.NET e outras linguagens)

    Assim eu poderia executá-lo diretamente e também chamá-lo com e sem parâmetros (dependendo da situação).

    Seria muito mais fácil do que ficar criando variáveis globais e tal.


    Grato pela força.

    Rafael
  2. Rogerio

    Rogerio Moderator Moderador Equipe de Suporte

    Acredito que na execucao de programas não seja possivel, mas existe essa possibilidade na chamadas de includes.... será que isso resolveria o seu problema?
  3. rafael.andrade

    rafael.andrade Membro Master Moderador Equipe de Suporte

    É interessante, é possível??

    Att,

    Rafael
  4. TrombiniSP

    TrombiniSP Membro Participativo

  5. rafael.andrade

    rafael.andrade Membro Master Moderador Equipe de Suporte

  6. rafael.andrade

    rafael.andrade Membro Master Moderador Equipe de Suporte

    Ao rever hoje este tópico lembrei que descobri a solução para este problema, usando um método chamado B.O. (não sei porque tem esse nome).

    Sendo assim, você pode chamar um programa com parâmetros específicos dentro de uma procedure, exemplo.

    No programa que vai ser chamado (programa filho), faça algo assim:
    - Crie uma procedure
    - Digite o seguinte código:
    Código:
    PROCEDURE EntradaAlternativa.
           DEF INPUT PARAMETER vNome AS CHAR.
           DEF INPUT PARAMETER vIdade AS INTEGER.
    
           RUN Inicializar.      
    
           WAIT-FOR CLOSE OF THIS-PROCEDURE.
    END PROCEDURE.
    
    - Com este código, ao chamar esse programa diretamente, não precisa passar parâmetro, mas se chamar através dessa procedure "EntradaAlternativa" precisa passar parâmetro e usar como desejar.

    Agora para chamar o programa no método BO, faça assim:
    Código:
        DEF VAR vProgFilho AS HANDLE.
        RUN Progs\ProgFilho.r PERSISTENT SET vProgFilho. /* Aqui a variável se torna a representação do programa executado */
        RUN EntradaAlternativa IN vProgFilho(INPUT "Rafael",INPUT 30).  /* Neste ponto é chamado a procedure interna 'EntradaAlternativa" do programa 'Progs\ProgFilho.r' */
    
    É isso, qualquer dúvida é só falar.

    Abraço

    Rafael A. Andrade

Compartilhe esta Página