1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

  2. Anuncie Aqui ! Entre em contato fdantas@4each.com.br

[AJUDA] Na smartviewer como fazer p/ executar um OPEN-QUERY na smartquery

Discussão em 'Progress 4GL' iniciado por marcosoliv, Janeiro 16, 2015.

  1. marcosoliv

    marcosoliv Membro Participativo

    Pessoal, boa tarde,

    Como poderia colocar na smartviewer um procedimento para executar um OPEN-QUERY na smartquery ?

    Marcos
  2. bootstrapmaster

    bootstrapmaster Moderator Moderador Equipe de Suporte

    vc tem que criar um smartlink onde origem é o a smartviewer e destino é a smartQuery, pode um link de State, agora tem 2 jeitos:
    1) vc tem que fazer o container passar para a smartviewer o handle da smartQuery, nesse caso até que não precisaria vc criar o smartlink;
    2) Esse é o que eu mais uso, na smartQuery, vc tem uma procedure chamada state-changed
    Código:
    /* -----------------------------------------------------------
      Purpose:    
      Parameters:  <none>
      Notes:      
    -------------------------------------------------------------*/
      DEFINE INPUT PARAMETER p-issuer-hdl AS HANDLE NO-UNDO.
      DEFINE INPUT PARAMETER p-state AS CHARACTER NO-UNDO.
    
      CASE p-state:
          /* Object instance CASEs can go here to replace standard behavior
             or add new cases. */
          {src/adm/template/qstates.i}
      END CASE.
      run pi-trata-state (p-issuer-hdl, p-state).
    END PROCEDURE.
    
    aqui vc faz um codigo tipo, if p-state = 'Atualizar' then run (a procedure que atualiza a query)

    agora na sua smartViewer basta vc fazer um run new-state('Atualizar').

    quando vc faz um run new-state() todos smarts objects que tem um link de state com a sua viewer (viewer de origem) vão receber na procedure state-changed o que vc passar como parametro, eu costumo enviar strings divididas com | dai posso passar varios dados.
  3. bootstrapmaster

    bootstrapmaster Moderator Moderador Equipe de Suporte

    Achei aqui, vc faz run adm-open-query dentro da procedure state-changed da smartQuery, se não funcionar tenta run dispath in this-procedure('adm-open-query').
  4. marcosoliv

    marcosoliv Membro Participativo

    bootstrapmaster, funcionou perfeitamente.
    Muito Obrigado pela dica.

Compartilhe esta Página