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

Dica Browse Dinamico

Discussão em 'Progress 4GL' iniciado por bootstrapmaster, Dezembro 15, 2015.

  1. bootstrapmaster

    bootstrapmaster Moderator Moderador Equipe de Suporte

    Meu caros, criei esse exemplo basico do basico, mas vi um grande potencial, vai da imaginação de cada um, eu não pus nesse codigo usando 2 tabelas, mas ele faz varias tabelas, basta criar um buffer pra cada tabela e fazer um add-buffer na query.
    Código:
    /*  ------------------------------------------------------------
        Programa .: BrowseDinamico.p
        Autor ....:
        Data .....:
        Descricao : teste para criar um browse dinamicamente.
        ------------------------------------------------------------ */
    
        define variable baseQuery   as character  no-undo.
        define variable detailQuery as character  no-undo.
       
        define variable handleBrowse as handle    no-undo.
        define variable handleQuery  as handle    no-undo.
        define variable handleBuffer as handle    no-undo.
        define variable handleButton as handle    no-undo.
        define variable handleFrame  as handle    no-undo.
       
        define variable nomeTabela   as character no-undo.
        define variable filtro       as character no-undo.
        define variable campos       as character no-undo.
        define variable contador     as integer   no-undo.
       
        assign nomeTabela = 'emitente'.
        assign filtro     = ''.
        assign campos     = 'emitente.cod-emitente,emitente.nome-abrev,emitente.nome-emit'.
    
        assign baseQuery = substitute('for each &1 no-lock', nomeTabela).
        assign detailQuery = substitute('for each &1 no-lock &2', nomeTabela, filtro).
       
        create buffer handleBuffer for table nometabela.
    
        create query handleQuery.
        handleQuery:set-buffers(handleBuffer).
        handleQuery:query-prepare(baseQuery).
    
        create frame handleFrame
            assign x      = 1
                   y      = 1
                   width  = 76
                   height = 11
                   title  = 'Browse teste'.
    
    
        create browse handlebrowse
            assign x         = 1
                   y         = 1
                   width     = 80
                   down      = 10
                   query     = handleQuery
                   frame     = handleFrame
                   read-only = false
                   sensitive = true
                   font      = 4.
    
        repeat contador = 1 to num-entries(campos):
            handleBrowse:add-like-column(entry(contador,campos)).
        end.
        handleBrowse:width = 75.
    
        create button handleButton
             assign x = 1
                    y = 210
                    width = 20
                    frame = handleFrame
                    sensitive = true
                    label = 'Processar'
                    font = 4
                    triggers:
                        on choose do:
                            handleQuery:query-open.
                            self:sensitive = false.
                        end.
                    end triggers.
    
        view handleFrame.
        wait-for close of this-procedure.
        delete object handleBrowse.
        delete object handleQuery.
        delete object handleBuffer.
    
  2. fdantas

    fdantas Administrator Moderador

    Show !

Compartilhe esta Página