vagner Posted October 28, 2005 Report Share Posted October 28, 2005 Olá Pessoal, Passei o dia inteiro com um problema que achava ser do ordscope no xharbour, até postei no fórum do xharbour, e então me veio a solução do caso Bom eu tinha que pegar uns valores entre uns perÃodos, e sempre me saia errado ou seja pegava os valores corretos mas os perÃodos errados, não obedecia o intervalo, fiquei de cabeça quente (me aguarde brejas, vou tomar muitas hoje ), bom aqui está a solução para isso : É pessoal, Depois de analisar e reavaliar, cheguei a uma triste realidade. O OrdScope não funciona para Ãndices compostos, alias funciona porém sendo o 1º field da comparação sendo igual sempre, vou dar um exemplo : Se eu tenho um CNPJ e quero selecionar todos as faturas desse CNPJ, funciona normalmente. Index CNPJ+DTOS(DATA)+NroFatura .... OrdScope(0,"1234567890123"+"20051028") OrdScope(1,"1234567890123"+"20051028") Isso me traz todas as faturas desse cliente, sem problema algum. Agora se eu fizer o seguinte : OrdScope(0,"1234567890123"+"20051028") OrdScope(1,"2345678901234"+"20051028") Isso não Funciona, e é lógico que não funcione :þ), eu é q não tinha visto a relação, com muita coisa na cabeça as vezes a gente precisa parar e ir dar uma volta para poder pensar ;þ) Se eu tiver uma chave que estaria +- assim : "2045678901234"+"20040101" Ela seria maior que a minha primeira chave, fazendo com que estivesse dentro do intervalo :þ) Então para quem usa muito o OrdScope como eu, tomem cuidado, principalmente se estiverem usando para selecionar perÃodos :þ) Abraços Vagner Wirts São Paulo-Brasil Isso é só para que não caiam na mesma coisa que eu Vagner Wirts Clipper 5.2 Lib 5.3 - Blinker 5.0 FW 2.0, Harbour 43.0 (Flex), xHarbour 99.1 99.2 99.3 (Simplex) FW 2.5 Quote Link to comment Share on other sites More sharing options...
vagner Posted October 28, 2005 Author Report Share Posted October 28, 2005 Olá Pessoal, Passei o dia inteiro com um problema que achava ser do ordscope no xharbour, até postei no fórum do xharbour, e então me veio a solução do caso Bom eu tinha que pegar uns valores entre uns perÃodos, e sempre me saia errado ou seja pegava os valores corretos mas os perÃodos errados, não obedecia o intervalo, fiquei de cabeça quente (me aguarde brejas, vou tomar muitas hoje ), bom aqui está a solução para isso : É pessoal, Depois de analisar e reavaliar, cheguei a uma triste realidade. O OrdScope não funciona para Ãndices compostos, alias funciona porém sendo o 1º field da comparação sendo igual sempre, vou dar um exemplo : Se eu tenho um CNPJ e quero selecionar todos as faturas desse CNPJ, funciona normalmente. Index CNPJ+DTOS(DATA)+NroFatura .... OrdScope(0,"1234567890123"+"20051028") OrdScope(1,"1234567890123"+"20051028") Isso me traz todas as faturas desse cliente, sem problema algum. Agora se eu fizer o seguinte : OrdScope(0,"1234567890123"+"20051028") OrdScope(1,"2345678901234"+"20051028") Isso não Funciona, e é lógico que não funcione :þ), eu é q não tinha visto a relação, com muita coisa na cabeça as vezes a gente precisa parar e ir dar uma volta para poder pensar ;þ) Se eu tiver uma chave que estaria +- assim : "2045678901234"+"20040101" Ela seria maior que a minha primeira chave, fazendo com que estivesse dentro do intervalo :þ) Então para quem usa muito o OrdScope como eu, tomem cuidado, principalmente se estiverem usando para selecionar perÃodos :þ) Abraços Vagner Wirts São Paulo-Brasil Isso é só para que não caiam na mesma coisa que eu Vagner Wirts Clipper 5.2 Lib 5.3 - Blinker 5.0 FW 2.0, Harbour 43.0 (Flex), xHarbour 99.1 99.2 99.3 (Simplex) FW 2.5 Quote Link to comment Share on other sites More sharing options...
vagner Posted October 28, 2005 Author Report Share Posted October 28, 2005 Olá Pessoal, Passei o dia inteiro com um problema que achava ser do ordscope no xharbour, até postei no fórum do xharbour, e então me veio a solução do caso Bom eu tinha que pegar uns valores entre uns perÃodos, e sempre me saia errado ou seja pegava os valores corretos mas os perÃodos errados, não obedecia o intervalo, fiquei de cabeça quente (me aguarde brejas, vou tomar muitas hoje ), bom aqui está a solução para isso : É pessoal, Depois de analisar e reavaliar, cheguei a uma triste realidade. O OrdScope não funciona para Ãndices compostos, alias funciona porém sendo o 1º field da comparação sendo igual sempre, vou dar um exemplo : Se eu tenho um CNPJ e quero selecionar todos as faturas desse CNPJ, funciona normalmente. Index CNPJ+DTOS(DATA)+NroFatura .... OrdScope(0,"1234567890123"+"20051028") OrdScope(1,"1234567890123"+"20051028") Isso me traz todas as faturas desse cliente, sem problema algum. Agora se eu fizer o seguinte : OrdScope(0,"1234567890123"+"20051028") OrdScope(1,"2345678901234"+"20051028") Isso não Funciona, e é lógico que não funcione :þ), eu é q não tinha visto a relação, com muita coisa na cabeça as vezes a gente precisa parar e ir dar uma volta para poder pensar ;þ) Se eu tiver uma chave que estaria +- assim : "2045678901234"+"20040101" Ela seria maior que a minha primeira chave, fazendo com que estivesse dentro do intervalo :þ) Então para quem usa muito o OrdScope como eu, tomem cuidado, principalmente se estiverem usando para selecionar perÃodos :þ) Abraços Vagner Wirts São Paulo-Brasil Isso é só para que não caiam na mesma coisa que eu Vagner Wirts Clipper 5.2 Lib 5.3 - Blinker 5.0 FW 2.0, Harbour 43.0 (Flex), xHarbour 99.1 99.2 99.3 (Simplex) FW 2.5 Quote Link to comment Share on other sites More sharing options...
betovsp Posted October 28, 2005 Report Share Posted October 28, 2005 Valew Vagner, vamos acompanhar de perto isso. Abraços. Beto betovsp@hotmail.com (16)9148-1515 CL53B + FW2.0 + @ SAY + BLINKER 7 Ribeirão Preto/SP III ENCONTRO DE FIVEWINERS -> ESSE EU NÃO PERCO Quote Link to comment Share on other sites More sharing options...
aferra Posted October 28, 2005 Report Share Posted October 28, 2005 Boa Noite! Valeu pela dica, eu uso somente o ordscope(), e fazendo o teste realmente acontece isso, porem, claro, depende de cada caso, e mexendo fiz um SORT entre as variaveis do codigo para saber qual é menor e deu certo colocando data+codigo, fica aqui mais uma dica. Abraços Alessandro F. Silva - Ribeirão Preto/SP aferracini@terra.com.br FW2.0d + CL53b + Blinker 7.0 MSN: ferracini_silva@hotmail.com TERCEIRO ENCONTRO DE FIVEWINNERS NOVEMBRO DE 2005 EU APOIO E VOU. Quote Link to comment Share on other sites More sharing options...
pauloaraujo Posted October 29, 2005 Report Share Posted October 29, 2005 Parece uma pegadinha mas é lógica pura Paulo/CONTATO SISTEMAS Clipper53b / FW26 / Blinker70 Ajudar é um prazer, agradecer é uma obrigação PRESTIGIEM O III ENCONTRO DE USUÃRIOS DE FIVEWIN - 2005 Inscreva-se: http://www.installsis.com.br/encontro Quote Link to comment Share on other sites More sharing options...
Geraldo (gbsilva) Posted October 29, 2005 Report Share Posted October 29, 2005 Vagner eu uso e pelo que havia entendido do Ordscope() é que o filtro deve obdecer exatamente o Ãndice. No seu caso você postou CNPJ+DTOS(DATA)+NroFatura e na sua pesquisa está o CNPJ e Nº da Fatura, eu nao sabia que funcionava assim, mas se indexar somente por CNPJ+Fatura, acho que ele pegara normalmente os dados. ***************************************** Index CNPJ+Fatura OrdScope(0,"1234567890123"+"20051028") OrdScope(1,"2345678901234"+"20051028") ***************************************** Index CNPJ+DTOS(data)+Fatura OrdScope(0,"1234567890123"+DTOS(PERIODO1)+"20051028") OrdScope(1,"2345678901234"+DTOS(PERIODO2)+"20051028") Nao sei se isso mas nos meus testes foi assim que fiz, ou do contrario, pelo menos comigo nao dava certo. Favor testar ai e nos reportar por favor. Geraldo Barbosa da Silva FW 2.6 + Clipper 5.3b + Blinker 6.0 + WS 4.5 FWH 2.6 + xHarbour 0.99.50 (Simplex) + Bcc55 + Pelles + MyMake Windows Xp SP2 lucgera@terra.com.br Quote Link to comment Share on other sites More sharing options...
vagner Posted October 29, 2005 Author Report Share Posted October 29, 2005 Oi Geraldo, "20051028", não é o número da fatura e sim a data transformada pelo DtoS("28/10/2005") Vagner Wirts Clipper 5.2 Lib 5.3 - Blinker 5.0 FW 2.0, Harbour 43.0 (Flex), xHarbour 99.1 99.2 99.3 (Simplex) FW 2.5 Quote Link to comment Share on other sites More sharing options...
Geraldo (gbsilva) Posted October 30, 2005 Report Share Posted October 30, 2005 Ai pegou então. No meu caso eu uso bastante assim: Index(Contrato+CentrodeCusto+algumacoisa) e quando realizo filtros nunca escolho 2 contratos pois seria estranho no meu caso, talvez seja por isso que não vi nenhum problema até o momento. Mas temos de ficar de olho para não perder o rumo da coisa. Valeu pelo retorno. Geraldo Barbosa da Silva FW 2.6 + Clipper 5.3b + Blinker 6.0 + WS 4.5 FWH 2.6 + xHarbour 0.99.50 (Simplex) + Bcc55 + Pelles + MyMake Windows Xp SP2 lucgera@terra.com.br Quote Link to comment Share on other sites More sharing options...
evandro Posted October 30, 2005 Report Share Posted October 30, 2005 Olá, Só para deixar claro, como disse o Paulo, não é um problema do OrderScope(), e sim de lógica. Aliás, como o próprio Vagner demonstra. O problema estava entre o teclado e a cadeira. Hehehehe []s, Evandro G. de Paula Curvelo - MG evandro@skillnet.com.br (Escr. - na Cidade) imortal@skillnet.com.br (Res. - na Roça) FWH 2.5+PellesC+xBuild+xHarbour.org 0.99.3 PRESTIGIEM O III ENCONTRO DE USUÃRIOS DE FIVEWIN - 2005 Quote Link to comment Share on other sites More sharing options...
pauloaraujo Posted October 30, 2005 Report Share Posted October 30, 2005 citação:Olá, Só para deixar claro, como disse o Paulo, não é um problema do OrderScope(), e sim de lógica. Aliás, como o próprio Vagner demonstra. O problema estava entre o teclado e a cadeira. Hehehehe []s, Evandro G. de Paula Curvelo - MG evandro@skillnet.com.br (Escr. - na Cidade) imortal@skillnet.com.br (Res. - na Roça) FWH 2.5+PellesC+xBuild+xHarbour.org 0.99.3 PRESTIGIEM O III ENCONTRO DE USUÃRIOS DE FIVEWIN - 2005 id=quote>id=quote>E é aà que se vê quem é profissional ou não. Poucos criariam um tópico mostrando o próprio erro, para evitar que outros caiam. Paulo/CONTATO SISTEMAS Clipper53b / FW26 / Blinker70 Ajudar é um prazer, agradecer é uma obrigação PRESTIGIEM O III ENCONTRO DE USUÃRIOS DE FIVEWIN - 2005 Inscreva-se: http://www.installsis.com.br/encontro Quote Link to comment Share on other sites More sharing options...
pauloa1 Posted August 25, 2010 Report Share Posted August 25, 2010 Vagner! Como vc resolveu isso? Usou a pesquisa de outra forma sem ordscope? Paulo Quote Link to comment Share on other sites More sharing options...
gibaf Posted August 26, 2010 Report Share Posted August 26, 2010 citação:Vagner! Como vc resolveu isso? Usou a pesquisa de outra forma sem ordscope? Paulo id=quote>id=quote>simples pra resolver isso: Index CNPJ+DTOS(DATA)+NroFatura .... Index DTOS(DATA)+CNPJ+NroFatura .... dbSetOrder(1) OrdScope(0,"1234567890123"+"20051028") OrdScope(1,"1234567890123"+"20051028") dbSetOrder(2) OrdScope(0,"20051028"+"1234567890123") OrdScope(1,"20051028"+"2345678901234") id=code>id=code> como alguem disse acima: LOGICA PURA..rss []'s Gilberto Frohlich - Toledo/PR giba_f@hotmail.com giba_f@yahoo.com.br xHarbour xBuild+Fivewin 2.7+PellesC+(Postgres+DB2) Quote Link to comment Share on other sites More sharing options...
pauloa1 Posted August 27, 2010 Report Share Posted August 27, 2010 quanto a isso sim. Mas tenho outro problema com ordscope. Ele só faz a consulta com dados que existem, exemplo. Use tabela.dbf index codprod+dtos(data)... Campo codprod tipo Caract tamanho 7 pict "99-9999" Se eu pesquisar os primeiros campos iguais ao segundo, funciona blz exemplo: OrdScope(0,"01-0014"+"20100501") OrdScope(1,"01-0014"+"20100531") Neste caso mostra todo o movimento do mes de maio 2010 do produtor 01-001, perfeito e muito rápido, nem comparação com set filter.. agora se eu quiser filtrar produtores de "00-0000" até "99-9999" entre 01/05/2010 a 31/05/2010 OrdScope(0,"00-0000"+"20100501") OrdScope(1,"99-9990"+"20100531") não existe produtores com "00-0000" e "99-9999" somente maiores e menores. então a solução seria: dbseek("00-000020100501",.t.) cTemp := codprod+dtos(data) dbseek("99-999920100531",.t.) ctemp2 := codprod+dtos(data) set scope to ctemp,ctemp1 go top Só que se o primeiro ou último, codprod, não tiver nenhum lançamento neste perÃodo, ele busca o primeiro com outra data, ou se não achar, fica em branco. Acho o Ordscope excelente, mata a pau na velocidade, mas é um pouco limitado. Ou teria uma solução para este caso? Paulo Quote Link to comment Share on other sites More sharing options...
Theotokos Posted August 27, 2010 Report Share Posted August 27, 2010 OrdScope realmente é uma beleza. Mas poderia ter uma opção de colocar o operador, tipo OrdScope(0,"12345",">=") OrdScope(1,"99999","<") Em Cristo! Rone - Itajubá(MG)id=red> xHB build 1.1.0 (SimpLex) & BCC 5.5.1 & FW 7.12 + xDevStudio A pessoa que pensa que sabe alguma coisa, ainda não tem a sabedoria que precisa. (1 Cor 8, 2)id=blue> Quote Link to comment Share on other sites More sharing options...
Ladinilson Posted March 24, 2015 Report Share Posted March 24, 2015 Amigos sei que este tópico é bastante antigo e para muito o problema ja foi sanado criando-se índices temporários mas na teimosia, relutei em recorrer devido a muitas mudanças nas rotinas mas o fato é que o ORDSCOPE É FALHO quando se trata de datas e tentei de muitas formas e dias permanecer no mesmo e a solução só veio mesmo com os índices temporários. Para quem precisar e estiver passando a mesma dificuldade, resolvi somente assim... SELECT ContasRece ContasRece->(DBGOTOP()) ContasRece->(ordscope(0,)) // Para retirar qualquer filtro existente ContasRece->(ordscope(1,)) SET FILTER TO ContasRece->(DBGOTOP()) INDEX ON ContasRece->data_venc TAG IndTemp TO IndT FOR (ContasRece->tipo = "R1" .AND. ContasRece->cod_client = vcod_clien) MEMORY ContasRece->(DBGOTOP()) E GRAÇAS A DEUS!! Que criaram este "atalho" pois o SET FILTER em rede não em nenhuma condição de ser usado e já estava muito insatisfeito com a linguagem para um problema básico para todos. Valeu muito as dicas. FWH 8.12 / xHB 1.1 kapiaba 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.