Urgente Como posicionar na 1ª linha de uma coluna editável (read-only = yes), em um Browse!

Discussão em 'Progress 4GL' iniciado por thiagocesar01, Abril 3, 2014.

  1. thiagocesar01

    thiagocesar01 Sem Pontuação

    Boa tarde pessoal, sou iniciante no progress, e estou com o seguinte problema:

    Estou criando uma validação numa coluna de um browse freeform query, esse browse tem várias colunas, porém só uma é editável (read-only = yes) e é nessa que preciso fazer a validação!

    Nessa validação o usuário não pode editar a coluna usando o mouse, só pode editar usando a tecla TAB, exceto na primeira linha.

    Por exemplo: Se ele clicar com o mouse, na segunda linha desta coluna, tenho que dar um apply "entry" na primeira linha e dar um message falando que não é permitido alterar o campo usando o mouse, somente é permitido usar a tecla TAB.

    Minha primeira idéia foi criar a trigger de "MOUSE-SELECT-CLICK" pegar o recid da primeira linha e o recid da linha corrente e compará-los, se forem diferentes, faço as validações.

    ex:

    if vr-recid-primeiro-registro <> vr-recid-registro-corrente then do:
    find first tt-servico where
    recid(tt-servico) = vr-recid-primeiro-registro no-lock no-error.
    if avail tt-servico then do:
    {&open-query-br-servico}
    br-servico:SELECT-ROW(1).
    APPLY "ENTRY" to tt-servico.car-conteudo in browse br-servico.
    end.
    end.


    Após fazer isso, no teste, vi que esta validação só funcionou, pra quando eu clicar nas outras colunas do BROWSE. Quando eu clico na coluna com read-only = yes, ele não chama a trigger de "MOUSE-SELECT-CLICK", ele simplesmente continua habilitando o campo para edição, chamando a trigger de ROW-LEAVE.

    Na trigger de ROW-LEAVE não consigo diferenciar o evento de Click com o Mouse, do TAB, teria que forçar ele a chamar a trigger de "MOUSE-SELECT-CLICK", mas não estou conseguindo.

    Peço o auxílio de vocês, qualquer sugestão é valida!
    Última edição: Abril 3, 2014
  2. thiagocesar01

    thiagocesar01 Sem Pontuação

    Problema solucionado!

    Tive que deletar a trigger de "MOUSE-SELECT-CLICK" do browse, e incluir a mesma rotina que coloquei nesta trigger no main-block:

    ON 'mouse-select-click':U, 'F5' OF tt-servico.car-conteudo IN BROWSE br-servico DO:

    executa a rotina

    END.

Compartilhe esta Página