Criando controles de paginação para Datawindows (PowerBuilder)

Criando controles de paginação para Datawindows (PowerBuilder)

Overview

Bem-vindo a este tutorial de PowerBuilder, onde você aprenderá a incluir controles de paginação de maneira simples em sua janela! Se você já se pegou navegando por longas listas de dados e pensou que poderia haver uma forma mais eficiente, este post é para você. Acompanhe passo a passo como adicionar e configurar botões de paginação sem mexer nas configurações da Datawindow e melhore significativamente a navegação dos seus dados. Vamos nessa!

Neste post vou mostrar como incluir controles de paginação na janela. Aqueles botões que ajudam você a navegar por longas listas de dados (botões Primeiro, Anterior, Próximo e Último).

Note que este post mostra como fazer isso sem alterar a configuração da Datawindow. O que faremos é utilizar funções nativas da DW e fazer com que ele mostre determinada “pagina” com n resultados. Bom, vamos começar…

Primeiro, crie uma janela e insira os seguintes controles nela:

  1. Objeto DataWindow (dw_1);
  2. Um botão para função “Primeira Página” (cb_first);
  3. Um botão para função “Página Anterior” (cb_prev);
  4. Um botão para função “Próxima Página” (cb_next);
  5. Um botão para função “Última Página” (cb_last);

Configure o data object da dw_1 da forma que preferir.

Insira o seguinte código para o botão cb_first:

dw_1.ScrollToRow(1)

Este comando vai retornar a DataWindow para a primeira linha.

Insira o seguinte código para o botão cb_prev:

dw_1.ScrollPriorPage()

Este comando tenta “retornar” para a página anterior a que está sendo exibida.

Insira o seguinte código para o botão cb_next:

dw_1.scrollNextPage()

Este comando irá tentar passar para a próxima página de relatório.

Insira o seguinte código para o botão cb_last:

dw_1.ScrollToRow(dw_1.rowcount())

Esta é a mesma função que inserimos no cb_first, mas agora estamos fazendo com que ela vá para a última linha da datawindow.

Agora vem a pergunta: OK, você está paginando os resultados da DataWindow, mas onde configuro a quantidade de registros por página?

Bom, existe uma boa e uma má notícia: Você não define explicitamente a quantidade de linhas. O que é considerado aqui como “página” são as linhas exibidas pela DW, ou seja, se ela exibir 10 linhas na tela, cada página terá 10 linhas e quando o usuário clicar no botão cb_next, o PB irá exibir os próximos 10 registros.

Isso pode ser inconveniente, dependendo da situação, mas pode ajudar o usuário a navegar pelos dados.

Para exemplificar, coloquei o fonte de exemplo da janela e o workspace no meu github.

Espero ter ajudado!