Dúvida sobre Frame

Discussão em 'Progress 4GL' iniciado por eder.luca2012, Setembro 6, 2013.

  1. eder.luca2012

    eder.luca2012 Membro Participativo

    Pessoal estou desenvolvendo um programa e tive uma ideia de colocar um frame para mostrar o andamento do processo do programa, porém o frame aparece na tela mais os contadores permanecem zerados alguem poderia me ajudar à colocar o frame para ser atualizado constantemente dentro do meu for-each e exibir os contadores segue o programa:

    DEF VAR titulosprocessados AS INTEGER view-as fill-in size 10 by 1.3 native.
    DEF VAR termoslidos AS INTEGER view-as fill-in size 10 by 1.3 native.
    DEF VAR eventoslidos AS INTEGER view-as fill-in size 10 by 1.3 native.
    DEF VAR eventosachados AS INTEGER view-as fill-in size 10 by 1.3 native.

    ASSIGN titulosprocessados = 0.
    ASSIGN termoslidos = 0.
    ASSIGN eventoslidos = 0.
    ASSIGN eventosachados = 0.

    def rectangle frame-analise edge-pixels 3 graphic-edge no-fill size 30 by 6.
    form skip(1)
    titulosprocessados LABEL "Titulos" COLON 18
    termoslidos LABEL "Termos" COLON 18
    eventoslidos LABEL "Eve.Processados" COLON 18
    eventosachados LABEL "Eve.Localizados" COLON 18
    frame-analise at row 1.3 col 2 space(1.72) skip(0.5)
    with keep-tab-order NO-UNDERLINE SCROLLABLE side-label three-d CENTERED row 13 overlay frame f-analise title "Analise de Titulos".

    HIDE FRAME f-analise NO-PAUSE.
    hide message no-pause.

    display titulosprocessados
    termoslidos
    eventoslidos
    eventosachados with frame f-analise.

    OUTPUT TO c:\spool\acrescimo.lst.
    FOR EACH fatura WHERE fatura.cd-especie = 'PF' NO-LOCK.
    ASSIGN titulosprocessados = titulosprocessados + 1.

    FOR EACH notaserv WHERE notaserv.cd-contratante = fatura.cd-contratante
    AND notaserv.nr-fatura = fatura.nr-fatura NO-LOCK.
    ASSIGN termoslidos = termoslidos + 1.


    FOR EACH fatueven WHERE fatueven.cd-modalidade = notaserv.cd-modalidade
    AND fatueven.nr-ter-adesao = notaserv.nr-ter-adesao
    AND fatueven.aa-referencia = notaserv.aa-referencia
    AND fatueven.mm-referencia = notaserv.mm-referencia
    AND fatueven.nr-sequencia = notaserv.nr-sequencia NO-LOCK.

    ASSIGN eventoslidos = eventoslidos + 1.

    FIND FIRST evenfatu WHERE evenfatu.in-entidade = 'FT'
    AND evenfatu.cd-evento = fatueven.cd-evento NO-LOCK NO-ERROR.

    IF (evenfatu.in-classe-evento = 'H') THEN DO:
    ASSIGN eventosachados = eventosachados + 1.
    DISP fatura.aa-referencia
    fatura.mm-referencia
    fatura.cd-especie
    fatura.nr-titulo-acr
    fatura.cd-contratante
    fatura.dt-emissao
    fatura.dt-vencimento WITH WIDTH 600.


    END.
    END.
    END.

    UPDATE titulosprocessados = titulosprocessados
    termoslidos = termoslidos
    eventoslidos = eventoslidos
    eventosachados = eventosachados with frame f-analise.


    END.
  2. LeandroSantos

    LeandroSantos Membro Participativo

    Coloque o comando "PROCESS EVENTS." depois do display.
  3. eder.luca2012

    eder.luca2012 Membro Participativo

    Fiz à alteração mencionada mas mesmo assim continua com os contadores zerados abaixo segue como ficou:
    DEF VAR titulosprocessados AS INTEGER view-as fill-in size 10 by 1.3 native.
    DEF VAR termoslidos AS INTEGER view-as fill-in size 10 by 1.3 native.
    DEF VAR eventoslidos AS INTEGER view-as fill-in size 10 by 1.3 native.
    DEF VAR eventosachados AS INTEGER view-as fill-in size 10 by 1.3 native.

    ASSIGN titulosprocessados = 0.
    ASSIGN termoslidos = 0.
    ASSIGN eventoslidos = 0.
    ASSIGN eventosachados = 0.

    def rectangle frame-analise edge-pixels 3 graphic-edge no-fill size 30 by 6.
    form skip(1)
    titulosprocessados LABEL "Titulos" COLON 18
    termoslidos LABEL "Termos" COLON 18
    eventoslidos LABEL "Eve.Processados" COLON 18
    eventosachados LABEL "Eve.Localizados" COLON 18
    frame-analise at row 1.3 col 2 space(1.72) skip(0.5)
    with keep-tab-order NO-UNDERLINE SCROLLABLE side-label three-d CENTERED row 13 overlay frame f-analise title "Analise de Titulos".

    HIDE FRAME f-analise NO-PAUSE.
    hide message no-pause.

    display titulosprocessados
    termoslidos
    eventoslidos
    eventosachados with frame f-analise.

    PROCESS EVENTS.

    OUTPUT TO c:\spool\acrescimo.lst.
    FOR EACH fatura WHERE fatura.cd-especie = 'PF' NO-LOCK.
    ASSIGN titulosprocessados = titulosprocessados + 1.

    /*display titulosprocessados
    termoslidos
    eventoslidos
    eventosachados with frame f-analise.*/

    FOR EACH notaserv WHERE notaserv.cd-contratante = fatura.cd-contratante
    AND notaserv.nr-fatura = fatura.nr-fatura NO-LOCK.
    ASSIGN termoslidos = termoslidos + 1.


    FOR EACH fatueven WHERE fatueven.cd-modalidade = notaserv.cd-modalidade
    AND fatueven.nr-ter-adesao = notaserv.nr-ter-adesao
    AND fatueven.aa-referencia = notaserv.aa-referencia
    AND fatueven.mm-referencia = notaserv.mm-referencia
    AND fatueven.nr-sequencia = notaserv.nr-sequencia NO-LOCK.

    ASSIGN eventoslidos = eventoslidos + 1.

    FIND FIRST evenfatu WHERE evenfatu.in-entidade = 'FT'
    AND evenfatu.cd-evento = fatueven.cd-evento NO-LOCK NO-ERROR.

    IF (evenfatu.in-classe-evento = 'H') THEN DO:
    ASSIGN eventosachados = eventosachados + 1.
    DISP fatura.aa-referencia
    fatura.mm-referencia
    fatura.cd-especie
    fatura.nr-titulo-acr
    fatura.cd-contratante
    fatura.dt-emissao
    fatura.dt-vencimento WITH WIDTH 600.


    END.
    END.
    END.

    UPDATE titulosprocessados = titulosprocessados
    termoslidos = termoslidos
    eventoslidos = eventoslidos
    eventosachados = eventosachados with frame f-analise.




    END.
  4. LeandroSantos

    LeandroSantos Membro Participativo

    Tente desta forma:
    Código:
    DEF VAR titulosprocessados AS INTEGER view-as fill-in size 10 by 1.3 native. 
    DEF VAR termoslidos AS INTEGER view-as fill-in size 10 by 1.3 native. 
    DEF VAR eventoslidos AS INTEGER view-as fill-in size 10 by 1.3 native. 
    DEF VAR eventosachados AS INTEGER view-as fill-in size 10 by 1.3 native. 
    
    ASSIGN titulosprocessados = 0.
    ASSIGN termoslidos = 0.
    ASSIGN eventoslidos = 0.
    ASSIGN eventosachados = 0.
    
    def rectangle frame-analise edge-pixels 3 graphic-edge no-fill size 30 by 6. 
    form skip(1)
    titulosprocessados LABEL "Titulos" COLON 18 
    termoslidos LABEL "Termos" COLON 18
    eventoslidos LABEL "Eve.Processados" COLON 18
    eventosachados LABEL "Eve.Localizados" COLON 18
    frame-analise at row 1.3 col 2 space(1.72) skip(0.5)
    with keep-tab-order NO-UNDERLINE SCROLLABLE side-label three-d CENTERED row 13 overlay frame f-analise title "Analise de Titulos".
    
    HIDE FRAME f-analise NO-PAUSE.
    hide message no-pause. 
    
    display titulosprocessados
    termoslidos
    eventoslidos
    eventosachados with frame f-analise.
    
    OUTPUT TO c:\spool\acrescimo.lst.
    FOR EACH fatura WHERE fatura.cd-especie = 'PF' NO-LOCK.
    ASSIGN titulosprocessados = titulosprocessados + 1.
    
    display titulosprocessados
    termoslidos
    eventoslidos
    eventosachados with frame f-analise.
    
    PROCESS EVENTS.
    
    FOR EACH notaserv WHERE notaserv.cd-contratante = fatura.cd-contratante
    AND notaserv.nr-fatura = fatura.nr-fatura NO-LOCK.
    ASSIGN termoslidos = termoslidos + 1.
    
    
    FOR EACH fatueven WHERE fatueven.cd-modalidade = notaserv.cd-modalidade
    AND fatueven.nr-ter-adesao = notaserv.nr-ter-adesao
    AND fatueven.aa-referencia = notaserv.aa-referencia
    AND fatueven.mm-referencia = notaserv.mm-referencia
    AND fatueven.nr-sequencia = notaserv.nr-sequencia NO-LOCK.
    
    ASSIGN eventoslidos = eventoslidos + 1.
    
    FIND FIRST evenfatu WHERE evenfatu.in-entidade = 'FT'
    AND evenfatu.cd-evento = fatueven.cd-evento NO-LOCK NO-ERROR.
    
    IF (evenfatu.in-classe-evento = 'H') THEN DO:
    ASSIGN eventosachados = eventosachados + 1.
    DISP fatura.aa-referencia
    fatura.mm-referencia
    fatura.cd-especie
    fatura.nr-titulo-acr
    fatura.cd-contratante
    fatura.dt-emissao
    fatura.dt-vencimento WITH WIDTH 600.
    
    
    END.
    END.
    END.
    
    UPDATE titulosprocessados = titulosprocessados
    termoslidos = termoslidos
    eventoslidos = eventoslidos
    eventosachados = eventosachados with frame f-analise.
    
    
    
    
    END.
  5. eder.luca2012

    eder.luca2012 Membro Participativo

    Fiz o teste conforme o enviado infelizmente ainda persiste o frame contendo apenas zeros, não tem alguma comando que da um refresh no frame como em outras linguagens? Uma coisa que notei por exemplo nas ultimas linhas eu tenho um update se eu substituir o update que atualmente é assim


    UPDATE titulosprocessados = titulosprocessados
    termoslidos = termoslidos
    eventoslidos = eventoslidos
    eventosachados = eventosachados with frame f-analise.

    Por

    UPDATE titulosprocessados
    termoslidos
    eventoslidos
    eventosachados with frame f-analise.

    embora eu precise passar pelos campos e dar enter no final os contadores funcionam normalmente mas queria que ficasse apenas rodando e não que eu tivesse de passar por esses campos.
  6. LeandroSantos

    LeandroSantos Membro Participativo

    Aanlisando agora com mais calma seu codigo, não esta atualizando a frame porque seu display esta dentro de um output.
    tente desta forma:
    Código:
    DEF VAR titulosprocessados AS INTEGER view-as fill-in size 10 by 1.3 native. 
    DEF VAR termoslidos AS INTEGER view-as fill-in size 10 by 1.3 native. 
    DEF VAR eventoslidos AS INTEGER view-as fill-in size 10 by 1.3 native. 
    DEF VAR eventosachados AS INTEGER view-as fill-in size 10 by 1.3 native. 
    
    ASSIGN titulosprocessados = 0.
    ASSIGN termoslidos = 0.
    ASSIGN eventoslidos = 0.
    ASSIGN eventosachados = 0.
    
    def rectangle frame-analise edge-pixels 3 graphic-edge no-fill size 30 by 6. 
    form skip(1)
    titulosprocessados LABEL "Titulos" COLON 18 
    termoslidos LABEL "Termos" COLON 18
    eventoslidos LABEL "Eve.Processados" COLON 18
    eventosachados LABEL "Eve.Localizados" COLON 18
    frame-analise at row 1.3 col 2 space(1.72) skip(0.5)
    with keep-tab-order NO-UNDERLINE SCROLLABLE side-label three-d CENTERED row 13 overlay frame f-analise title "Analise de Titulos".
    
    HIDE FRAME f-analise NO-PAUSE.
    hide message no-pause. 
    
    display titulosprocessados
    termoslidos
    eventoslidos
    eventosachados with frame f-analise.
    
    OUTPUT TO c:\spool\acrescimo.lst.
    FOR EACH fatura WHERE fatura.cd-especie = 'PF' NO-LOCK.
    ASSIGN titulosprocessados = titulosprocessados + 1.
    
    
    do with frame f-analise:
       assign 
          titulosprocessados:screen-value  = string(titulosprocessados)
          termoslidos:screen-value         = string(termoslidos)
          eventoslidos:screen-value        = string(eventoslidos)
          eventosachados:screen-value      = string(eventosachados).
       PROCESS EVENTS.
    end.
    
    FOR EACH notaserv WHERE notaserv.cd-contratante = fatura.cd-contratante
    AND notaserv.nr-fatura = fatura.nr-fatura NO-LOCK.
    ASSIGN termoslidos = termoslidos + 1.
    
    
    FOR EACH fatueven WHERE fatueven.cd-modalidade = notaserv.cd-modalidade
    AND fatueven.nr-ter-adesao = notaserv.nr-ter-adesao
    AND fatueven.aa-referencia = notaserv.aa-referencia
    AND fatueven.mm-referencia = notaserv.mm-referencia
    AND fatueven.nr-sequencia = notaserv.nr-sequencia NO-LOCK.
    
    ASSIGN eventoslidos = eventoslidos + 1.
    
    FIND FIRST evenfatu WHERE evenfatu.in-entidade = 'FT'
    AND evenfatu.cd-evento = fatueven.cd-evento NO-LOCK NO-ERROR.
    
    IF (evenfatu.in-classe-evento = 'H') THEN DO:
    ASSIGN eventosachados = eventosachados + 1.
    DISP fatura.aa-referencia
    fatura.mm-referencia
    fatura.cd-especie
    fatura.nr-titulo-acr
    fatura.cd-contratante
    fatura.dt-emissao
    fatura.dt-vencimento WITH WIDTH 600.
    
    
    END.
    END.
    END.
    
    UPDATE titulosprocessados = titulosprocessados
    termoslidos = termoslidos
    eventoslidos = eventoslidos
    eventosachados = eventosachados with frame f-analise.
    
    
    
    
    END.

Compartilhe esta Página