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: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

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, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, 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: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

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, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, 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: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

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, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, 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