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

Buffer

Discussão em 'Comandos Básicos' iniciado por Tiago.Rodrigues, Abril 5, 2012.

  1. Tiago.Rodrigues

    Tiago.Rodrigues Sem Pontuação

    Bom dia!!

    Eu tenho um relatótio pra desenvolver, no qual eu tenho tres parametros, porem os 2 mais simples estou tendo problema de duplicação:

    o caso é bem simples, são tres toggle box, um de atualização e os outros dois (mais simples) é somente para selecionar quais os registros que serão exibidos de acordo com uma variavel do tipo log.

    para trazer todos os registros eu dei um for each. Até ai ele executa normalmente.
    para fazer a seleção de quais registros eu quero trazer, eu criei um buffer pois o progress não deixa eu repetir um for each de
    outro, mas quando eu executo, ele ta exibindo tanto a tabela normal quanto o buffer (traz o mesmo registro duas vezes).

    Como faço para anular a exibição de um destes??

    Obrigado desde Já!!!
  2. Rogerio

    Rogerio Moderator Moderador Equipe de Suporte

    Poste aqui o trecho do seu programa que faz isso para podermos te ajudar.
  3. Tiago.Rodrigues

    Tiago.Rodrigues Sem Pontuação

    FOR EACH ITEM NO-LOCK
    WHERE ITEM.it-codigo >= tt-param.tt-ini-it-codigo
    AND ITEM.it-codigo <= tt-param.tt-fin-it-codigo
    AND ITEM.fm-codigo >= tt-param.tt-ini-fm-codigo
    AND ITEM.fm-codigo <= tt-param.tt-fin-fm-codigo
    AND ITEM.fm-cod-com >= tt-param.tt-ini-fm-cod-com
    AND ITEM.fm-cod-com <= tt-param.tt-fin-fm-cod-com,
    EACH fam-comerc NO-LOCK
    WHERE fam-comerc.fm-cod-com = ITEM.fm-cod-com,
    EACH familia NO-LOCK
    WHERE familia.fm-codigo = ITEM.fm-codigo:

    RUN pi-acompanhar IN h-acomp (INPUT ITEM.it-codigo).

    ASSIGN l-ind-item-fat = YES.

    DISP STREAM str-rp
    ITEM.it-codigo
    ITEM.desc-item
    ITEM.fm-cod-com
    fam-comerc.descricao
    ITEM.fm-codigo
    familia.descricao
    ITEM.un
    ITEM.ind-item-fat
    l-ind-item-fat
    WITH FRAME f-item-a.
    DOWN STREAM str-rp WITH FRAME f-item-a.


    /* ******************** Simula = NO ******************** */
    IF tt-param.tt-par-simula = NO THEN DO:


    IF NOT ITEM.ind-item-fat = NO THEN DO:

    FIND bf-ITEM OF ITEM WHERE bf-item.ind-item-fat = NO EXCLUSIVE-LOCK NO-ERROR.

    ASSIGN bf-ITEM.ind-item-fat = YES.

    RELEASE bf-ITEM.

    END.
    END.

    /* ******************* Item faturavel ******************* */
    IF tt-param.tt-par-fat = NO THEN DO:

    FIND bf-familia OF familia.
    FIND bf-fam-comerc OF fam-comerc.

    FOR EACH bf-item WHERE bf-item.ind-item-fat = NO,
    EACH bf-familia WHERE bf-familia.fm-codigo = bf-ITEM.fm-codigo,
    EACH bf-fam-comerc WHERE bf-fam-comerc.fm-cod-com = bf-ITEM.fm-cod-com:

    DISP STREAM str-rp
    ITEM.it-codigo
    ITEM.desc-item
    ITEM.fm-cod-com
    fam-comerc.descricao
    ITEM.fm-codigo
    familia.descricao
    ITEM.un
    ITEM.ind-item-fat
    l-ind-item-fat
    WITH FRAME f-item-a.
    DOWN STREAM str-rp WITH FRAME f-item-a.


    END.
    END.



    /* ******************* Item não faturavel ******************* */
    IF tt-param.tt-par-no-fat = NO THEN DO:

    FIND bf-familia OF familia.
    FIND bf-fam-comerc OF fam-comerc.

    FOR EACH bf-item WHERE bf-item.ind-item-fat = YES,
    EACH bf-familia WHERE bf-familia.fm-codigo = bf-ITEM.fm-codigo,
    EACH bf-fam-comerc WHERE bf-fam-comerc.fm-cod-com = bf-ITEM.fm-cod-com:

    DISP STREAM str-rp
    ITEM.it-codigo
    ITEM.desc-item
    ITEM.fm-cod-com
    fam-comerc.descricao
    ITEM.fm-codigo
    familia.descricao
    ITEM.un
    ITEM.ind-item-fat
    l-ind-item-fat
    WITH FRAME f-item-a.
    DOWN STREAM str-rp WITH FRAME f-item-a.


    END.

    END.



    END.
  4. Rogerio

    Rogerio Moderator Moderador Equipe de Suporte

    Não analisei completamente seu programa, mas voce tem 3 DISP... tente comentar o primeiro...
  5. Tiago.Rodrigues

    Tiago.Rodrigues Sem Pontuação

    Fica do mesmo jeito.

    eu pensei em:
    se um toggle box for setado pelo usuário, ele desabilita as funções dos outros, porem não sei como fazer isso.
    será que pode funcionar?
  6. Tiago.Rodrigues

    Tiago.Rodrigues Sem Pontuação

    eu modifiquei o código para que os disp fiquem mais isoladom
    ficou assim:

    /* ******************** Corpo do Relatório ******************** */
    FOR EACH ITEM NO-LOCK
    WHERE ITEM.it-codigo >= tt-param.tt-ini-it-codigo
    AND ITEM.it-codigo <= tt-param.tt-fin-it-codigo
    AND ITEM.fm-codigo >= tt-param.tt-ini-fm-codigo
    AND ITEM.fm-codigo <= tt-param.tt-fin-fm-codigo
    AND ITEM.fm-cod-com >= tt-param.tt-ini-fm-cod-com
    AND ITEM.fm-cod-com <= tt-param.tt-fin-fm-cod-com,
    EACH fam-comerc NO-LOCK
    WHERE fam-comerc.fm-cod-com = ITEM.fm-cod-com,
    EACH familia NO-LOCK
    WHERE familia.fm-codigo = ITEM.fm-codigo:

    /* ******************** Simula = YES ******************** */
    IF tt-param.tt-par-simula = YES THEN DO:

    ASSIGN l-ind-item-fat = YES.

    RUN pi-acompanhar IN h-acomp (INPUT ITEM.it-codigo).

    DISP STREAM str-rp
    ITEM.it-codigo
    ITEM.desc-item
    ITEM.fm-cod-com
    fam-comerc.descricao
    ITEM.fm-codigo
    familia.descricao
    ITEM.un
    ITEM.ind-item-fat
    l-ind-item-fat
    WITH FRAME f-item-a.
    DOWN STREAM str-rp WITH FRAME f-item-a.
    END.

    /* ******************** Simula = NO ******************** */
    ELSE DO:

    ASSIGN l-ind-item-fat = NO.

    IF NOT ITEM.ind-item-fat = NO THEN DO:

    FIND bf-ITEM OF ITEM WHERE bf-item.ind-item-fat = NO EXCLUSIVE-LOCK NO-ERROR.

    ASSIGN bf-ITEM.ind-item-fat = YES.

    RELEASE bf-ITEM.

    END.
    END.

    /* ******************* Item faturavel ******************* */
    IF tt-param.tt-par-fat = NO THEN DO:

    ASSIGN l-ind-item-fat = NO.

    FIND bf-familia OF familia.
    FIND bf-fam-comerc OF fam-comerc.

    FOR EACH bf-item WHERE bf-item.ind-item-fat = NO,
    EACH bf-familia WHERE bf-familia.fm-codigo = bf-ITEM.fm-codigo,
    EACH bf-fam-comerc WHERE bf-fam-comerc.fm-cod-com = bf-ITEM.fm-cod-com:

    IF AVAIL bf-item THEN DO:

    RUN pi-acompanhar IN h-acomp (INPUT ITEM.it-codigo).

    DISP STREAM str-rp
    ITEM.it-codigo
    ITEM.desc-item
    ITEM.fm-cod-com
    fam-comerc.descricao
    ITEM.fm-codigo
    familia.descricao
    ITEM.un
    ITEM.ind-item-fat
    l-ind-item-fat
    WITH FRAME f-item-a.
    DOWN STREAM str-rp WITH FRAME f-item-a.
    END.
    ELSE
    LEAVE.

    END.
    END.



    /* ******************* Item não faturavel ******************* */
    IF tt-param.tt-par-no-fat = NO THEN DO:

    ASSIGN l-ind-item-fat = YES.

    FIND bf-familia OF familia.
    FIND bf-fam-comerc OF fam-comerc.

    FOR EACH bf-item WHERE bf-item.ind-item-fat = YES,
    EACH bf-familia WHERE bf-familia.fm-codigo = bf-ITEM.fm-codigo,
    EACH bf-fam-comerc WHERE bf-fam-comerc.fm-cod-com = bf-ITEM.fm-cod-com:

    IF AVAIL bf-item THEN DO:

    RUN pi-acompanhar IN h-acomp (INPUT ITEM.it-codigo).

    DISP STREAM str-rp
    ITEM.it-codigo
    ITEM.desc-item
    ITEM.fm-cod-com
    fam-comerc.descricao
    ITEM.fm-codigo
    familia.descricao
    ITEM.un
    ITEM.ind-item-fat
    l-ind-item-fat
    WITH FRAME f-item-a.
    DOWN STREAM str-rp WITH FRAME f-item-a.
    END.
    ELSE
    LEAVE.

    END.
    END.
    END.

    porém ele ainda ta executando todos os disp ao mesmo tempo.
    como faço pra cancelar os outros, como sitei no post anterior?

Compartilhe esta Página