1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.
  2. Anuncie Aqui
    Anuncie aqui você Também: fdantas@4each.com.br

Pegar valor em include

Discussão em 'Progress 4GL' iniciado por luizclairrodrigues, Junho 18, 2012.

  1. luizclairrodrigues

    luizclairrodrigues Membro Participativo

    Bom dia,

    Como faço para pegar o valor de uma variável que esta em uma include. Exemplo:

    for each tabela:
    assign total1 = 10.

    {pasta/spbo001.i}
    end.

    /*aqui quero executar o calculo*/

    assign total = total1 - (a variavel que se encontra dentro da include).

    Tenho um relatório que executa vários cálculos de produção em 5 includes diferentes. Estou precisando somar um valor que se encontra no calculo da include 2 e o outro na 4.

    Obrigado!
  2. dudabrito

    dudabrito Membro Participativo

    quais são essas includes ?
  3. luizclairrodrigues

    luizclairrodrigues Membro Participativo

    São includis desenvolvidas por nós do TI.
  4. rafael.andrade

    rafael.andrade Membro Master Moderador Equipe de Suporte

    Tem 2 jeitos de você fazer isso, vejamos:

    1ª Opção)
    Você pode declarar a variável como global (lá no definitions), então assim ela estará disponível dentro do programa e dentro das includes. Para evitar muitas definições, você pode fazer como a datasul e criar includes de definições de variáveis e chamar no DEFINITIONS, exemplo:

    Dentro do Definitions
    Código:
    {minhasincludes\defininicoes.i}
    
    Na Include "definicoes.i", você coloca:
    Código:
    DEF VAR total1 AS DECIMAL.
    DEF VAR QualquerCoisa as CHAR.
    DEF VAR....
    
    Assim dessa forma ao alterar a variável global, você poderá ver esse valor em qualquer lugar do programa.
    Pronto, ao atualizar essa include, é só compilar os programas que a utilizam e pronto.

    IMPORTANTE (EFEITOS COLATERAIS):
    - Quando você usa variável global, não pode mais definir essa variável dentro da include pois dará erro de compilação
    - Consequentemente ao tentar verificar o código da include (SHIFT+F2), dará erro, mas ao compilar funciona perfeitamente.

    2ª Opção)
    Cria na include um parâmetro de Saída, Exemplo:

    Dentro da sua include:
    Código:
    DEF OUTPUT PARAMETER total1 AS DECIMAL.
    
    No programa que chama a variável, você define a variável antes da chamada da include com o mesmo nome (pra não complicar), aí na chamada você faz assim:

    Cria Uma procedure e coloca nela sua include, você pode criar essa procedure no MainBlock (como no código abaixo), ou simplesmente crie um procedure normal e coloque a chamada dentro:
    Código:
    PROCEDURE ProcedureMinhaInclude.
       {pasta/spbo001.i}
    END.
    

    Depois é só chamar da forma abaixo
    Código:
    DEF VAR total1 AS DECIMAL.
    
    RUN ProcedureMinhaInclude(OUTPUT total1)
    
    Pronto.

    Espero ter sido claro e ajudado.

    Att,

    Rafael
  5. luizclairrodrigues

    luizclairrodrigues Membro Participativo

    Bom dia!
    Valeu eu usei a segunda opção deu blz.
    Obrigado.

Compartilhe esta Página