For each dinâmico

Discussão em 'Progress 4GL' iniciado por Alexan, Janeiro 27, 2011.

  1. Alexan

    Alexan Membro Participativo

    Galera, é o seguinte:

    Preciso dar um For each, mas quando chegar no nome databela eu gostaria que fosse dinâmico, ou seja, assumisse o conteúdo de uma variável.Por exemplo:

    Def var Tabela as char.
    tabela = "teste".

    For each tabela .
    ...
    end.

    tentei conforme o exemplo, ms nao dá certo.

    Alguém pode me ajudar?

    Gto,
    Edson
  2. rbaselio

    rbaselio Membro Participativo

    Tente isto:

    Código:
    FUNCTION tabela-dinamica RETURNS LOGICAL (INPUT tabela AS CHARACTER, INPUT clausula AS c):
        DEFINE VARIABLE i      AS INTEGER     NO-UNDO.
        DEFINE VARIABLE qh     AS HANDLE.
        DEFINE VARIABLE bh     as handle.
        DEFINE VARIABLE iCont  as int.
    
        CREATE QUERY qh.
        CREATE BUFFER bh FOR TABLE tabela.
        qh:SET-BUFFERS(bh). 
        qh:QUERY-PREPARE("for each " + tabela + " " + clausula).
        qh:QUERY-OPEN.
    
        DO WHILE (qh:GET-NEXT = YES):
            REPEAT i = 1 TO bh:num-fields.
                DISP bh:buffer-field(i):LABEL STRING(bh:BUFFER-FIELD(i):BUFFER-VALUE).
            END.
        END.
    
    END FUNCTION.
    
    tabela-dinamica("item",  "WHERE item.it-codigo >= '10' and item.it-codigo <= '19'").
    mauricio.laerte curtiu isso.
  3. Alexan

    Alexan Membro Participativo

    Caro amigo rbaselio,

    Obrigado pela presteza e rapidez, deu certo!

    Sds,
    Edson

Compartilhe esta Página