Como reimprimir uma ordem de saída mais de uma vez

Discussão em 'Progress 4GL' iniciado por luizclairrodrigues, Março 30, 2012.

  1. luizclairrodrigues

    luizclairrodrigues Membro Participativo

    Boa tarde Pessoal!
    Eu crie um campo lógico na tabela para saber quando impresso ou não só não sei aplicar aqui no código
    alguém pode me ajudar?



    for each ordem-saida no-lock
    WHERE ordem-saida.nr-ord-saida = tt-param.c-ordem:

    RUN pi-acompanhar IN h-acomp (INPUT "it-ordem-saida: " + STRING(ordem-saida.nr-ord-saida)).

    DO i-cont-imp = 1 TO 2:

    PUT "+------------------------------------------------------------------------------------+" AT 01 SKIP
    "|" AT 01
    "ORDEM SAIDA: " AT 03
    ordem-saida.nr-ord-saida AT 16
    "Data: " AT 68
    ordem-saida.data-saida AT 75
    "|" AT 86 SKIP
    "|" AT 01
    "Empresa....: " AT 03
    ordem-saida.cod-emp AT 16
    "-" AT 24
    ordem-saida.desc-emp AT 26
    "|" AT 86 SKIP
    "|" AT 01
    "Colaborador: " AT 03
    ordem-saida.cod-func AT 16
    "-" AT 24
    ordem-saida.nom-func AT 26
    "Via.: " AT 68
    i-cont-imp AT 75
    "|" AT 86 SKIP
    "+------------------------------------------------------------------------------------+" AT 01 SKIP
    "|Codigo |Descricao |Quantidade UM| Pr.Unit.| Total|" AT 01 SKIP
    "+-------+----------------------------------------+-------------+----------+----------+" AT 01 SKIP.

    ASSIGN i-cont = 0
    de-tot-geral = 0.

    FOR EACH it-ordem-saida WHERE
    it-ordem-saida.nr-ord-saida = ordem-saida.nr-ord-saida:

    ASSIGN de-total = it-ordem-saida.qtde * it-ordem-saida.vlor-unit
    de-tot-geral = de-tot-geral + de-total.

    PUT "|" AT 01
    it-ordem-saida.cod-merc FORMAT "x(07)" AT 02
    "|" AT 09
    it-ordem-saida.desc-merc FORMAT "x(40)" AT 10
    "|" AT 50
    it-ordem-saida.qtde FORMAT ">>>>>9.99" AT 52
    " " AT 61
    it-ordem-saida.unid-med FORMAT "x(02)" AT 62
    "|" AT 64
    it-ordem-saida.vlor-unit FORMAT "->>,>>9.99" AT 65
    "|" AT 75
    de-total AT 76
    "|" AT 86 SKIP.

    ASSIGN i-cont = i-cont + 1.
    END.

    IF i-cont < 10 THEN DO:
    DO i-linha = i-cont TO 10:
    put "| | | | | |" AT 01 SKIP.
    END.
    END.

    put "+-------+----------------------------------------+-------------+----------+----------+" AT 01 SKIP
    "|" AT 01
    "Volume: " AT 03
    ordem-saida.volume AT 11
    " " AT 17
    ordem-saida.embal AT 18
    "|" AT 86 SKIP
    "|" AT 01
    "Obs: " AT 03
    ordem-saida.observacao FORMAT "x(30)" AT 08
    "Emit: " AT 40
    ordem-saida.usuario FORMAT "x(15)" AT 47
    "TOTAL.....:" AT 65
    de-tot-geral AT 76
    "|" AT 86 SKIP
    "| |" AT 01
    "| |" AT 01
    "| |" AT 01
    "| ________________________ __________________________ _________________________ |" AT 01
    "|" AT 01
    "Responsável " AT 12
    ordem-saida.nom-func FORMAT "x(30)" AT 32
    "Portaria " AT 66
    "|" AT 86 SKIP
    "| |" AT 01
    "|Retorno.........: Sim( ) Nao( ) |" AT 01
    "|Ligou p/Portaria: Sim( ) Nao( ) Vigia:___________________________________ |" AT 01
    "+------------------------------------------------------------------------------------+" AT 01 SKIP.
    PUT SKIP(3).
    END.
    END.
    run pi-finalizar in h-acomp.
    {include/i-rpclo.i}
  2. muertebr

    muertebr Membro Participativo

    Se fosse você, ao final de todo esse código colocaria:

    Antes do pi-finalizar.

    Código:
    FIND FIRST ordem-saida EXCLUSIVE-LOCK 
        WHERE ordem-saida.nr-ord-saida = tt-param.c-ordem NO-ERROR.
    IF AVAIL ordem-saida THEN
        ASSIGN ordem-saida.imprimiu = YES.
    ELSE
        PUT "Ordem " tt-param.c-ordem " não encontrada.".

Compartilhe esta Página