Popular um Browse

Discussão em 'Progress 4GL' iniciado por maicon, Novembro 9, 2012.

  1. maicon

    maicon Membro Participativo

    Boa Tarde

    Por Favor, alguém pode me ajudar na seguinte questão

    Como popular um Browse com um For Each?
    Fiz um For Each cheio de condições, agora quero exibir o resultado dele em um Browse na Tela?
  2. baltazar

    baltazar Membro Participativo

    Mete o foreach no "OpenQuery" do Browse.

    No "display" do browse mete os campos que quer mostrar.
  3. maicon

    maicon Membro Participativo

    Não sei usar
    Por Favor, me da um exemplo

    Grato
  4. LeandroSantos

    LeandroSantos Membro Participativo

    Da uma olhada no help do Progress, procura por "define browse statement" lá tem alguns exemplos.
  5. baltazar

    baltazar Membro Participativo

    Abre um .w no AppBuilder e coloque lá o browse.

    Depois nas propriedades do browse ative o "freeform quety". Fazendo isso aparece-lhe o "Open Query" e os outros.

    É uma questão de experimentar.
  6. ueluis

    ueluis Membro Participativo

    se vc só tem acesso ao progress assim como eu e tem que montar na unha tá ai um exemplo:

    Código:
    /****************************************************************
    *   exemplo de criação de um browser e colorir as linhas        *
    *   por: Ueliton Luis                                           *
    *                                                               *
    *****************************************************************/
    
    /*variavel para contar a qtde de registros  aserem gerados*/
    DEF VAR loop AS INT.
    
    /*qualquer parametro a ser considerado na minha consulta*/
    DEF VAR parametro_de_pesquisa AS INT.
    
    /*definindo variavel para armazenar as linhas a ser coloridas no browser*/
    DEFINE VARIABLE linha AS ROWID.
    
    /*definindo tabela temporária para gerar informações para o browser*/
    DEFINE TEMP-TABLE customer
        FIELD cust-num AS INT
        FIELD NAME AS CHAR
        FIELD phone AS CHAR
        FIELD city AS CHAR
        FIELD country AS CHAR.
    
    /*alimentando a tabela temporaria*/
    do loop = 1 to 20.
            create customer.
            assign
                customer.cust-num = loop
                customer.NAME = "Fulano-" + string(loop)
                customer.city = "cidade-" + string(loop)
                customer.country = "Pais-" + string(loop)
                customer.phone = "22630" + string(loop) + "0" + string(loop).
    END.
    
    /*definindo tabela temporária para gerar informações para o browser*/
    DEFINE TEMP-TABLE tt-recebe_dados
        FIELD numero AS INT
        FIELD nome AS CHAR
        FIELD telefone AS CHAR
        FIELD cidade AS CHAR
        FIELD pais AS CHAR.
    
    /*altere o valor desta variavel e verifique o resultado*/
    parametro_de_pesquisa = 1.
    
    /*aqui eu transfiro as informações que preciso exibir no browser
    ou seja o for each personalizado*/
    FOR EACH customer NO-LOCK:
    
        IF customer.cust-num >= parametro_de_pesquisa  THEN DO:
       
            CREATE tt-recebe_dados.
            ASSIGN
                 tt-recebe_dados.numero    =   customer.cust-num
                 tt-recebe_dados.nome      =   customer.NAME
                 tt-recebe_dados.cidade    =   customer.city
                 tt-recebe_dados.pais    =   customer.country
                 tt-recebe_dados.telefone  =   customer.phone.
    
        END.
    END.
    
    
    /* defino a query para armazenar os campos a serem filtrados*/
    DEFINE QUERY campos FOR tt-recebe_dados 
    
    /*nome dos campos que vão conter a query*/
    FIELDS (numero nome telefone). 
    
    /*definindo o browser*/
    DEFINE BROWSE grid QUERY campos
        DISPLAY
            tt-recebe_dados.numero    tt-recebe_dados.nome
            tt-recebe_dados.telefone  tt-recebe_dados.pais
    WITH
    SEPARATORS 20 DOWN /*MULTIPLE*/
    row 10 
    size 60 by 20.
    
    
    
    /*definindo frame para ancorar o browser*/
    DEF FRAME f-dados   grid   WITH  TITLE "Browser Colorido 1.0"
        NO-LABELS CENTERED 
        OVERLAY  three-d  
        view-as DIALOG-BOX  . 
    
    
    
    /************* >ev-grid ****************/
    
    /* AQUI CRIO UM EVENTO PARA COLORIR AS LINHAS DO GRID ou browser*/
    
    ON 'row-display':U OF grid IN FRAME f-dados DO:
    
        IF tt-recebe_dados.numero MOD 2 = 0 THEN DO:
           ASSIGN    
        /******************** fundo da linha *************************/
        
                tt-recebe_dados.numero:BGCOLOR IN BROWSE grid = tt-recebe_dados.numero
                tt-recebe_dados.nome  :BGCOLOR IN BROWSE grid = 12
                tt-recebe_dados.telefone  :BGCOLOR IN BROWSE grid = 12
                tt-recebe_dados.pais:BGCOLOR IN BROWSE grid = 12
        
        /******************** fonte da linha *************************/
        
                tt-recebe_dados.numero:FGCOLOR IN BROWSE grid = 15
                tt-recebe_dados.nome  :FGCOLOR IN BROWSE grid = 11
                tt-recebe_dados.telefone  :FGCOLOR IN BROWSE grid = 11
                tt-recebe_dados.pais:FGCOLOR IN BROWSE grid = 11.
             end.
             ELSE
                 tt-recebe_dados.numero :BGCOLOR IN BROWSE grid = tt-recebe_dados.numero.
    
       
    END.
    
    
     /*exibindo a query com a tabela pré-selecionada*/
        OPEN QUERY campos PRESELECT EACH tt-recebe_dados.
    
    
    ENABLE grid WITH FRAME f-dados.
    
    
    wait-for close of this-procedure.
    Espero que ajude!!

Compartilhe esta Página