Define um filtro para a DataWindow
Sintaxe:
dwcontrol.SetFilter(format)
Retorno:
- 1 – Sucesso;
- -1 – Se ocorreu algum erro ou se não foi especificado nenhum DataObject na DataWindow;
Destalhes sobre a função!
Appeon: Função suportada sem restrições.
- Após recuperar os dados (retrieve) e aplicar o filtro, as linhas que atenderem os critérios serão automaticamente transferidos do buffer Primary! para o buffer Filter!.
- O método SetFilter substitui o filtro existente na DataWindow;
- Os filtros devem ser operações que utilizam as colunas e devem resultar em um indicador booleano (true ou false);
- São aceitos somente os operadores lógicos AND e OR. NOT não é suportado.
- As comparações dos filtros são feitas em ordem alfabética, no exemplo abaixo, o filtro retornará todas as linhas cuja segunda coluna começa com A, a B ou b.
long ll_ret string ls_filtro ls_filtro = "#2 >= 'a' and #2 < 'c'" ll_ret = dw_1.setFilter(ls_filtro)
- Se quiser que o filtro faça a pesquisa utilizando a ordenação ASCII ao invés da ordem alfabética, utilize \s no final do filtro. O exemplo abaixo retorna linhas cuja segunda coluna comece com a ou b, pois na tabela ASCII, as letras maiusculas e minusculas estão listadas separadamente.
long ll_ret string ls_filtro ls_filtro = "#2 >= 'a' and #2 < 'c' \s" ll_ret = dw_1.setFilter(ls_filtro)
- Para fazer com que o usuário insira um filtro para a datawindow, passe uma variável nula, do tipo string. (Isso não funciona para DataStores, apenas para DataWindow);
- As configurações regionais não alteram a formatação dos números (ou moedas);
- Para utilizar os caracteres % ou _ em uma string filtro, você deve usar o caractere de escape, veja o exemplo abaixo:
string ls_filtro long ll_ret ls_filtro = ~'%oa15progress%~' ll_ret = dw_1.setFiltro(ls_filtro)
- Para remover um filtro, chame a função SetFilter passando uma string vazia.
Como utilizar:
Exemplo 01: Filtra DW_1, retornando as linhas onde a coluna 2 possua valores entre 100 e 1000.
long max_qty, min_qty min_qty = 100 max_qty = 1000 dw_1.SetFilter("#1="+ String( min_qty) + " and #2=" + String(max_qty))
Argumentos:
Argumento | Obrigatório | Descrição |
---|---|---|
dwcontrol | Sim | DataWindow Control da DW que será filtrada |
format | Sim | String contendo a expressão utilizada para o filtro. |
Referência:
Dúvidas sobre o artigo? Sugestões? Precisa de ajuda com outra funcionalidade do PowerBuilder? Deixe um comentário.
The following two tabs change content below.
Arquiteto de Software e Desenvolvedor Backend (quase Fullstack), geralmente trabalho com C#, PowerShell, Python, Golang, bash e Unity (esse é mais por hobby). Estou sempre buscando algo novo para aprender, adicionando novas ferramentas ao meu cinto de utilidades.
Latest posts by Breno RdV (see all)
- O que é Metaclass e como ela funciona. (#python #dev #metaclass) - janeiro 11, 2023
- Entenda a mágica dos Generators. (#python, #dev, #generator, #iterator) - dezembro 28, 2022
- Ordenando um DataFrame por múltiplas colunas. (#python #pandas #jupyter #dev #data) - agosto 3, 2022
Pingback: Recuperando o filtro de uma DataWindow – Raccoon Ninja
Pingback: Filter – Raccoon Ninja
Pingback: Atenção ao utilizar a função FilteredCount! – Raccoon Ninja