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

Duvida Programa Zoom com parâmetro

Discussão em 'Progress 4GL' iniciado por lm1979, Fevereiro 23, 2023.

  1. bootstrapmaster

    bootstrapmaster Moderator Moderador Equipe de Suporte

    Mais facil, eventos F5 e MOUSE-SELECT-DBLCLICK do campo que vc quer fazer o zoom, pode pegar o handle dos campos ou devolve a informação via output parameter do run da tela de zoom
  2. rafael.andrade

    rafael.andrade Membro Master Moderador Equipe de Suporte

    Exatamente, basta criar um programa com os parâmetros de INPUT e OUTPUT e rodar passando os parâmetros, exemplo:

    txtCentroCusto
    txtCausa

    1. Cria evento F5 e MOUSE-SELECT-DBLCLICK no campo txtCausa
    2. No evento MOUSE-SELECT-DBLCLICK vc coloca => APPLY "F5" TO SELF.
    3. Isso vai dizer que o evento F5 vale para os 2, então no evento F5 vc coloca:
    Código:
    DO:
        txtCentroCusto = txtCentroCusto:INPUT-VALUE IN FRAME FMeuFrame.
        RUN minhaPasta\meuProgramaZoom.w(INPUT txtCentroCusto,
                                         OUTPUT txtCausa).
    
        DISPLAY txtCausa WITH FRAME FMeuFrame.
    END.
    
    4. Dentro do programa vc preenche o campo to OUTPUT com o valor selecionado na tela ao clicar em OK, e no botão Cancelar deixa retornar em branco

    5. Pronto, basta executar e pressionar F5 ou duplo clique no mouse no campo txtCausa que vai aparecer seu programa.
    Última edição: Fevereiro 23, 2023
  3. lm1979

    lm1979 Membro Participativo

    Show!!! Muito obrigado.
    Eu vou trabalhar esse exemplo.
    Valeu pela ajuda.
    rafael.andrade curtiu isso.
  4. af.dums

    af.dums Membro Ativo

    Olá...
    Não sei se está rtabalhando com templates, mas poderia criar um zoom conforme os padrões e chama-lo com a zoomvar.i que aceita a chamada de uma procedure ao executar para setar valores, ai usa-los como filtro da query do zoom.

    Segue um exemplo que executar o RUN setaVariable IN hProgramZoom (INPUT '7') setando uma variável como '7':

    Código:
    DEFINE NEW GLOBAL SHARED VARIABLE adm-broker-hdl AS HANDLE NO-UNDO.
    
    DEFINE VARIABLE wh-pesquisa AS HANDLE NO-UNDO.
    
    
      {method/ZoomFields.i &ProgramZoom="inzoom/z01in144.w"
    
      &FieldZoom1="gm-codigo"
    
      &FieldScreen1="ttAnalisesFac.gm-maquina"
    
      &Frame1="fPage0"
    
      &FieldZoom2="descricao"
    
      &FieldScreen2="c-desc-grup-maquina"
    
      &Frame2="fPage0"
    
      &RunMethod="RUN setaVariable IN hProgramZoom (INPUT '7')."
    
      &EnableImplant="NO"}
    
    Outro exemplo, com mais paramertos sendo passados:

    Código:
    {method/zoomfields.i &ProgramZoom="mfzoom/z01mf514.w"                                                   
                                         &FieldZoom1="cod-ferr-prod"                                                         
                                         &FieldScreen1="split-operac.cod-ferr-prod"                                                 
                                         &Frame1="f-main"                                                                   
                                         &RunMethod="RUN recebeCtrabOper IN hProgramZoom (INPUT input frame f-main split-operac.cod-ctrab, 
                                                                                          INPUT IF AVAIL oper-ord THEN oper-ord.num-id-operacao ELSE ?,   
                                                                                          INPUT IF AVAIL oper-ord THEN oper-ord.op-altern ELSE ?)."       
                                         &EnableImplant="NO"}                                                               
    
    
    rafael.andrade curtiu isso.
  5. lm1979

    lm1979 Membro Participativo

    Bom dia, eu usei as templates da própria Totvs, a template de "Window Pesquisa" e a "CustomBrowserZoom Wizard".

    Estou fazendo a chamado da seguinte forma.
    Código:
      {include/zoomvar.i &prog-zoom=zezoom/z01maurnc001.w
                         &campo=rnc.codigo-causa
                         &campozoom=codigo-causa}
  6. af.dums

    af.dums Membro Ativo

    Tentou mudar a chamada para a ZoomFields? Ai chamando uma procedure do ZOOM passando os parâmetros que tu quer usar de filtro automático no ZOOM?

    Código:
    {method/zoomfields.i &ProgramZoom="mfzoom/z01mf514.w"
    &FieldZoom1="cod-ferr-prod"
    &FieldScreen1="split-operac.cod-ferr-prod"
    &Frame1="f-main"
    &RunMethod="RUN recebeCtrabOper IN hProgramZoom (INPUT input frame f-main split-operac.cod-ctrab,
    INPUT IF AVAIL oper-ord THEN oper-ord.num-id-operacao ELSE ?,
    INPUT IF AVAIL oper-ord THEN oper-ord.op-altern ELSE ?)."
    &EnableImplant="NO"}
    
    
    

Compartilhe esta Página