Ocorrendo Fill-in 30 vezes

Discussão em 'Progress 4GL' iniciado por DFResmer, Setembro 18, 2012.

  1. DFResmer

    DFResmer Membro Participativo

    Ola Galera!
    Tenho uma rotina que ocorre 30 vezes, para 30 fill-in diferentes, veja axemplo abaixo, como posso fazer para não precisar repetir várias vezes a mesma coisa.

    IF fi-editor-1 = "" THEN DO:
    fi-editor-1 = STRING(MAGENDA.horini, 'HH:MM') + '-' +
    STRING(MAGENDA.horfin, 'HH:MM') + '-' +
    STRING(MAGENDA.nomut) + '-' +
    STRING(MAGENDA_OBS.obs).
    DISPLAY fi-editor-1 WITH FRAME fr-001.
    fi-editor-1:height = x-altura NO-ERROR.
    fi-editor-1:row = x-linha NO-ERROR.
    fi-editor-1:column = x-coluna NO-ERROR.
    fi-editor-1:bgcolor = i-cor NO-ERROR.
    NEXT.
    END.

    IF fi-editor-2 = "" THEN DO:
    fi-editor-2 = STRING(MAGENDA.horini, 'HH:MM') + '-' +
    STRING(MAGENDA.horfin, 'HH:MM') + '-' +
    STRING(MAGENDA.nomut) + '-' +
    STRING(MAGENDA_OBS.obs).
    DISPLAY fi-editor-2 WITH FRAME fr-001.
    fi-editor-2:height = x-altura NO-ERROR.
    fi-editor-2:row = x-linha NO-ERROR.
    fi-editor-2:column = x-coluna NO-ERROR.
    fi-editor-2:bgcolor = i-cor NO-ERROR.
    NEXT.
    END.

    IF fi-editor-3 = "" THEN DO:
    fi-editor-3 = STRING(MAGENDA.horini, 'HH:MM') + '-' +
    STRING(MAGENDA.horfin, 'HH:MM') + '-' +
    STRING(MAGENDA.nomut) + '-' +
    STRING(MAGENDA_OBS.obs).
    DISPLAY fi-editor-3 WITH FRAME fr-001.
    fi-editor-3:height = x-altura NO-ERROR.
    fi-editor-3:row = x-linha NO-ERROR.
    fi-editor-3:column = x-coluna NO-ERROR.
    fi-editor-3:bgcolor = i-cor NO-ERROR.
    NEXT.
    END.
    ............................... 30 x

    Att,

    Diogo
  2. jaozi_nho

    jaozi_nho Membro Participativo

    Olá, você pode utilizar uma include apenas para o código ficar mais limpo, porém o certo nesse caso seria criar um vetor, só não sei se funcionara para um fill-in.

    Abraço
  3. DFResmer

    DFResmer Membro Participativo

    Tentei criar uma procedure com um vetor, mas não consegui.... mas acho que o caminho mais fácil seria por aí.

    Att,

    Diogo
  4. LFBuozi

    LFBuozi Membro Participativo

    Já tentou fazer algo neste estilo?
    Código:
    RUN p-teste (INPUT fi-editor-1:HANDLE).
    
    PROCEDURE p-teste.
        DEF INPUT PARAM wh-fill-in AS WIDGET-HANDLE.
    
        IF wh-fill-in:SCREEN-VALUE = "" THEN DO:
            wh-fill-in:SCREEN-VALUE = STRING(MAGENDA.horini, 'HH:MM') + '-' +
                STRING(MAGENDA.horfin, 'HH:MM') + '-' +
                STRING(MAGENDA.nomut) + '-' +
                STRING(MAGENDA_OBS.obs).
            DISPLAY wh-fill-in:SCREEN-VALUE WITH FRAME fr-001.
            wh-fill-in:HEIGHT = x-altura NO-ERROR.
            wh-fill-in:ROW = x-linha NO-ERROR.
            wh-fill-in:COLUMN = x-coluna NO-ERROR.
            wh-fill-in:BGCOLOR = i-cor NO-ERROR.
            NEXT.
        END.
    END PROCEDURE.
    Agora com vetor é complicado, preciso pensar mais um pouco.

Compartilhe esta Página