Urgente Chamar consulta

Discussão em 'Progress 4GL' iniciado por eder.luca2012, Março 26, 2015.

  1. eder.luca2012

    eder.luca2012 Membro Participativo

    Pessoal estou finalizando um programa e gostaria de tirar duas dúvidas:
    1º - Como faço no appbuilder para que quando pressionado a tecla F5 no campo código essa tecla chame uma nova tela?
    2º - Nessa nova tela como eu faço para capturar o resultado da consulta e retornar o mesmo para o formulário anterior?

    Exemplo:

    Suponhamos que eu tenha uma formulario de venda com um campo chamado código, ao pressionar f5 sobre o código o programa tem que abrir uma nova janela, nessa nova janela eu tenho um campo chamado nome onde eu vou digitar o nome do meu cliente e na grid abaixo eu vou listar o código vinculado a esse cliente, ao clicar duas vezes como eu faço para retornar o código listado?
  2. tecnologia-fitedi

    tecnologia-fitedi Sem Pontuação

    Para abrir uma nova janela basta você chamar run(caminho do programa) numa trigger do campo código. (apertando botão não sei te falar com certeza, mas provavelmente dá pra criar uma trigger como ON-PRESS of "F5"...)
    Para retornar o valor para a janela original, o jeito mais fácil é declarar uma variável global nas 2 telas e atribuir o valor do código a ser retornado na segunda tela. Ao fazer isso, a variável global (se declarada com o mesmo nome nas 2 telas, obviamente) vai ter o valor desejado atribuído à si, podendo ser utilizado na janela original.
  3. bootstrapmaster

    bootstrapmaster Moderator Moderador Equipe de Suporte

    Através do AppBuilder, vc seleciona o seu campo e clica no botão Edit Code, no Section Editor, clica em New...., na tela que abre, do lado direito tem um botãozão Keyboard Event... clica nele, depois aperta F5 e clica em OK e OK novamente, pronto, criado o evento F5 para o seu campo.

    Agora vc faz ali o seguinte, esse é um dos jeitos que vc pode fazer .....
    Código:
    DO:
        run seuprograma.
        assign self:screen-value = string(return-value).
    END.
    
    na tela nova, ai não sei, quando vc fizer duplo clique na linha do browse ou se clicar no botão OK, vc faz return NOMEDOCAMPO.

    e pronto, tá feito, mas agora se vc quer usar uma tela de zoom no padrão do datasul, dai tem outros esquemas, tem que usar a include zoomvar.i e tal, dai é coisa do DDKGUI.

    Eu criei umas templates pra mim, então pra mim as vezes é mais facil criar o meu proprio ZOOM do que usar o do datasul, mas isso faz pouco tempo, a anos eu uso os templates do ddkgui pra desenvolver.
  4. eder.luca2012

    eder.luca2012 Membro Participativo

    Consegui fazer da seguinte forma:
    Código:
    ON ANY-KEY OF codigo IN FRAME F0 
    DO:
      if keyfunction(lastkey) = "end-error" or keyfunction(lastkey) = "PF4" or keylabel(lastkey) = "F4" then do:
        run programa.
      end.
    END.
  5. eder.luca2012

    eder.luca2012 Membro Participativo

    bootstrapmaster valeu pela sua dica também eu cheguei até essa tela que vc mencionou mas não me toquei que precisava pressionar uma tecla obrigado pela ajuda.
  6. eder.luca2012

    eder.luca2012 Membro Participativo

    Não entendi muito bem essa parte do retorno do valor vc poderia me ajudar?

Compartilhe esta Página