1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

  2. Anuncie Aqui ! Entre em contato fdantas@4each.com.br

Passagem de paramentro p-row-table em UPC sempre mesmo registro

Discussão em 'Progress 4GL' iniciado por Bruno Nicola, Junho 14, 2017.

  1. Bruno Nicola

    Bruno Nicola Membro Participativo

    Criei uma UPC para criar um botão na tela dos itens do Pedido ( PD4000) e quando clicar neste botão abrir uma tela para realizar as alterações num cadastro complementar, passo o rowid da tabela ped-item pelo p-row-table, porém ele não atualiza o p-row-table ao selecionar outro item e clicar no botão criado, sempre traz o item selecionado na primeira vez, segue abaixo a parte do código onde crio o campo e envio a p-row-table para o programa especifico.

    IF p-ind-event = "AFTERDISPLAYITEM" AND p-ind-object = "CONTAINER" THEN DO:

    CREATE BUTTON hBtImplantcaracteristicaItem ASSIGN
    FRAME = p-wgh-frame
    NAME = "upc-hBtImplantcaracteristicaItem "
    HEIGHT = 1.08
    WIDTH = 4.00
    ROW = 12.45
    COL = 39
    FGCOLOR = 98
    TAB-STOP = NO
    FLAT-BUTTON = YES
    VISIBLE = YES
    SENSITIVE = YES
    TOOLTIP = "Configurar Caracteristicas Item"
    .
    hBtImplantcaracteristicaItem :LOAD-IMAGE-UP("image/toolbar/im-ajust.bmp") .

    ON 'CHOOSE':U OF hBtImplantcaracteristicaItem PERSISTENT RUN pdp/alpd0021.w (INPUT p-row-table).
  2. bootstrapmaster

    bootstrapmaster Moderator Moderador Equipe de Suporte

    Bom dia Bruno:
    Vc está criando o botão dentro do evento AFTERDISPLAYITEM, isso quer dizer que vc está criando um novo botão a cada display do item, ou seja, se tiver 10 itens no pedido, criará 10 botões, um sobre o outro no mesmo lugar, e quando vc clica nele, deve estar pegando sempre o botão que está mais no topo da pilha, então o que fazer, ou vc coloca a criação desse botão em um ponto de UPC que executa somente uma vez na carga do programa ou vc testa pra saber se o botão já existe, se não existir, vc cria.

    Eu já percebi que fazer desse jeito ai, as upcs dão um enrosquinho, é como se ao criar o botão, ao inves de manter a variavel p-row-table, ele deixa um conteudo estatico, então seria melhor vc pegar o handle dos campos em tela que são a chave do item do pedido e passar para o programa .....
    on 'choose' of hBtImplantcaracteristicaItem persistent run pdp/alpd0021.w(input campo1Handle, input campo2Handle).

    porque no seu programa destino, vc usa campo1Handle:input-value para ler a tabela e fazer o que vc precisa, dai é certeza de que a coisa acontece.
  3. Bruno Nicola

    Bruno Nicola Membro Participativo

    Valeu, fiz o que você falou e deu certo, peguei o handle dos campos chave e estou enviando somente eles pro meu especifico.


Compartilhe esta Página