Dica Controle de campos entre diferentes viewers

Discussão em 'Progress 4GL' iniciado por genizis, Janeiro 15, 2014.

  1. genizis

    genizis Sem Pontuação

    Bom dia pessoal,

    Estou com um problema, vou tentar relatar abaixo:
    Em uma tela tenho 2 viewers (uma na page 0, e outra na page 1), na viewer1 tenho um Radio-Box, no evento VALUE-CHANGED desta Radio ele deveria alterar o parâmetro SENSITIVE de um campo na viewer2.

    Inicialmente tentei declarando o Handle da viewer2 na viewer1, e criando uma procedure na viewer2 (pi-desabilita-campo) recebendo com INPUT essa escolha da viewer1. (essa procedure é chamada no evento VALUE-CHANGED)

    Coloquei alguns MESSAGE com o SENSITIVE do campo para ter certeza que entraria na procedure da viewer2 e iria alterar este parâmetro.

    No MESSAGE ele retorna com o valor do SENSITIVE do campo conforme minha escolha (YES e NO) a cada opção selecionada, porém, em tela não faz nada.
    Me parece que falta uma atualização dos objetos da viewer2.

    Alguém já passou por isso ou ou sabe algum comando que posso utilizar para atualizar a viewer2?
  2. Mokwa

    Mokwa Membro Participativo

    Não entendi essa parte "em tela não faz nada", teria como explicar melhor?

    Oque eu entendi por enquanto é que você conseguiu fazer a comunicação entre as duas viewers passando por parâmetro o valor dessa radio-box.
  3. genizis

    genizis Sem Pontuação

    Isso, ele passa o valor dessa RADIO-BOX para a procedure da viewer2, nesta procedure tem um laço de condição, se entrar ele altera o SENSITIVE deste campo para NO na viewer2.

    no MESSAGE que coloquei neste laço de condição retorna que o parâmetro SENSITIVE foi alterado NO.

    Mas o campo da viewer2 não desabilita, ainda continua habilitado.
  4. Mokwa

    Mokwa Membro Participativo

    Hmmm, ele alterou a opção de SENSITIVE para NO, porem não desabilitou na tela. Estranho isso.

    Não tenho ideia oque possa estar acontecendo, mas tenta colocar o seguinte código na hora que ele deveria estar trabalhando com a Interface.

    Código:
    DO WITH FRAME{&FRAME-NAME}:
       ASSIGN objeto:SENSITIVE = NO.
    END.
    Outra solução seria trabalhar com o DISABLE.

    ---

    Qual é o tipo desse objeto que você esta tentando desabilitar (Fill-In, Editor, etc) ?
    Se não teria como me passar esse código onde você utiliza o sensitive?
  5. lwazevedo

    lwazevedo Membro Ativo

    tentar colocar input antes no nome do objeto.
    tipo assing input nomedocampo:sensitive.
  6. genizis

    genizis Sem Pontuação

    Olá pessoal,

    Consegui fazer funcionar.

    Ao invés de jogar direto de uma viewer para outra, joguei da viewer1 para a tela principal e a tela principal enviou para a viewer, assim funcionou certinho.

    Obrigado pela ajuda!

Compartilhe esta Página