Boa tarde pessoal! no final desse relatório tenho que fazer mostrar dois resumo um de paradas e outro de variações, o de parada já esta mostrando, mas o resumo de variação não mostra e é igual não sei como fazer se, alguém puder me ajudar eu agradeço. tem o exemplo abaixo. ------------------------------------------------------------------------------*/ MESSAGE "1" VIEW-AS ALERT-BOX INFO BUTTONS OK. {include/i-prgvrs.i FRMI33 2.04.00.000} define temp-table tt-param no-undo field destino as integer field arquivo as char format "x(35)" field usuario as char format "x(12)" field data-exec as date field hora-exec as integer FIELD classifica as integer FIELD i-ordem-ini LIKE ord-manut.nr-ord-prod FIELD i-ordem-fim LIKE ord-manut.nr-ord-prod FIELD dt-periodo-ini AS DATE FORMAT "99/99/9999" FIELD dt-periodo-fim AS DATE FORMAT "99/99/9999" FIELD c-equipamento-ini LIKE equipto.cd-equipto FIELD c-equipamento-fim LIKE equipto.cd-equipto FIELD c-equipe-ini AS CHAR FORMAT 'x(08)':U FIELD c-equipe-fim AS CHAR FORMAT 'x(08)':U FIELD i-prioridade-ini LIKE ord-manut.prioridade FIELD i-prioridade-fim LIKE ord-manut.prioridade FIELD c-centro-ini LIKE ord-manut.sc-desp FIELD c-centro-fim LIKE ord-manut.sc-desp FIELD c-tipo-ini LIKE ord-manut.cd-tipo FIELD c-tipo-fim LIKE ord-manut.cd-tipo FIELD l-naoliberada AS LOGICAL FIELD l-liberada AS LOGICAL FIELD l-alocada AS LOGICAL FIELD l-separada AS LOGICAL FIELD l-requisitada AS LOGICAL FIELD l-iniciada AS LOGICAL FIELD l-finalizada AS LOGICAL FIELD l-terminada AS LOGICAL. DEFINE TEMP-TABLE tt-variacao FIELD descricao LIKE VAR_manut.desc_var_manut FIELD codigo LIKE movto-manut.cod-variacao FIELD horas LIKE movto-manut.horas. DEFINE TEMP-TABLE tt-parada FIELD descricao LIKE mao-obra.descricao FIELD codigo LIKE paradas-mob.cod-mao-obra FIELD horas LIKE paradas-mob.horas. DEFINE TEMP-TABLE TT-ORD FIELD NR-ORD-PRODU LIKE ORD-MANUT.NR-ORD-PRODU FIELD nr-ord-compra LIKE ordem-compra.ordem-servic FIELD CD-EQUIPTO LIKE ORD-MANUT.CD-EQUIPTO FIELD DESCRICAO LIKE equipto.descricao FIELD c-estado-ord AS CHAR FIELD TEMPO LIKE ORD-TAREF.TEMPO FIELD horas LIKE ord-taref.tempo FIELD eficiencia-ord AS DEC FIELD tempo-pad AS DEC FIELD Parada AS DEC FORMAT "->>,>>9.9999" FIELD variacao AS DEC FORMAT "->>,>>9.9999" FIELD prioridade-ord LIKE ord-manut.prioridade FIELD prev-termino AS DATE FORMAT "99/99/9999" FIELD dt-manutencao AS DATE FORMAT "99/99/9999" FIELD dias-atraso AS INTEGER FORMAT ">>>>>>>>>>9" FIELD situacao-ord as char format "x(12)" FIELD num-ordem LIKE ordem-compra.numero-ordem FIELD utilizacao-ord AS DEC FIELD produtiv-ord AS DEC FIELD tot-ordem AS DEC FORMAT "->>,>>9.9999" FIELD cod-parad LIKE paradas-mob.cod-mao-obra FIELD descricao-parada LIKE mao-obra.descricao FIELD cod-variacao LIKE movto-manut.cod-variacao FIELD desc-variacao LIKE VAR_manut.DESC_var_MANUT. def temp-table tt-raw-digita field raw-digita as raw. def input parameter raw-param as raw no-undo. def input parameter table for tt-raw-digita. create tt-param. raw-transfer raw-param to tt-param. {include\i-rpvar.i} {utp\ut-glob.i} /*definição VAR*/ DEF VAR h-acomp AS HANDLE. DEF VAR c-est-ord AS CHAR format "x(15)" INIT "Não Liberada,Liberada,Alocada,Separada,Requisitada,Iniciada,Finalizada,Terminada". def var c-estado as char format "x(15)" label "Situação". DEF VAR i-ord-manut AS INTEGER. DEF VAR d-dat-movto AS DATE FORMAT "99/99/9999". DEF VAR hr-trab AS DEC NO-UNDO. DEF VAR situacao-ordem as char format "x(12)" NO-UNDO. DEF VAR tempo-padrao AS DEC NO-UNDO. DEF VAR eficiencia AS DEC FORMAT "->>,>>9.99" NO-UNDO. DEF VAR utilizacao AS DEC FORMAT "->>,>>9.99" NO-UNDO. DEF VAR produtividade AS DEC FORMAT "->>,>>9.99" NO-UNDO. DEF VAR tot-horas-ordem AS DEC FORMAT "->>,>>9.99" NO-UNDO. DEF VAR de-horas AS DEC FORMAT "->>,>>9.99" NO-UNDO. DEF VAR hr-variacao AS DEC FORMAT "->>,>>9.99" NO-UNDO. DEF VAR de-horas-parada AS DEC FORMAT "->>,>>9.99" NO-UNDO. DEF VAR narrativa-ordem LIKE ordem-compra.narrativa. DEF VAR nr-ordem LIKE ordem-compra.numero-ordem. DEF VAR cod-parada LIKE paradas-mob.cod-mao-obra. DEF VAR quant-horas AS DEC. DEF VAR porcent AS DEC. DEF VAR porcentagem AS DEC. DEF VAR codigo LIKE paradas-mob.cod-mao-obra. DEF VAR total-horas-paradas AS DEC. DEF VAR desc-parada AS CHAR FORMAT "X(25)". DEF VAR cod-var LIKE movto-manut.cod-variacao. DEF VAR desc-var LIKE var_manut.desc_var_manut. DEF VAR cod-res-var LIKE movto-manut.cod-variacao. DEF VAR qtd-var LIKE movto-manut.horas. DEF VAR qtd-variacao LIKE movto-manut.horas. DEF VAR total-hr-parada AS DEC. DEF VAR tot-hr-parada AS DEC. find param-global no-lock no-error. find mguni.empresa no-lock where mguni.empresa.ep-codigo = param-global.empresa-prin no-error. assign c-programa = "FRMI31" c-versao = "2.04" c-revisao = "000" c-titulo-relat = "Apontamento Ordens Manutenção" c-sistema = "Manutenção Industrial" c-empresa = if avail empresa then empresa.nome else "". {include\i-rpcab.i} run utp/ut-acomp.p persistent set h-acomp. run pi-inicializar in h-acomp(input "Gerando Relatório..."). {include/i-rpout.i} view frame f-cabec. view frame f-rodape. DEF VAR total-horas-parada AS DEC. /*IF tt-param.classifica = 1 then do:*/ /*-- Classifica por Equipamento/Preventivas --------------------------------*/ IF tt-param.classifica = 1 THEN DO: find FIRST param-mi NO-LOCK NO-ERROR. /* for each equipto NO-LOCK where equipto.cd-equipto >= tt-param.c-equipamento-ini and equipto.cd-equipto <= tt-param.c-equipamento-fim: */ /* RUN pi-acompanhar IN h-acomp(INPUT "Equipamentos: " + STRING(equipto.cd-equipto)).*/ for each ord-manut NO-LOCK where ord-manut.cd-equipto >= tt-param.c-equipamento-ini AND ord-manut.cd-equipto <= tt-param.c-equipamento-fim AND ord-manut.nr-ord-produ >= param-mi.prim-ord-man-mi /*AND (ord-manut.nr-ord-produ = 8073203 OR ord-manut.nr-ord-produ = 8073204 OR ord-manut.nr-ord-produ = 8073291)*/ AND ord-manut.nr-ord-produ >= tt-param.i-ordem-ini AND ord-manut.nr-ord-produ <= tt-param.i-ordem-fim AND ord-manut.dt-manut >= tt-param.dt-periodo-ini AND ord-manut.dt-manut <= tt-param.dt-periodo-fim: IF ord-manut.cd-equip-res < tt-param.c-equipe-ini OR ord-manut.cd-equip-res > tt-param.c-equipe-fim THEN NEXT. IF ord-manut.sc-desp < tt-param.c-centro-ini OR ord-manut.sc-desp > tt-param.c-centro-fim THEN NEXT. IF ord-manut.cd-tipo < tt-param.c-tipo-ini OR ord-manut.cd-tipo > tt-param.c-tipo-fim THEN NEXT. IF ord-manut.prioridade < tt-param.i-prioridade-ini OR ord-manut.prioridade > tt-param.i-prioridade-fim THEN NEXT. RUN pi-acompanhar IN h-acomp(INPUT "Equipamentos: " + STRING(ord-manut.cd-equipto)). IF ord-manut.estado = 1 AND tt-param.l-naoliberada = NO THEN NEXT. IF ord-manut.estado = 2 AND tt-param.l-liberada = NO THEN NEXT. IF ord-manut.estado = 3 AND tt-param.l-alocada = NO THEN NEXT. IF ord-manut.estado = 4 AND tt-param.l-separada = NO THEN NEXT. IF ord-manut.estado = 5 AND tt-param.l-requisitada = NO THEN NEXT. IF ord-manut.estado = 6 AND tt-param.l-iniciada = NO THEN NEXT. IF ord-manut.estado = 7 AND tt-param.l-finalizada = NO THEN NEXT. IF ord-manut.estado = 8 AND tt-param.l-terminada = NO THEN NEXT. ASSIGN tempo-padrao = 0. FOR EACH ord-taref NO-LOCK WHERE ord-taref.nr-ord-produ = ord-manut.nr-ord-produ: ASSIGN tempo-padrao = tempo-padrao + ord-taref.tempo. END. assign de-horas = 0. for each movto-manut where movto-manut.nr-ord-prod = ord-manut.nr-ord-produ /* and movto-manut.dt-movto >= tt-param.dt-periodo-ini and movto-manut.dt-movto <= tt-param.dt-periodo-fim*/ no-lock: ASSIGN de-horas = de-horas + movto-manut.horas cod-var = movto-manut.cod-variacao. FIND FIRST VAR_manut WHERE VAR_manut.cod_var_manut = movto-manut.cod-variacao NO-LOCK NO-ERROR. IF AVAIL VAR_manut THEN ASSIGN desc-var = VAR_manut.desc_var_manut. IF movto-manut.cod-variacao <> "" THEN DO: CREATE tt-variacao. ASSIGN tt-variacao.codigo = movto-manut.cod-variacao tt-variacao.horas = movto-manut.horas tt-variacao.descricao = VAR_manut.desc_var_manut. END. END. assign de-horas-parada = 0. for each paradas-mob where paradas-mob.nr-ord-prod = ord-manut.nr-ord-produ /*and paradas-mob.data >= tt-param.dt-periodo-ini and paradas-mob.data <= tt-param.dt-periodo-fim*/ no-lock: ASSIGN cod-parada = paradas-mob.cod-mao-obra de-horas-parada = de-horas-parada + paradas-mob.horas. FIND FIRST mao-obra WHERE mao-obra.cod-mao-obra = paradas-mob.cod-mao-obra NO-LOCK NO-ERROR. IF AVAIL mao-obra THEN ASSIGN desc-parada = mao-obra.descricao. IF paradas-mob.cod-mao-obra <> 0 THEN DO: CREATE tt-parada. ASSIGN tt-parada.codigo = paradas-mob.cod-mao-obra tt-parada.horas = paradas-mob.horas tt-parada.descricao = mao-obra.descricao. END. END. ASSIGN tot-horas-ordem = de-horas + de-horas-parada eficiencia = (tempo-padrao / de-horas) * 100 utilizacao = (de-horas / tot-horas-ordem) * 100 produtividade = (utilizacao * eficiencia) / 100. ASSIGN hr-variacao = 0. IF de-horas > tempo-padrao THEN DO: ASSIGN hr-variacao = de-horas - tempo-padrao. END. assign c-estado = entry(ord-manut.estado,c-est-ord). CREATE TT-ORD. ASSIGN TT-ORD.NR-ORD-PRODU = ORD-MANUT.NR-ORD-PRODU TT-ORD.CD-EQUIPTO = ord-manut.CD-EQUIPTO TT-ORD.DESCRICAO = ord-manut.des-man-corr TT-ORD.prioridade-ord = ORD-MANUT.prioridade tt-ord.horas = de-horas tt-ord.dt-manutencao = ord-manut.dt-manut tt-ord.tot-ordem = tot-horas-ordem tt-ord.eficiencia-ord = eficiencia tt-ord.parada = de-horas-parada tt-ord.tempo-pad = tempo-padrao tt-ord.utilizacao-ord = utilizacao tt-ord.produtiv-ord = produtividade tt-ord.c-estado-ord = c-estado tt-ord.variacao = hr-variacao tt-ord.cod-parad = cod-parada tt-ord.descricao-parada = desc-parada tt-ord.cod-variacao = cod-var tt-ord.desc-variacao = desc-var. END. FOR EACH TT-ORD NO-LOCK BREAK BY tt-ord.dt-manutencao BY tt-ord.nr-ord-produ: IF tt-ord.horas > 0 OR tt-ord.parada > 0 THEN DISP TT-ORD.NR-ORD-PRODU FORMAT ">>>>>>>>9" COLUMN-LABEL "Nr Ord " TT-ORD.CD-EQUIPTO COLUMN-LABEL "Equipamento" TT-ORD.DESCRICAO COLUMN-LABEL "Descrição" TT-ORD.prioridade-ord COLUMN-LABEL "Prioridade" tt-ord.c-estado-ord COLUMN-LABEL "Estado " tt-ord.dt-manutencao COLUMN-LABEL "Data Manut" tt-ord.tot-ordem (TOTAL) COLUMN-LABEL "Tempo-total" tt-ord.horas (TOTAL) COLUMN-LABEL "Hr.Trab " tt-ord.tempo-pad (TOTAL) COLUMN-LABEL "Tempo-Estimado" tt-ord.eficiencia-ord COLUMN-LABEL "% Eficiência " tt-ord.variacao (TOTAL) COLUMN-LABEL "Hr/Variacao" tt-ord.parada (TOTAL) COLUMN-LABEL "Parada" tt-ord.utilizacao-ord COLUMN-LABEL "(%)Utilização " tt-ord.produtiv-ord COLUMN-LABEL "(%)Produtividade" WITH FRAME f-linha2 STREAM-IO down width 300. END. FOR EACH TT-parada NO-LOCK BREAK BY tt-parada.codigo: ASSIGN total-horas-parada = total-horas-parada + tt-parada.horas. IF LAST-OF (tt-parada.codigo) THEN DO: ASSIGN codigo = tt-parada.codigo quant-horas = total-horas-parada. ASSIGN total-horas-parada = 0. DISP codigo COLUMN-LABEL "Parada " tt-parada.descricao COLUMN-LABEL "Descrição" quant-horas (TOTAL) COLUMN-LABEL "Horas". END. END. FOR EACH TT-variacao NO-LOCK BREAK BY tt-variacao.codigo: ASSIGN qtd-variacao = qtd-variacao + tt-variacao.horas. IF LAST-OF (tt-variacao.codigo) THEN DO: ASSIGN cod-res-var = tt-variacao.codigo qtd-var = qtd-variacao. ASSIGN qtd-variacao = 0. DISP cod-res-var COLUMN-LABEL "Variação " tt-variacao.descricao COLUMN-LABEL "Descrição" qtd-var (TOTAL) COLUMN-LABEL "Horas". END. END. END. run pi-finalizar in h-acomp. {include/i-rpclo.i}