por [url=https://pctoledo.org/forum/memberlist.php?mode=viewprofile&u=100899][color=#00AA00]Pablo César[/color][/url]: Mensagem recuperada através de citações de outros usuários. Pois esta mensagem foi re-editada pelo próprio autor apagando o seu conteúdo e prejudicando o entendimento do tópico. Esta prática não é aceita no fórum.
Filtro com OrdScope()
Moderador: Moderadores
Filtro com OrdScope()
A função OrdScope() não funciona com índices compostos ? Preciso indexar um campo data + tipo e filtar um intervalo de datas com um determinado tipo para exibir em um Tbrowse, mas não estou conseguindo.
Nota de Moderação:
por [url=https://pctoledo.org/forum/memberlist.php?mode=viewprofile&u=100899][color=#00AA00]Pablo César[/color][/url]: Mensagem recuperada através de citações de outros usuários. Pois esta mensagem foi re-editada pelo próprio autor apagando o seu conteúdo e prejudicando o entendimento do tópico. Esta prática não é aceita no fórum.
por [url=https://pctoledo.org/forum/memberlist.php?mode=viewprofile&u=100899][color=#00AA00]Pablo César[/color][/url]: Mensagem recuperada através de citações de outros usuários. Pois esta mensagem foi re-editada pelo próprio autor apagando o seu conteúdo e prejudicando o entendimento do tópico. Esta prática não é aceita no fórum.
Editado pela última vez por Grings em 22 Mai 2009 20:51, em um total de 1 vez.
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
Re: Filtro com OrdScope()
Olá Grings,Grings escreveu:A função OrdScope() não funciona com índices compostos ? Preciso indexar um campo data + tipo e filtar um intervalo de datas com um determinado tipo para exibir em um Tbrowse, mas não estou conseguindo.
Funciona sim, abaixo um exemplo:
Código: Selecionar todos
USE RECEBER ALIAS RECEBER SHARED // ABRINDO DBF
INDEX ON DTOS(DATA)+STR(CAIXA,2)+SITUACAO TAG 1 to RECEBER // CRIANDO INDICE ONDE PRIMEIRO CAMPO É DO TIPO DATA,SEGUNDO DO TIPO NUMÉRICO E TERCEIRO CARACTER.
SET INDEX TO RECEBER // ABRINDO INDICE CASO NÃO ESTEJA UNSANDO SET AUTOPEN ON
SELE RECEBER
DBSETORDER(1)
ORDScope(0, DTOS(wDATA)+STR(wCAIXA,2)+"P")
ORDScope(1, DTOS(wDATA)+STR(wCAIXA,2)+"P")
Abraços
Leonardo Machado
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
xHarbour.org + Hwgui + PostgreSql
Não funcionou. Consigo filtrar somente a data, o tipo não, aparecem todos.
Nota de Moderação:
por [url=https://pctoledo.org/forum/memberlist.php?mode=viewprofile&u=100899][color=#00AA00]Pablo César[/color][/url]: Mensagem recuperada através de citações de outros usuários. Pois esta mensagem foi re-editada pelo próprio autor apagando o seu conteúdo e prejudicando o entendimento do tópico. Esta prática não é aceita no fórum.
por [url=https://pctoledo.org/forum/memberlist.php?mode=viewprofile&u=100899][color=#00AA00]Pablo César[/color][/url]: Mensagem recuperada através de citações de outros usuários. Pois esta mensagem foi re-editada pelo próprio autor apagando o seu conteúdo e prejudicando o entendimento do tópico. Esta prática não é aceita no fórum.
Editado pela última vez por Grings em 22 Mai 2009 20:52, em um total de 1 vez.
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
Re: Filtro com OrdScope()
Olá Grings,Grings escreveu:Não funcionou. Consigo filtrar somente a data, o tipo não, aparecem todos.
Post um pequeno exemplo demonstrando seu problema e como você esta fazendo, se esta usando CDX ou que ?
Abraços
Leonardo Machado
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
xHarbour.org + Hwgui + PostgreSql
OrdScope(0,Dtos(dDataIni), + '1')
OrdScope(1,Dtos(dDataFin), + '1')
Nota de Moderação:
por [url=https://pctoledo.org/forum/memberlist.php?mode=viewprofile&u=100899][color=#00AA00]Pablo César[/color][/url]: Mensagem recuperada através de citações de outros usuários. Pois esta mensagem foi re-editada pelo próprio autor apagando o seu conteúdo e prejudicando o entendimento do tópico. Esta prática não é aceita no fórum.
OrdScope(1,Dtos(dDataFin), + '1')
por [url=https://pctoledo.org/forum/memberlist.php?mode=viewprofile&u=100899][color=#00AA00]Pablo César[/color][/url]: Mensagem recuperada através de citações de outros usuários. Pois esta mensagem foi re-editada pelo próprio autor apagando o seu conteúdo e prejudicando o entendimento do tópico. Esta prática não é aceita no fórum.
Editado pela última vez por Grings em 22 Mai 2009 20:52, em um total de 1 vez.
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
Re: Filtro com OrdScope()
Olá Grings,Grings escreveu: OrdScope(0,Dtos(dDataIni), + '1')
OrdScope(1,Dtos(dDataFin), + '1')
Voce esta colocando uma virgula a mais, deve fica apenas assim:
OrdScope(0,Dtos(dDataIni) + '1')
OrdScope(1,Dtos(dDataFin) + '1')
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
xHarbour.org + Hwgui + PostgreSql
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
Re: Filtro com OrdScope()
Grings,
Realmente isso esta muito estranho, como foi demostrado nos topicos acima, eu uso muito tudo isso e não tenho problemas, deve ter alguma outra cosia que não esta sendo prevista, me diga uma coisa esse campo "TIPO" é CARACTER mesmo ou Numérico ?
Realmente isso esta muito estranho, como foi demostrado nos topicos acima, eu uso muito tudo isso e não tenho problemas, deve ter alguma outra cosia que não esta sendo prevista, me diga uma coisa esse campo "TIPO" é CARACTER mesmo ou Numérico ?
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
xHarbour.org + Hwgui + PostgreSql
-
Hasse
- Usuário Nível 4

- Mensagens: 820
- Registrado em: 19 Out 2004 10:30
- Localização: Jaraguá do Sul - SC
Re: Filtro com OrdScope()
Testei o PRG acima e funcionou CORRETAMENTE, sem qualquer problema.
HBmake - Windows XP SP2 - xHarbour 1.0.0-beta
Com as versões < 0.99.60 >, < 0.99.70 > e < 1.1.0 > também funcionou.
HBmake - Windows XP SP2 - xHarbour 1.0.0-beta
Com as versões < 0.99.60 >, < 0.99.70 > e < 1.1.0 > também funcionou.
Hasse
CP200 / CP500 / Basic / dBase III / dBase IV / Clipper Summer / RTlink / Exospace.
Clipper 5.3b / Blinker 7.0 / CDX com TAG
xHarbour 1.2.1-6604 / Borland C++ (5.5.1) 32 bit / HBmake.
Harbour 3.2.0dev (r1412121623) / MINGW / HBM2 / MiniGui HMG 3.1.4 / IDE (Roberto Lopez).
"Conheça todas as teorias, domine todas as técnicas, mas, quando tocares uma alma humana, seja apenas outra alma humana." (C.G.Jung)
CP200 / CP500 / Basic / dBase III / dBase IV / Clipper Summer / RTlink / Exospace.
Clipper 5.3b / Blinker 7.0 / CDX com TAG
xHarbour 1.2.1-6604 / Borland C++ (5.5.1) 32 bit / HBmake.
Harbour 3.2.0dev (r1412121623) / MINGW / HBM2 / MiniGui HMG 3.1.4 / IDE (Roberto Lopez).
"Conheça todas as teorias, domine todas as técnicas, mas, quando tocares uma alma humana, seja apenas outra alma humana." (C.G.Jung)
-
Hasse
- Usuário Nível 4

- Mensagens: 820
- Registrado em: 19 Out 2004 10:30
- Localização: Jaraguá do Sul - SC
Re: Filtro com OrdScope()
Olá Grings.
Veja que o OrdScope() não é um filtro. Nele se estabelece onde está localizado o primeiro registro que atende ao limite e em seguida aquele que atende ao segundo limite. Todos os registros intermediários são apresentados.
Para fazer isto que você precisa é necessário acionar em seguida um Set Filter to, ou DBSetFilter(). Para arquivos pequenos basta usar o filtro, mas para arquivos grande é bom combinar as duas funções que acelera muito o resultado.
O xHarbour também tem uma função de filtro, mas não me lembro do nome dela. Com uma pequena pesquisa certamente você acha.
E se não achar, solta o verbo que a gente te ajuda.
Veja que o OrdScope() não é um filtro. Nele se estabelece onde está localizado o primeiro registro que atende ao limite e em seguida aquele que atende ao segundo limite. Todos os registros intermediários são apresentados.
Para fazer isto que você precisa é necessário acionar em seguida um Set Filter to, ou DBSetFilter(). Para arquivos pequenos basta usar o filtro, mas para arquivos grande é bom combinar as duas funções que acelera muito o resultado.
O xHarbour também tem uma função de filtro, mas não me lembro do nome dela. Com uma pequena pesquisa certamente você acha.
E se não achar, solta o verbo que a gente te ajuda.
Hasse
CP200 / CP500 / Basic / dBase III / dBase IV / Clipper Summer / RTlink / Exospace.
Clipper 5.3b / Blinker 7.0 / CDX com TAG
xHarbour 1.2.1-6604 / Borland C++ (5.5.1) 32 bit / HBmake.
Harbour 3.2.0dev (r1412121623) / MINGW / HBM2 / MiniGui HMG 3.1.4 / IDE (Roberto Lopez).
"Conheça todas as teorias, domine todas as técnicas, mas, quando tocares uma alma humana, seja apenas outra alma humana." (C.G.Jung)
CP200 / CP500 / Basic / dBase III / dBase IV / Clipper Summer / RTlink / Exospace.
Clipper 5.3b / Blinker 7.0 / CDX com TAG
xHarbour 1.2.1-6604 / Borland C++ (5.5.1) 32 bit / HBmake.
Harbour 3.2.0dev (r1412121623) / MINGW / HBM2 / MiniGui HMG 3.1.4 / IDE (Roberto Lopez).
"Conheça todas as teorias, domine todas as técnicas, mas, quando tocares uma alma humana, seja apenas outra alma humana." (C.G.Jung)
-
MARCELOG
- Usuário Nível 4

- Mensagens: 546
- Registrado em: 15 Mar 2005 16:54
- Localização: Divinópolis/MG
Re: Filtro com OrdScope()
Caro Grings, se você estiver fazendo que nem o Leonardo postou acho que não vai dar certo.
É que ele está criando o índice com o STR, que converte o número em string mas deixa espaços à esquerda.
Se for o caso, use alltrim(str(...)) que vai dar certo.
Verifique o índice ativo com indexkey(0) ou &indexkey(0) para comparar com o filtro que você está realizando.
MarceloG
É que ele está criando o índice com o STR, que converte o número em string mas deixa espaços à esquerda.
Se for o caso, use alltrim(str(...)) que vai dar certo.
Verifique o índice ativo com indexkey(0) ou &indexkey(0) para comparar com o filtro que você está realizando.
MarceloG
Água mole em pedra dura tanto bate que até espirra!
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
Re: Filtro com OrdScope()
Grings, vc esta com razão seu pequeno exemplo teoricamente funcionaria, pelomenos para min. Mas compile com a versão 1.1.0 e não esta filtrando direito, porem tenho Diversas rotinhas que usam isso, inclusive o exemplo que postei bem no começo foi pego de um filtro de contas a receber meu.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
xHarbour.org + Hwgui + PostgreSql
