1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.
  2. Anuncie Aqui
    Anuncie aqui você Também: fdantas@4each.com.br

Duvida Pegar evento de clique botão

Discussão em 'Outros/Diversos' iniciado por tfofano, Dezembro 5, 2024.

  1. tfofano

    tfofano Sem Pontuação

    Estou fazendo uma upc para a tela mi0504, mas não consigo pegar o evento de clique de um botão da tela, essa é a primeira vez que crio uma upc, segue código:

    def input param p-ind-event as char no-undo.
    def input param p-ind-object as char no-undo.
    def input param p-wgh-object as handle no-undo.
    def input param p-wgh-frame as widget-handle no-undo.
    def input param p-cod-table as char no-undo.
    def input param p-row-table as rowid no-undo.

    /*-----------------------------------------------------------------------*/
    /* DEFINICAO DE VARIAVEIS */
    /*-----------------------------------------------------------------------*/

    DEF VAR c-objeto AS CHAR NO-UNDO.
    DEF VAR wgh-flag-excel AS WIDGET-HANDLE NO-UNDO.
    DEF VAR wgh-destino AS WIDGET-HANDLE NO-UNDO.
    DEF VAR wgh-bt-executar AS WIDGET-HANDLE NO-UNDO.

    /*Função de busca de objetos dentro da tela*/
    FUNCTION SearchObject RETURN WIDGET-HANDLE
    (INPUT pHandle AS HANDLE,
    INPUT pName AS CHARACTER):

    DEFINE VARIABLE pReturnHandle AS HANDLE.
    pReturnHandle = ?.

    IF NOT CAN-QUERY (pHandle, "first-child") THEN RETURN pReturnHandle.
    pHandle = pHandle:FIRST-CHILD.

    REPEAT:
    IF NOT VALID-HANDLE (pHandle) THEN LEAVE.
    IF pName = pHandle:NAME THEN RETURN pHandle.
    pReturnHandle = SearchObject (pHandle, pName).
    IF pReturnHandle <> ? THEN RETURN pReturnHandle.
    pHandle = pHandle:NEXT-SIBLING.
    END.
    RETURN pReturnHandle.

    END.

    ASSIGN c-objeto = ENTRY(NUM-ENTRIES(p-wgh-object:pRIVATE-DATA, "~/"), p-wgh-object:pRIVATE-DATA, "~/").

    MESSAGE "EVENTO" p-ind-event SKIP
    "OBJETO" p-ind-object SKIP
    "NOME OBJ" c-objeto SKIP
    "FRAME" p-wgh-frame SKIP
    "TABELA" p-cod-table SKIP
    "ROWID" STRING(p-row-table) VIEW-AS ALERT-BOX.

    // Inclusão de um campo simples dentro da tela
    IF p-ind-event = 'CHANGE-PAGE' AND
    p-ind-object = 'CONTAINER' AND
    c-objeto = ? THEN DO:

    // Usando função para buscar um objeto existente na tela
    ASSIGN wgh-destino = SearchObject(INPUT p-wgh-frame, 'rs-destino').

    IF VALID-HANDLE(wgh-destino) THEN DO:

    // Cria widget
    CREATE TOGGLE-BOX wgh-flag-excel.

    // Atribui informações ao widget criado
    ASSIGN wgh-flag-excel:FRAME = wgh-destino:FRAME
    wgh-flag-excel:WIDTH = 50
    wgh-flag-excel:HEIGHT = 0.88
    wgh-flag-excel:ROW = 3.70
    wgh-flag-excel:COL = wgh-destino:COL
    wgh-flag-excel:NAME = 'wgh-flag-excel'
    wgh-flag-excel:HELP = 'Gerar arquivo em Excel?'
    wgh-flag-excel:VISIBLE = YES
    wgh-flag-excel:SENSITIVE = YES
    wgh-flag-excel:CHECKED = YES
    wgh-flag-excel:LABEL = 'Gera Excel?'.
    END.

    END.

    IF p-ind-event = 'INITIALIZE' AND
    p-ind-object = 'CONTAINER' AND
    c-objeto = 'mi0504.w' THEN DO:

    // Usando função para buscar um objeto existente na tela
    ASSIGN wgh-bt-executar = SearchObject(INPUT p-wgh-frame, 'bt-executar').

    IF VALID-HANDLE(wgh-bt-executar) THEN DO:

    ON 'CHOOSE' OF wgh-bt-executar DO:
    RUN upc\mip\upc-mi0504rp.
    END.

    END.

    END.

    return 'ok'.

Compartilhe esta Página