Totalizar Coluna Excel

Discussão em 'Progress 4GL' iniciado por kmota, Maio 12, 2010.

  1. kmota

    kmota Sem Pontuação

    Boa tarde a todos,

    Preciso gerar um relatório totalizando a quantidade de itens inventariados por dia. Como posso fazer para criar esse totalizar com a quebra por dia?
    Código:
    FOR EACH inventario WHERE dt-saldo >= 04/24/2010 and dt-saldo <= 04/26/2010 NO-LOCK
        BREAK BY inventario.dt-saldo BY inventario.it-codigo:
    
        FIND FIRST ITEM WHERE inventario.it-codigo = item.it-codigo.
        IF ITEM.classif-abc = 1 THEN
        ASSIGN classe = "A".
        IF ITEM.classif-abc = 2 THEN
        ASSIGN classe = "B".
        IF ITEM.classif-abc = 3 THEN
        ASSIGN classe = "C".
    
        IF LAST-OF(inventario.it-codigo) AND inventario.it-codigo <> " " THEN DO:
        
       assign 
        chworksheet:range("A" + STRING(m-linha)):VALUE = (ITEM.it-codigo).
        chworksheet:range("B" + STRING(m-linha)):VALUE = (classe).
        chworksheet:range("C" + STRING(m-linha)):VALUE = (inventario.dt-saldo).
        chworksheet:range("d" + STRING(m-linha)):VALUE = (contador).
        m-linha = m-linha + 1.
  2. jonas

    jonas Membro Participativo

    Mude o break by do for each:

    Código:
    FOR EACH inventario 
        WHERE dt-saldo >= 04/24/2010 and dt-saldo <= 04/26/2010 NO-LOCK,
        first item fields(it-codigo classif-abc) 
        where item.it-codigo = inventario.it-codigo no-lock BREAK BY inventario.dt-saldo BY inventario.it-codigo:
    
        if first-of (inventario.dt-saldo) then do:
            assign contador = 0.
        end.
    
        assign contador = contador + 1.
        
        IF ITEM.classif-abc = 1 THEN
        ASSIGN classe = "A".
        IF ITEM.classif-abc = 2 THEN
        ASSIGN classe = "B".
        IF ITEM.classif-abc = 3 THEN
        ASSIGN classe = "C".
    
        IF LAST-OF(inventario.dt-saldo) THEN DO:
    
            chworksheet:range("A" + STRING(m-linha)):VALUE = (ITEM.it-codigo).
            chworksheet:range("B" + STRING(m-linha)):VALUE = (classe).
            chworksheet:range("C" + STRING(m-linha)):VALUE = (inventario.dt-saldo).
            chworksheet:range("d" + STRING(m-linha)):VALUE = (contador).
            m-linha = m-linha + 1.
    
        end.
    
    end.
    

    Veja se é isso que você precisa.
  3. kmota

    kmota Sem Pontuação

    Jonas, valeu pelo retorno.

    Mas o que precisava era listar todos os itens de cada dia e o todas de itens inventariados. Da forma que você colocou, ele está totalizando por ficha e não por item.

    kmota
  4. jonas

    jonas Membro Participativo

    Veja se assim te ajuda:

    Código:
    FOR EACH inventario 
        WHERE dt-saldo >= 04/24/2010 and dt-saldo <= 04/26/2010 NO-LOCK,
        first item fields(it-codigo classif-abc) 
        where item.it-codigo = inventario.it-codigo no-lock BREAK BY inventario.dt-saldo BY inventario.it-codigo:
    
        if first-of (inventario.dt-saldo) then do:
            assign contador = 0.
            chworksheet:range("C" + STRING(m-linha)):VALUE = (inventario.dt-saldo).
        end.
    
        assign contador = contador + 1.
        
        IF ITEM.classif-abc = 1 THEN
        ASSIGN classe = "A".
        IF ITEM.classif-abc = 2 THEN
        ASSIGN classe = "B".
        IF ITEM.classif-abc = 3 THEN
        ASSIGN classe = "C".
    
         chworksheet:range("A" + STRING(m-linha)):VALUE = (ITEM.it-codigo).
         chworksheet:range("B" + STRING(m-linha)):VALUE = (classe).
    
    
        IF LAST-OF(inventario.dt-saldo) THEN DO:
            chworksheet:range("d" + STRING(m-linha)):VALUE = (contador).
            m-linha = m-linha + 1.
        end.
    
    end.
    
    Desta forma vai listar os itens e totalizar a quantidade de itens do inventário por dia.
    É isso que você precisa?

Compartilhe esta Página