Replicar Editor

Discussão em 'Progress 4GL' iniciado por DFResmer, Dezembro 18, 2012.

  1. DFResmer

    DFResmer Membro Participativo

    Olá Galera,
    Estou desenvolvendo uma agenda, e gostaria de mostrar cada compromisso agendado em um editor, esta agenda é semanal, mas dependento de quantos agendamento eu tenha, vou precisar de vários Editor para mostrar na tela.
    Tem como eu gerar o editor no momento que leio a tabela:
    Exemplo:
    Código:
    FOR EACH MAGENDA WHERE MAGENDA.dtaemi >= INPUT FRAME fr-001 fi-dtaini AND
                           MAGENDA.dtaemi <= INPUT FRAME fr-001fi-dtafin NO-LOCK.
       /* CRIAR EDITOR COM CAMPO MAGENDA.texto*/
    END.
    
    
    Att,

    Diogo
  2. LeandroSantos

    LeandroSantos Membro Participativo

    Você pode fazer assim:
    Código:
    def var h-Editor  as handle extent 20.
    def var iCont     as int.
    def var iLinha    as dec.
    
    do iCont = 1 to extent(h-Editor).    
       if valid-handle(h-Editor[iCont]) then
          delete object h-Editor[iCont].
    end.
    
    assign
       iCont    = 1
       iLinha   = 1.
    
    FOR EACH MAGENDA WHERE MAGENDA.dtaemi >= INPUT FRAME fr-001 fi-dtaini AND
                           MAGENDA.dtaemi <= INPUT FRAME fr-001 fi-dtafin NO-LOCK.
       create editor h-editor[iCont] assign
          frame          = frame fr-002:handle
          screen-value   = MAGENDA.texto
          col            = 1
          row            = iLinha
          width          = 60
          height         = 5
          sensitive      = yes
          visible        = yes.
       
       assign
          iLinha   = iLinha + h-Editor[iCont]:height
          iCont    = iCont  + 1.
       
    END.
    
    Abs.
  3. DFResmer

    DFResmer Membro Participativo

    Perfeito!
    Só está dando 2 erros quando carrega na tela

    ** Array subscript 0 is out of range.(26)

    ** Unable to update Field.(142)

    ele dá 2 erros desses para cada editor que abre na tela, mas ele abre..
    tentei colocar um no-error no final mas ele não aceitou, acho que coloquei no local errado.

    Att,

    Diogo
  4. DFResmer

    DFResmer Membro Participativo

    Consegui descobri qual erro estava dando e esta opção vem funcionando muito bem, mas agora me apareceu mais um problema, quando o usuário clicar no Editor, preciso identificar o texto que exite dentro dele para abrir a agenda... como posso fazer isso?

    Att,


    Diogo
  5. LeandroSantos

    LeandroSantos Membro Participativo

    Coloca uma trigger no create.
    Código:
       create editor h-editor[iCont] assign
          frame          = frame fr-002:handle
          screen-value   = MAGENDA.texto
          col            = 1
          row            = iLinha
          width          = 60
          height         = 5
          sensitive      = yes
          visible        = yes
          triggers:
             on entry do:
                message
                   self:screen-value
                   view-as alert-box.
             end.
          end.
    
    
  6. DFResmer

    DFResmer Membro Participativo

    Fiz desta forma, mas não deu efeito algum, tbem não deu erro.


    Código:
                     create editor h-editor[iCont] assign
                        frame          = frame fr-001:handle
                        screen-value   = STRING(i-editor, 'X(120)')
                        col            = x-coluna
                        row            = x-linha
                        width          = 35
                        height         = x-altura
                        sensitive      = yes
                        visible        = yes
                        movable        = yes
                        bgcolor        = i-cor
                           triggers:
                             on mouse-select-click do:
                               message
                               self:screen-value
                               view-as alert-box.
                             end.
                           end.
    

Compartilhe esta Página