[RESOLVIDO] UPC em programa com botões

Discussão em 'EMS , HCM e Totvs 11' iniciado por erickles, Novembro 16, 2009.

Status do Tópico:
Não esta aberto para novas mensagens.
  1. erickles

    erickles Membro Participativo

    Buenas pessoal,

    Preciso de um help aqui, estou fazendo uma upc onde tenho q detectar a ação de um botao, porem, o botão não emite evento nenhum, ficando assim impossivel realizar transações no metodo tradicional de upc´s. Como eu poderia detectar se tal botão foi pressionado num programa fechado da Datasul atraves de uma UPC ?
  2. fdantas

    fdantas Administrator Moderador

    A unica maneira que imagino seria desenvolver um botão falso e colocar sobre o botão em questão.

    Copiando as propriedades dele como imagem etc...
    Assim você pega o evento que precisa e logo depois da um apply no botão verdadeiro.

    Abraço
  3. Cobra.cne

    Cobra.cne Equipe de Suporte Moderador

    A solução sugerida é a unica que conheço e a que utilizo.

    Faço assim, quando acho o botão para substituir:
    Código:
    DEF NEW GLOBAL SHARED VAR wh-btok       AS WIDGET-HANDLE    NO-UNDO.
    DEF NEW GLOBAL SHARED VAR wh-newbtok    AS WIDGET-HANDLE    NO-UNDO.
    
    ...
    
                        ASSIGN wh-btok  = wh-objeto.
                        CREATE BUTTON wh-newbtok
                        ASSIGN ROW       = wh-btok:ROW
                               COLUMN    = wh-btok:COLUMN
                               WIDTH     = wh-btok:WIDTH
                               HEIGHT    = wh-btok:HEIGHT
                               FRAME     = p-wgh-frame
                               SENSITIVE = yes
                               VISIBLE   = yes
                               LABEL     = wh-btok:LABEL
                               TOOLTIP   = wh-btok:TOOLTIP
                               HELP      = wh-btok:HELP
                               TAB-STOP  = YES.
                        ON CHOOSE OF wh-newbtok PERSISTENT RUN upc/upc_choose.p.
    
                        wh-newbtok:MOVE-AFTER-TAB-ITEM(wh-btok).
                        ASSIGN wh-btok:TAB-STOP = FALSE
                               wh-btok:VISIBLE = FALSE.
    
    o outro
    Código:
    /*upc_choose.p*/
    DEF NEW GLOBAL SHARED VAR wh-btok       AS WIDGET-HANDLE    NO-UNDO.
    
    /*Verificação antes do evento padrão do botão executar*/
    ...
    
    /*Execução do Botão Executar Padrão*/
    APPLY "CHOOSE" TO wh-btok.
    
    
    T+
  4. erickles

    erickles Membro Participativo

    Bem legal, acho q vou fazer isso...mas ae tem outro problema.

    Como podem ver na tela em anexo, os dados que preciso alterar são do browse principal da tela, porem, como eu poderia captar os campos chaves do browse para poder alterar os dados ?

    Obrogado pela ajuda!

    Arquivos Anexados:

    • tela.jpg
      tela.jpg
      Tamanho:
      72.3 KB
      Visitas:
      324
  5. Cobra.cne

    Cobra.cne Equipe de Suporte Moderador

    Depois que você conseguir identificar o HANDLE do browser, utilize o comando abaixo para pegar os valores das colunas:
    Código:
    DEF NEW GLOBAL SHARED VAR wh-browser AS WIDGET-HANDLE                    NO-UNDO.
    DEF NEW GLOBAL SHARED VAR wh-sequencia  AS WIDGET-HANDLE                    NO-UNDO. 
    DEF NEW GLOBAL SHARED VAR wh-it-codigo  AS WIDGET-HANDLE                    NO-UNDO. 
    
    ...
            wh-sequencia  = wh-browser:GET-BROWSE-COLUMN(1).
            wh-it-codigo  = wh-browser:GET-BROWSE-COLUMN(2).
            message wh-sequencia:SCREEN-VALUE skip
                          wh-it-codigo:SCREEN-VALUE skip
                          view-as alert-box.
    ...
    
    Espero que seja isto.
    Observação: Não crie um novo tópico referenciando um antigo.

    []'s
  6. erickles

    erickles Membro Participativo

    Beleza, consegui gravar o campo. Mas agora, preciso que a informação apareça na tela na medida que clico no browse principal da tela, como eu poderia fazer isso?

    **Desculpe por ter criado outro tópico, é que ele já estava ficando velho e dificilmente alguem iria lê-lo.
Status do Tópico:
Não esta aberto para novas mensagens.

Compartilhe esta Página