UPC -

Discussão em 'Progress 4GL' iniciado por maicon, Julho 15, 2013.

  1. maicon

    maicon Membro Participativo

    Boa Tarde
    Fiz uma UPC para o programa EQ0506 para o Botão Alocação.
    A UPC é só para verificar uma informação e retornar a mensagem. após a mensagem o Botão Alocação deverá fazer a sua função normalmente.
    Mas, assim que o sistema mostra a mensagem ele não faz a função dele, ou seja, clicando no botão Aloca Item Selecionado, ele mostra a mensagem da UPC, mas ele não continua, ou seja, não aloca os pedidos.
    como fazer o sistema executar a upc e depois continuar normalmente?

    programa UPC-eq0506b.p:

    IF VALID-HANDLE(wh-bt-aloca) THEN DO: /*Maicon*/
    ON 'choose':U OF wh-bt-aloca PERSISTENT RUN upc/upc-eq0506b3.p (input p-wgh-frame,
    INPUT r-embarque ).
    END.



    /*programa upc-eq0506b3: */

    define input parameter p-wgh-frame as handle no-undo.
    define input parameter p-r-embarque AS ROWID no-undo.

    DEF BUFFER b-embarque FOR embarque. /*Cria uma tabela cópia do emitente com o nome de b-teste*/
    DEF BUFFER b-pre-fatur FOR it-pre-fat. /*Cria uma tabela cópia do emitente com o nome de b-teste*/

    if valid-handle( p-wgh-frame ) then do:
    FIND FIRST b-embarque NO-LOCK
    WHERE ROWID(b-embarque) = p-r-embarque NO-ERROR.

    FIND FIRST b-pre-fatur WHERE b-pre-fatur.nr-embarque = b-embarque.nr-embarque NO-ERROR.
    IF AVAIL b-pre-fatur THEN DO:

    MESSAGE b-pre-fatur.nr-pedcli
    VIEW-AS ALERT-BOX INFO BUTTONS OK.

    END.

    END.
  2. LFBuozi

    LFBuozi Membro Participativo

    Aí está um problema, você substituiu o evento "choose" do botão, assim ele não executa o programa antigo e chama sua UPC.
    Neste caso você terá que criar um novo botão que vai ficar no lugar deste que você quer alterar e colocar um "visible = no" para o botão padrão.
    Então no "choose" deste botão novo você coloca a sua mensagem e depois faz um "apply 'choose' to wh-botao-antigo", assim você executa o que precisa e faz um clique no padrão.
    Veja se consegue, enquanto isso vou fazer um exemplo limpo aqui para você, porque as UPCs que uso isto estão meio complicadas.
  3. LFBuozi

    LFBuozi Membro Participativo

    Aqui tem um exemplo de uma UPC para a tela CD0204 onde substitui o botão de cópia de item:
    Código:
    define input parameter p-ind-event  as character.
    define input parameter p-ind-object as character.
    define input parameter p-wgh-object as handle.
    define input parameter p-wgh-frame  as widget-handle.
    define input parameter p-cod-table  as character.
    define input parameter p-row-table  as rowid.
     
    DEF NEW GLOBAL SHARED VAR wh-objeto              AS WIDGET-HANDLE    NO-UNDO.
    DEF NEW GLOBAL SHARED VAR wh-objeto-aux          AS WIDGET-HANDLE    NO-UNDO.
    
    DEF NEW GLOBAL SHARED VAR wh-bt-padrao AS WIDGET-HANDLE    NO-UNDO. 
    DEF NEW GLOBAL SHARED VAR wh-bt-custom AS WIDGET-HANDLE    NO-UNDO. 
    
    ASSIGN wh-objeto =  p-wgh-frame:FIRST-CHILD.
    DO WHILE VALID-HANDLE(wh-objeto):
    
        IF wh-objeto:TYPE = "frame" THEN DO:
            IF NOT VALID-HANDLE( wh-bt-padrao ) THEN DO:
                IF wh-objeto:NAME = "panel-frame" THEN DO:
                    ASSIGN wh-objeto-aux =  wh-objeto:FIRST-CHILD.
                    DO WHILE VALID-HANDLE(wh-objeto-aux):
                        IF wh-objeto-aux:NAME = "bt-cop" THEN DO:
                            ASSIGN wh-bt-padrao = wh-objeto-aux.
                            CREATE BUTTON wh-bt-custom
                            ASSIGN FRAME     = wh-bt-padrao:FRAME
                                   ROW       = wh-bt-padrao:ROW
                                   COLUMN    = wh-bt-padrao:column
                                   Height    = wh-bt-padrao:Height
                                   WIDTH     = wh-bt-padrao:WIDTH
                                   /*LABEL     = "Copia"*/
                                   FLAT-BUTTON = YES
                                   TOOLTIP   = "* Botão customizado"
                                   SENSITIVE = YES
                                   VISIBLE   = TRUE
                            TRIGGERS:
                                 ON 'CHOOSE' PERSISTENT RUN upc/upc-cd0204.p ( INPUT "customizado", INPUT "customizado", INPUT p-wgh-object, INPUT p-wgh-frame , INPUT p-cod-table, INPUT p-row-table ).
                                 ON 'RETURN' PERSISTENT RUN upc/upc-cd0204.p ( INPUT "customizado", INPUT "customizado", INPUT p-wgh-object, INPUT p-wgh-frame , INPUT p-cod-table, INPUT p-row-table ).
                                 ON 'MOUSE-SELECT-CLICK' PERSISTENT RUN upc/upc-cd0204.p ( INPUT "customizado", INPUT "customizado", INPUT p-wgh-object, INPUT p-wgh-frame , INPUT p-cod-table, INPUT p-row-table ).
                                 ON 'CTRL-C' PERSISTENT RUN upc/upc-cd0204.p ( INPUT "customizado", INPUT "customizado", INPUT p-wgh-object, INPUT p-wgh-frame , INPUT p-cod-table, INPUT p-row-table ).
                            END TRIGGERS.
                            wh-bt-padrao:TAB-STOP = YES.
                            wh-bt-custom:LOAD-IMAGE(wh-bt-padrao:IMAGE).
                            wh-bt-custom:LOAD-IMAGE-INSENSITIVE(wh-bt-padrao:IMAGE-INSENSITIVE).
                            wh-bt-custom:MOVE-TO-TOP().
    
                        END.
                        IF wh-objeto-aux:TYPE = 'field-group' THEN
                           ASSIGN wh-objeto-aux = wh-objeto-aux:FIRST-CHILD.
                        ELSE
                           ASSIGN wh-objeto-aux = wh-objeto-aux:NEXT-SIBLING.
                    END.
                END.
            END.
        END.
        IF wh-objeto:TYPE = 'field-group' THEN
           ASSIGN wh-objeto = wh-objeto:FIRST-CHILD.
        ELSE
           ASSIGN wh-objeto = wh-objeto:NEXT-SIBLING.
    END.
    
    
    IF p-ind-event = "customizado" THEN DO:
    
        MESSAGE "Você está no botão customizado, agora ele fará o choose no botão padrão."
            VIEW-AS ALERT-BOX INFO BUTTONS OK.
        APPLY 'CHOOSE':U TO wh-bt-padrao.
    END.
    
    
  4. maicon

    maicon Membro Participativo

    Bom Dia

    Muito Obrigado
  5. maicon

    maicon Membro Participativo

    Eu estou começando agora com UPC.
    Será que vc tem comentado o que cada linha está fazendo na UPC?
  6. renato luzzim bargas

    renato luzzim bargas Sem Pontuação

    bom dia galera,tudo bem?
    sou iniciante em UPC e estou com uma duvida que para muitos é muito simples.

    a UPC que estou criando irá adicionar um togle-box para o simples nacional e um fil-in para limite de crédito.
    Pois bem o togle-box é um campo lógico
    e o assign recebe o comando checked ex:

    ASSIGN wgh-tg-simples-nac:CHECKED = FALSE

    no caso do fil-in por ele não ser um campo lógico qual comando devo usar para substituir o CHECKED.
    OBRIGADO

Compartilhe esta Página