Totalizar Itens por Número

Discussão em 'Progress 4GL' iniciado por valter, Janeiro 26, 2011.

  1. valter

    valter Membro Participativo

    Boa tarde pessoal ,

    estou precisando da ajuda de vc,s é o seguinte; como faço para totalizar os itens :

    Não quero totalizar o valor total dos itens e sim a quantidade dos itens , segue exemplo abaixo:

    por exemplo:

    IF tt-param.tipo = 3 THEN DO:
    For Each tt-saldo-estoque No-lock
    Break By tt-saldo-estoque.it-codigo
    By tt-saldo-estoque.cod-estabel
    By tt-saldo-estoque.cod-localiz:

    view stream str-rp frame f-cabec.
    view stream str-rp frame f-rodape.
    assign l-imprime = yes.

    IF NOT tt-param.c-resumo THEN
    DO:
    if tt-param.formato = 2 then do:

    ASSIGN v-numero = v-numero + 1.

    If v-item-ant <> tt-saldo-estoque.it-codigo Then Do:
    Put Stream str-rp
    tt-saldo-estoque.it-codigo At 01 FORMAT "x(10)"
    tt-saldo-estoque.desc-item At 12 FORMAT "x(60)"
    tt-saldo-estoque.un To 74 Format "x(2)".
    ASSIGN v-item-ant = tt-saldo-estoque.it-codigo.

    END.
    Put Stream str-rp
    tt-saldo-estoque.cod-estabel TO 78 Format "x(3)"
    tt-saldo-estoque.cod-depos To 83 Format "x(3)"
    tt-saldo-estoque.cod-localiz TO 110 Format "x(10)"
    tt-saldo-estoque.qtidade-atu To 132 Format "->,>>>,>>9.9999"
    Skip.

    ASSIGN vlr-total-item = vlr-total-item + tt-saldo-estoque.qtidade-atu
    vlr-total-geral = vlr-total-geral + tt-saldo-estoque.qtidade-atu.

    IF last-of(tt-saldo-estoque.it-codigo) Then Do:
    IF v-numero > 1 THEN DO:
    Put Stream str-rp
    "Total Item:" AT 95 FORMAT "x(11)"
    vlr-total-item To 132 Format "->,>>>,>>9.9999"
    SKIP(1).
    END.
    ASSIGN vlr-total-item = 0
    v-numero = 0.
    END.

    END.

    END.


    ============================================Resultado==================

    Item Descrição valor
    -------------------------------------------------- --------------
    006282 CHUMBO BRUTO 10,00
    006284 CHUMBO LIGA A MONTADORA 55,00
    006285 CHUMBO LIGA B 30,00
    006287 CHUMBO LIGA D MONTADORA 25,00
    006288 CHUMBO LIGA E 38,00
    006290 CHUMBO LIGA H 55,00
    006291 CHUMBO MOLE ELETROLITICO 44,00


    Eu quero a soma dos itens que é = 7 e não a soma dos itens.
  2. baltazar

    baltazar Membro Participativo

    Cria uma variável inteira e por cada "interaction" adiciona 1.

    Ex:

    numitens = 0.

    for each tt_Itens:

    numitens = numitens + 1.

    end.
  3. CarlosNobrega

    CarlosNobrega Membro Participativo

    Verifica a função COUNT e COUNT-OF no help

    exemplo do help progress

    FOR EACH Customer NO-LOCK
    BREAK BY Customer.State:

    DISPLAY Customer.CustNum Customer.Name Customer.SalesRep Customer.State.

    ACCUMULATE Customer.State (SUB-COUNT BY Customer.State).

    IF LAST-OF( Customer.State) THEN
    DISPLAY 100 * (ACCUM SUB-COUNT BY Customer.State Customer.State) / COUNT-OF(Customer.State)
    FORMAT "99.9999%"
    COLUMN-LABEL "% of Total!Customers".
    END.
  4. valter

    valter Membro Participativo

    Senhores ainda não consegui totalizar:

    if tt-param.formato = 2 then do:

    ASSIGN item-total = item-total + tt-saldo-estoque.it-codigo .

    ASSIGN vlr-total-item = vlr-total-item + tt-saldo-estoque.qtidade-atu
    vlr-total-geral = vlr-total-geral + tt-saldo-estoque.qtidade-atu.

    IF last-of(tt-saldo-estoque.it-codigo) Then Do:
    Put Stream str-rp
    tt-saldo-estoque.it-codigo At 01 FORMAT "x(10)"
    tt-saldo-estoque.desc-item At 12 FORMAT "x(60)"
    vlr-total-item To 132 Format "->,>>>,>>9.9999"

    SKIP(1).

    END.

    END.

    END.

    END.

    PUT Stream str-rp

    SKIP
    "------------------------------------------------------------------------------------------------------------------------------------" Skip
    "Total dos Itens :"
    item-total FORMAT ">>>>,>>9.9999" SKIP
    "------------------------------------------------------------------------------------------------------------------------------------" Skip
    SPACE(10).
    END.
  5. CarlosNobrega

    CarlosNobrega Membro Participativo

    Mas neste teu exemplo a variável esta somando o campo it-codigo que é caracter...

    é isso mesmo?

    ASSIGN item-total = item-total + tt-saldo-estoque.it-codigo .
  6. valter

    valter Membro Participativo

    Carlos eu coloquei , mas não é parar ficar assim não, é para somar os itens;

    ex:
    itens
    --------
    004500 = 1
    554400 = 2
    223366 = 3
    225588 = 4
    001144 = 5

    eu quero saber o total = 5 itens

    Mas quando tento fazer um totalizador não da certo.

    eu tentei fazer o seguinte?

    def var total-item as integer.
    def var total like ems2.saldo-estoque no-undo.

    assign total-item = 0.
    assign total = 1 .

    assign total = tt-saldo-estoque.qtidade-atu.

    ASSIGN total-item = total-item + total.


    total dos itens item = 5.(total)

    é mas ou menos isso que estou tentando fazer.

Compartilhe esta Página