Botão x Container x Viewer

Discussão em 'Progress 4GL' iniciado por rohis, Fevereiro 2, 2011.

  1. rohis

    rohis Membro Ativo

    Olá pessoal!
    Criei um programa com a template Pai x Filho Atualiza Ambos e na barra superior de menus, antes do h_p-exihel (consultas relacionadas, impressão, sair, ajuda) e depois criei um botão na SmartWindow.

    Agora preciso localizar o campo chave da tabela demonstrada na Viewer principal e passar para o botão novo, porém não estou conseguindo. Em nenhum momento a SmartWindow principal encontra a tabela que está na viewer e que inclusive está definida no Procedure Settings como tabela externa para fazer os links devidamente.

    Alguém pode me ajudar?
    Tentei rowid e recid mas não consegui.
    Será que tenho que customizar uma SmartPanel, colocar o botão novo e fazer um link com a viewer? Nunca fiz isso... apenas idéias.

    Obrigada.
  2. CarlosNobrega

    CarlosNobrega Membro Participativo

    O evento click do seu botão deve rodar um metodo na SmartQuery, nao lembro o nome do metodo agora.

    run <pi-get-rowid> in <h_query> (output current).

    este metodo retorna o rowid corrente da query, ou seja, o qu eesta sendo mostrado em tela.

    localiza o nome correto do metodo exibindo os metodos da query...(Insert Smart Call...)

    um abraço.
  3. rohis

    rohis Membro Ativo

    Olá! Obrigada pela ajuda. Deu certo (no caso da trigger de choose do botão consegui retornar o registro da viewer)

    Agora eu tenho outra dúvida agora e talvez você possa me ajudar:

    Preciso encotrar o registro que está sendo navegado na viwer e atualizar o botão que está na window principal com a propriedade de sensitive.
    Porém quando navego não funciona.

    Obrigada!
  4. CarlosNobrega

    CarlosNobrega Membro Participativo

    De alguma forma vc devera ter o handle da window (container) elna viewer...se nao me engano tem funções para retornar isso...tipo a do exemplo da query...

    Feito isso, crie uma procedure na window que recebe o parâmetro para habilitar/desabilitar o botão...

    E na viesse rode esta procedure, exemplo:

    Run pi-botao in h-container (input yes).


    Se quiser desabilitar algum botão da template then existem métodos para isso...porem no handle p-cadsim.
  5. rohis

    rohis Membro Ativo

    Carlos, agradeço muito a ajuda, mas acabei de conseguir de outra maneira:
    1) Criei um link de Navigation tendo como source This-Procedure e como Target a Query
    2) Depois na procedure State-Chaged da Window procurei pelos atributos referente a navegação e depois posicionei no registro da Query assim como tinha feito com a trigger de choose (conforme a minha primeira dúvida).

    IF p-state = "first-record":U OR
    p-state = "not-first-or-last":U OR
    p-state = "last-record":U THEN DO:

    run pi-posicao-query <h_query>(output v-rowid).
    END.

    Resta saber se irá afetar na performance do programa.

    As técnicas que estou desenvolvendo neste programa são novidade para mim. Uma mistura de Template DDK e com controles de telas muito específicos. Coisa que nunca fiz antes, mas estou aprendendo bastante.
    Acredito que novas dúvidas surgirão.

    Abraços!

Compartilhe esta Página