Cancelar Comando SET FILTER..Tem Como?

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

scom
Usuário Nível 3
Usuário Nível 3
Mensagens: 133
Registrado em: 15 Nov 2004 10:49
Localização: Dourados/MS

Cancelar Comando SET FILTER..Tem Como?

Mensagem por scom »

Ola amigos...

é o sequinte estou usando SET FILTER TO para filtar ums dados em um DBF e gostaria de saber se tem como CANCELAR a Filtragem tipo o apertar o ESC e o FILTER PARAR.


Atenciosamente
ROBSON
MARCELOG
Usuário Nível 4
Usuário Nível 4
Mensagens: 546
Registrado em: 15 Mar 2005 16:54
Localização: Divinópolis/MG

Mensagem por MARCELOG »

Utilize uma "hot key" ou crie uma função que faça a desativação com o pressionamento de determinada tecla.

Se preferir comandos

SET FILTER TO //sem argumentos desabilita o filtro

ou função

DBSETFILTER() //sem argumentos desabilita o filtro

Ex:

IF LASTKEY() == K_ESC
SET FILTER TO // ou função ou chamada a outra função
ENDIF

SETKEY(K_ESC,{||DBSETFILTER()})

MarceloG
scom
Usuário Nível 3
Usuário Nível 3
Mensagens: 133
Registrado em: 15 Nov 2004 10:49
Localização: Dourados/MS

Mensagem por scom »

SIM...MAS EU QUERIA É QUANDO ESTIVER FILTRANDO E TECLAR ESC PARAR O FILTRO....PORQUE AS VEZES ESTOU FILTRANDO E QUERO PARAR PARA FAZER OUTRA COISA...ENTENDEU...

ATENCIOSAMENTE
ROBSON
Avatar do usuário
kiko
Usuário Nível 3
Usuário Nível 3
Mensagens: 145
Registrado em: 08 Jul 2004 15:24
Localização: Cianorte

Mensagem por kiko »

vc precisa fazer isso onde? na sua aplicacao ou em algum outro programa externo?!?!?

nos de mais detalhes sobre o q exatamente vc precisa pra chegarmos numa solucao juntos......
supgaroto
Usuário Nível 2
Usuário Nível 2
Mensagens: 51
Registrado em: 19 Ago 2003 14:24
Localização: Rua Aristotoles Fernandes Valdares, 1190

Mensagem por supgaroto »

Use o INDEX ao inves de SET FILTER.
Muito + rápido...

Ex:
Em um bando de dados de clientes quero selecionar os clientes bloqueados.

select 1
use clientes shared Alias dbcli
index on codigo tag exemplo to arqtmp for bloqueio=="S"

***
Se for um banco de dados muito grande vc pode usar tb o WILHE no lugar no FOR.

Ex:
Selecionando os cliente da cidade de ARINOS:
vc cria este indice no inicio do programa.

select 1
use clientes shared Alias dbcli
if !file("clientes.cdx") // Verifica se existe o arquivo clientes.cdx
index on cidade tag cidade to clientes
index on codigo tag codigo to clientes
index on nome tag nome to clientes
set index to clientes
endif
dbsetoder("cidade") // ordena por cidade
dbseek("ARINOS") // localiza o primeiro cliente da cidade de Arinos.
index on codigo tag exemplo to arqtmp wilhe(Cidade=="ARINOS") // repete a pesquisa selecionando os clientes da cidade de arinos.

Espero ter ajudado!!!
Mário Isa
Usuário Nível 4
Usuário Nível 4
Mensagens: 907
Registrado em: 07 Jul 2004 13:54
Localização: Ilha Solteira-sp

Mensagem por Mário Isa »

Alguém disse:

Se preferir comandos
SET FILTER TO //sem argumentos desabilita o filtro
ou função
DBSETFILTER() //sem argumentos desabilita o filtro


O SET FILTER TO // sem argumentos desabilita o filtro
mas o DBSETFILTER() não desabilita.

O DBSETFILTER() é uma função que retorna uma string que é a condição do filtro. Ex.:

use alguem
set filter to codigo = 1
? dbsefilter() // e o resultado será
"codigo = "1""

Mário
Mário Isa
Usuário Nível 4
Usuário Nível 4
Mensagens: 907
Registrado em: 07 Jul 2004 13:54
Localização: Ilha Solteira-sp

Mensagem por Mário Isa »

Em tempo:

A outra função que desabilita o filtro é:

DBCLEARFILTER()

Mário
Avatar do usuário
vagucs
Membro Master
Membro Master
Mensagens: 1480
Registrado em: 10 Jul 2004 10:45
Localização: Ipanema - MG
Contato:

Mensagem por vagucs »

Enfim, é DESABILITAR ou CANCELAR?
Sem mais
Wagner Nunes
www.vagucs.com.br
scom
Usuário Nível 3
Usuário Nível 3
Mensagens: 133
Registrado em: 15 Nov 2004 10:49
Localização: Dourados/MS

cancelar o set filter...

Mensagem por scom »

entao eu queria e parar ele antes de terminar de filtrar....tipo o cliente ta fazendo o filter mas quer teclar esc e parar.


nao sei se tem como....acho que nao...mas...
Avatar do usuário
vagucs
Membro Master
Membro Master
Mensagens: 1480
Registrado em: 10 Jul 2004 10:45
Localização: Ipanema - MG
Contato:

Mensagem por vagucs »

Nao tem como. so se fizer um friltro "manual" onde vc mesmo coleta as informações, ai dá para parar, mas o set filter nao tem tal funcionalidade.
Sem mais
Wagner Nunes
www.vagucs.com.br
scom
Usuário Nível 3
Usuário Nível 3
Mensagens: 133
Registrado em: 15 Nov 2004 10:49
Localização: Dourados/MS

OBRIGADO...

Mensagem por scom »

OLA WAGNER...MUITO OBRIGADO PELA ATENÇAO...

VOU FAZER UM TEMPORARIO...OK

ABRAÇO

ROBSON
Responder