Filtrar muitos itens com set filter

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Avatar do usuário
rubens
Colaborador
Colaborador
Mensagens: 1520
Registrado em: 16 Ago 2003 09:05
Localização: Nova Xavantina - MT

Filtrar muitos itens com set filter

Mensagem por rubens »

Boa noite...

Como eu poderia simplificar este filtro, tendo em vista que a condição pode aumentar?

Código: Selecionar todos

		Set filter to Iexa->Codigo != '0510' .and. ;
						  Iexa->Codigo != '0111' .and. ;
						  Iexa->Codigo != '0003' .and. ;
						  Iexa->Codigo != '0802' 
Obrigado
Rubens
"Eu e minha casa servimos ao Senhor e você ???"
ar sistemas
Usuário Nível 1
Usuário Nível 1
Mensagens: 10
Registrado em: 05 Jun 2018 00:11
Localização: BELO HORIZONTE/MG

Filtrar muitos itens com set filter

Mensagem por ar sistemas »

Olá Rubens...
Usando set filter, não sei como simplificar isso não. Quanto maior o número registros, mais tempo demandará para a criação do mesmo.
Em tempo, qual rdd você está usando ( ntx, cdx, ...) ?
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20416
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP
Curtiram: 1 vez

Filtrar muitos itens com set filter

Mensagem por JoséQuintas »

Código: Selecionar todos

cText := ""
cText := "[ iexa->código != "0510"]
cText += [ .AND. iexa->Código != "0111"]
...
SET FILTER TO &cText
ou

Código: Selecionar todos

cLista := "0510,0111,0003,0802"
cText := "! iexa->Codigo $ "] + cLista + ["]
SET FILTER TO &cText
Só procure criar um filtro que não dependa de conteúdo de variável, assim não terá problemas.
SET FILTER TO ! iexa->Codigo $ cLista
Isso deixaria preso a existir a variável cLista.

Outra Opção:

SET FILTER TO P0150_Filtro()
E criar a função no módulo.
José M. C. Quintas
Harbour 3.2, mingw, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (Linux/Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
rubens
Colaborador
Colaborador
Mensagens: 1520
Registrado em: 16 Ago 2003 09:05
Localização: Nova Xavantina - MT

Filtrar muitos itens com set filter

Mensagem por rubens »

Bom dia

Ar Sistemas... eu uso CDX

Quintas é estático mesmo... já está filrado com ordscope, por isso preciso do set filter...

Eu tentei Set Filter to ! Iexa->Codigo $ '\5102\0111\0802' mas com essa expressão não funcionou... seria menor do que usando .and.

Obrigado
"Eu e minha casa servimos ao Senhor e você ???"
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20416
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP
Curtiram: 1 vez

Filtrar muitos itens com set filter

Mensagem por JoséQuintas »

rubens escreveu:u tentei Set Filter to ! Iexa->Codigo $ '\5102\0111\0802' mas com essa expressão não funcionou...
Por acaso no arquivo tem os zeros? ou o campo é mesmo de 4 caracteres?
José M. C. Quintas
Harbour 3.2, mingw, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (Linux/Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
rubens
Colaborador
Colaborador
Mensagens: 1520
Registrado em: 16 Ago 2003 09:05
Localização: Nova Xavantina - MT

Filtrar muitos itens com set filter

Mensagem por rubens »

tem os zeros...
Campo caracter...

Rubens
"Eu e minha casa servimos ao Senhor e você ???"
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20416
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP
Curtiram: 1 vez

Filtrar muitos itens com set filter

Mensagem por JoséQuintas »

rubens escreveu:mas com essa expressão não funcionou.
Então defina exatamente o que significa esse seu "não funcionou".
Deu erro ou não filtrou?
Não vejo porque não funcionar, a não ser que o tamanho do campo código seja maior que 4 caracteres ou algo assim.
Ou filtro na área errada...

Tente simular com um arquivo pequeno e um fonte pequeno., e poste o resultado.
José M. C. Quintas
Harbour 3.2, mingw, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (Linux/Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Responder