Duvidas em criação de UPC

Discussão em 'Progress 4GL' iniciado por andreluisbrandao, Novembro 20, 2015.

  1. andreluisbrandao

    andreluisbrandao Membro Participativo

    .
    .
    .
    .
    DEFINE VARIABLE wh-window AS WIDGET-HANDLE NO-UNDO.
    DEFINE VARIABLE wh-frame0 AS WIDGET-HANDLE NO-UNDO.
    DEFINE VARIABLE wh-frame1 AS WIDGET-HANDLE NO-UNDO.
    DEFINE VARIABLE wh-frame3 AS WIDGET-HANDLE NO-UNDO.
    DEFINE VARIABLE wh-frame AS WIDGET-HANDLE NO-UNDO.
    .
    .

    /* procedure */
    procedure RodarOriginal:
    Message ('Error').
    end procedure.
    /* --------------------------- */

    /** Função padrão, busca handle do campo **/
    FUNCTION buscarHandleCampo RETURNS WIDGET-HANDLE (INPUT pcCampo AS CHARACTER,
    INPUT whPointer AS WIDGET-HANDLE).
    DEFINE VARIABLE wh-grupo AS WIDGET-HANDLE NO-UNDO.
    DEFINE VARIABLE wh-child AS WIDGET-HANDLE NO-UNDO.

    IF whPointer <> ? THEN
    wh-grupo = whPointer:FIRST-CHILD.
    ELSE wh-grupo = p-wgh-frame:FIRST-CHILD.

    DO WHILE VALID-HANDLE(wh-grupo):
    CASE wh-grupo:NAME:
    WHEN pcCampo THEN DO:
    RETURN wh-grupo.
    END.
    END.
    IF wh-grupo:TYPE = "field-group" THEN
    wh-grupo = wh-grupo:FIRST-CHILD.
    ELSE
    wh-grupo = wh-grupo:NEXT-SIBLING.

    END.
    END FUNCTION.

    IF p-ind-event = "INITIALIZE" THEN DO:
    ASSIGN wh-window = p-wgh-frame:pARENT. /* Busca o handle da window */

    IF VALID-HANDLE(wh-window) THEN DO: /** Busca Handle da Frame **/

    IF wh-window:TYPE = "FIELD-GROUP" OR wh-window:TYPE = "FRAME" OR wh-window:TYPE = "WINDOW"
    THEN ASSIGN wh-frame = wh-window:FIRST-CHILD.
    ELSE ASSIGN wh-frame = wh-window.

    IF VALID-HANDLE(wh-frame)THEN DO:

    IF wh-frame:TYPE = "FRAME" AND wh-frame:NAME = "fPage0" THEN
    ASSIGN wh-frame0 = wh-frame.
    END.
    END.

    ASSIGN wh-frame1 = buscarHandleCampo("fPage1":U, wh-frame0)
    wh-frame3 = buscarHandleCampo("fPage3":U, wh-frame0)
    wh-botao-efetiva = buscarHandleCampo("bt-executar":U, wh-frame1)
    wh-botao-original = buscarHandleCampo("bt-executar":U, wh-frame1)
    wh-botao-invisivel = buscarHandleCampo("bt-executar":U, wh-frame1).

    /* Criando Botao */

    Create button bt-original
    Assign Row = wh-botao-original:ROW
    Column = wh-botao-original:COLUMN
    Height = wh-botao-original:HEIGHT
    Width = wh-botao-original:WIDTH
    Label = "Erro"
    Frame = wh-botao-original:Frame
    Visible = Yes
    Sensitive = Yes

    TRIGGERS:
    ON 'CHOOSE' PERSISTENT RUN RodarOriginal.
    END TRIGGERS.
    .
    .
    .
    .
    .
  2. rafael.andrade

    rafael.andrade Membro Master Moderador Equipe de Suporte

    tenta ON 'CHOOSE' RUN RodarOriginal.
    ao invés de ON 'CHOOSE' PERSISTENT RUN RodarOriginal.
  3. andreluisbrandao

    andreluisbrandao Membro Participativo

    TRIGGERS:
    ON 'CHOOSE' RUN RodarOriginal.
    END TRIGGERS.

    Nao acontece nada, não aparece a mensagem colocada na procedure.
  4. rafael.andrade

    rafael.andrade Membro Master Moderador Equipe de Suporte

    Segundo a documentação o certo é assim:

    DEF VAR btnMeuBotao AS HANDLE.

    CREATE BUTTON btnMeuBotao
    ASSIGN ROW = 3
    COLUMN = 5
    LABEL = "Meu Botão"
    FRAME = FRAME F0:HANDLE
    SENSITIVE = TRUE
    VISIBLE = TRUE
    TRIGGERS:
    ON CHOOSE DO:
    RUN MinhaProcedure.
    END.
    END TRIGGERS.

    upload_2015-11-20_15-34-3.png
  5. bootstrapmaster

    bootstrapmaster Moderator Moderador Equipe de Suporte

    persistent run programa.p(handledo Botão, outrosdados, outrosdados). não é procedure.
  6. emr

    emr Membro Participativo

    Acho que com um exemplo fica mais fácil:

    create button bt-botao
    assign row = h-objeto[3]:row
    column = h-objeto[3]:column
    frame = p-wgh-frame
    sensitive = h-objeto[3]:sensitive
    visible = yes
    height-chars = h-objeto[3]:height-chars
    width-chars = h-objeto[3]:width-chars
    label = h-objeto[3]:label
    triggers:
    on choose persistent run upc/upxxxxx.p(p-wgh-frame,h-objeto[3]).
    end triggers.

Compartilhe esta Página