Parametros de seleção de uma procedure.

Discussão em 'Progress 4GL' iniciado por diego.neves, Março 20, 2014.

  1. diego.neves

    diego.neves Membro Participativo

    Bom dia Pessoal.

    Abaixo tenho o For each da minha pesquisa.

    FOR EACH ped-item WHERE ped-item.it-codigo >=(fi-item-1:SCREEN-VALUE) AND ped-item.it-codigo <=(fi-item-2:SCREEN-VALUE) AND ped-item.cod-sit-item = 1.

    Criei uma procedure que usa tambem os mesmos parametros. porém como faço para inserir na cláusulas da procedure os valores inseridos pelo usuário?

    FOR EACH ped-item WHERE ped-item.it-codigo >= ******** and ped-item.it-codigo <= **********
    AND ped-item.cod-sit-item = 1.
  2. lfsantos

    lfsantos Sem Pontuação

    Diego,

    na tua Procedure define 2 parâmetros de input com os valores inseridos pelo usuário.
    no for each colocas os parâmetros.

    define input parameter do-codigo as character no-undo.
    define input parameter ao-codigo as character no-undo.

    FOR EACH ped-item
    WHERE ped-item.it-codigo >= do-codigo
    AND ped-item.it-codigo <= ao-codigo
    AND ped-item.cod-sit-item = 1.


    na chamada da procedure

    RUN nome-procedure ( input fi-item-1:SCREEN-VALUE,
    input fi-item-2:SCREEN-VALUE ).



  3. diego.neves

    diego.neves Membro Participativo

    Obrigado.
    Abaixo segue relatório, ele verificar as quantidades que deverão serem entregues nos proximos dias (pd4000).

    Criei a procedure para verificar as quantidades na data de entrega do item.
    Porém ele está repetindo a quantidade Ex. no dia 01/04/2014 eu tenho que entregas 200 pçs do item 90011 e 1000 do item 90010, mas ele repetiu.

    Código Descrição Saldo em Estoque Valor em Estoque Atraso 26/03/2014 27/03/2014 01/04/2014
    90010 plaqueta 0 20 0 0 200
    90011 plaqueta2 376 85,2016 0 0 0 200
    Última edição: Março 20, 2014
  4. diego.neves

    diego.neves Membro Participativo

    Segue a procedure:


    DEFINE INPUT PARAMETER ITCODIGO1 AS CHAR.
    DEFINE INPUT PARAMETER ITCODIGO2 AS CHAR.
    DEFINE INPUT PARAMETER p_data2 AS DATE FORMAT "99/99/9999".
    DEFINE OUTPUT PARAMETER saldo AS DEC.


    FOR EACH ped-item WHERE ped-item.it-codigo >=(ITCODIGO1) AND ped-item.it-codigo <= (ITCODIGO2) AND ped-item.cod-sit-item = 1.
    FOR EACH ped-ent WHERE ped-ent.it-codigo = ped-item.it-codigo AND
    ped-ent.qt-atendida < ped-ent.qt-pedida AND ped-ent.dt-entrega = (p_data2).

    ASSIGN saldo = ped-ent.qt-pedida - ped-ent.qt-atendida.

    END.
    END.

    END PROCEDURE.

    Imprime no relatorio.

    RUN QuantidadeEntrega (INPUT fi-item-1:SCREEN-VALUE, fi-item-2:SCREEN-VALUE, INPUT data-entrega1, OUTPUT saldo2).
    ASSIGN chworksheet:range("H" + STRING(m-linha)):VALUE = saldo2.
  5. diego.neves

    diego.neves Membro Participativo

    Obrigado a todos.

    Resolvi a situação , na verdade eu não precisava da procedure era somente varios FOR EACH na ped-ent utilzando as variaveis,

Compartilhe esta Página