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.
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.
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
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?