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

Urgente Atualizar browser via EPC - CP0311

Discussão em 'Progress 4GL' iniciado por maiconjho, Fevereiro 27, 2014.

  1. maiconjho

    maiconjho Sem Pontuação

    Boa tarde Amigos.
    Preciso criar linhas no browser das reservas (quinta aba) do programa CP0311.

    Tenho aqui alguns exemplos de como manipular as células do browser o que já estou fazendo e que está funcionando perfeitamente, porem, preciso também criar novas linhas nesse buffer (no browser).

    Alguém tem algum exemplo pra compartilhar ou sabe qual a codificação necessária?

    Segue um exemplo do que já estou fazendo e que me parece que a informação está sim sendo criada, porem, ela não aparece no browser, já tentei diversos comandos como: refersh, open-query, aplly 'value-changed' no browse e nada. A nova linha não aparece.

    for first tt-reservas:
    wh-buffer:buffer-create().
    assign h-aux = wh-buffer:buffer-field(5)
    h-aux:buffer-value = tt-reservas.it-codigo
    h-aux = wh-buffer:buffer-field(3)
    h-aux:buffer-value = tt-reservas.nr-ord-prod
    h-aux = wh-buffer:buffer-field(39)
    h-aux:buffer-value = tt-reservas.sequencia.

    apply 'open_query' to wh-br-table-cp0311. /*handle no browse em questão*/

    Agradeço desde já...
    toshyro curtiu isso.
  2. jaisonantoniazzi

    jaisonantoniazzi Membro Ativo

    Bom dia @maiconjho tudo bom?
    A instrução de apply utiliza eventos que podem ser KEY CODES ou NOME DE EVENTOS conforme a tabela de eventos (Veja no arquivo de ajuda Event tables), apply 'open_query' é inválido pois não existe evento OPEN_QUERY. Para verificar os eventos disponíveis para widgets use o Object Attribute Reference.
    Se você usou o método REFRESH, lembro-o que este método é para atualizar os registros no BROWSE e não para reabrir a QUERY deste:
    REFRESH( ) method
    Forces the AVM to refresh the display of the current rows in a browse.
    Return type:
    LOGICAL
    Applies to:
    BROWSE widget
    Syntax
    REFRESH ( )
    If the AVM successfully refreshes the widget, the method returns the value TRUE.

    Você tem que reabrir a query, veja se este código te ajuda:

    DEFINE VARIABLE hbrowse AS HANDLE NO-UNDO.
    DEFINE VARIABLE hquery AS HANDLE NO-UNDO.
    DEFINE VARIABLE hbuffer AS HANDLE NO-UNDO.

    hbrowse = BROWSE browse-2:HANDLE. /* atribua o handle do browse aqui */
    hquery = hbrowse:QUERY.
    hbuffer = hquery:GET-BUFFER-HANDLE(1).

    hquery:QUERY-CLOSE().
    hquery:QUERY-PREPARE("for each " + hbuffer:TABLE). /*desconheço como pegar a clausula de query-prepare usada para abrir, entao forcei uma*/
    hquery:QUERY-OPEN().

    Peço o favor de curtir minhas publicações e exemplos em http://4each.com.br/resources/

    Forte abraço.
    Rsacoman curtiu isso.
  3. maiconjho

    maiconjho Sem Pontuação

    Olá, boa noite Jaison.
    Meu amigo, primeiramente peço desculpas por não responder antes, mas em virtude da correria acabei deixando de responder.

    Mas sim, seu exemplo funcionou perfeitamente, era isso que precisava, na verdade estava simulando um código parecido onde minha combinação de parâmetros não estava de acordo, hora usava o QUERY-PREPARE, hora usava o QUERY-OPEN.

    Enfim, problema resolvido.

    Digo ainda que é bom poder contar com amigos / parceiros nos momentos que precisamos.
    Aquele abraço. Boa semana!

Compartilhe esta Página