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

Display de Browse personalizado

Discussão em 'Progress 4GL' iniciado por Gustavo R. Hruschka, Maio 21, 2019.

  1. Gustavo R. Hruschka

    Gustavo R. Hruschka Sem Pontuação

    Boa tarde amigos!

    Tenho um programa que possui um Browser e na trigger DISPLAY, gostaria que fosse mostrado os campos personalizados conforme o usuário que acessa o programa.

    Por exemplo:

    Quando o usuário "João" abrir o programa, o browse mostra os campos "UF", "Cidade" e "Bairro".
    Quando o usuário "Carlos" abrir o programa, mostra os campos "Código Cliente", "Nome Cliente" e "Cidade".

    Obviamente, na open-query da temp-table possui todos os campos acima citados.

    Se alguém puder me dar uma luz, agradeço.
    Obrigado.
  2. bootstrapmaster

    bootstrapmaster Moderator Moderador Equipe de Suporte

    as colunas são numerados de 1 até a quantidade de colunas que vc tem no browse, então, basta vc saber qual numero de coluna que deve mostrar pra cada usuario, e dai só ir setando yes ou no pro atributo visible do browse.
    Código:
                    assign br_grupos:get-browse-column(contador)    :visible = yes
                           br_grupos:get-browse-column(contador + 1):visible = yes
                           br_grupos:get-browse-column(contador + 2):visible = yes.
    
  3. bootstrapmaster

    bootstrapmaster Moderator Moderador Equipe de Suporte

    faz isso antes do open-query
  4. Gustavo R. Hruschka

    Gustavo R. Hruschka Sem Pontuação

    Perfeito Richard, muito obrigado por compartilhar o seu conhecimento.
    Vou tratar desta forma, muito agradecido!

    Forte abraço.
  5. Gustavo R. Hruschka

    Gustavo R. Hruschka Sem Pontuação

    Bom dia Richard,

    Eu já consegui mostrar/ocultar conforme sua orientação, ficou muito bom!
    Obrigado!

    Agora... se eu quiser alterar a ordem dos campos de acordo com o usuário.
    É possível?
  6. bootstrapmaster

    bootstrapmaster Moderator Moderador Equipe de Suporte

    Código:
        repeat contador = 1 to br_resumo:num-column in frame fr_cenario:
            for each ttChave no-lock
                where ttChave.mostrar:
                case ttChave.campo:
                    when 'ANO'           then if br_resumo:get-browse-column(contador):name in frame fr_cenario = 'ano'             then br_resumo:move-column(contador, ttChave.sequencia) in frame fr_cenario.
                    when 'MES'           then if br_resumo:get-browse-column(contador):name in frame fr_cenario = 'mes'             then br_resumo:move-column(contador, ttChave.sequencia) in frame fr_cenario.
                    when 'DIA'           then if br_resumo:get-browse-column(contador):name in frame fr_cenario = 'dia'             then br_resumo:move-column(contador, ttChave.sequencia) in frame fr_cenario.
                    when 'VENDEDOR'      then if br_resumo:get-browse-column(contador):name in frame fr_cenario = 'cod_usuario'     then br_resumo:move-column(contador, ttChave.sequencia) in frame fr_cenario.
                    when 'REPRESENTANTE' then if br_resumo:get-browse-column(contador):name in frame fr_cenario = 'cod_repres'      then br_resumo:move-column(contador, ttChave.sequencia) in frame fr_cenario.
                    when 'CANAL VENDA'   then if br_resumo:get-browse-column(contador):name in frame fr_cenario = 'cod_canal_venda' then br_resumo:move-column(contador, ttChave.sequencia) in frame fr_cenario.
                    when 'CLIENTE'       then if br_resumo:get-browse-column(contador):name in frame fr_cenario = 'cod_cliente'     then br_resumo:move-column(contador, ttChave.sequencia) in frame fr_cenario.
                    when 'PEDIDO'        then if br_resumo:get-browse-column(contador):name in frame fr_cenario = 'num_orcamento'   then br_resumo:move-column(contador, ttChave.sequencia) in frame fr_cenario.
                end case.
            end.
        end.
    

Compartilhe esta Página