Indice descendente

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

Moderador: Moderadores

leandrolinauer
Usuário Nível 3
Usuário Nível 3
Mensagens: 413
Registrado em: 16 Out 2006 10:59
Localização: Paranaíba-MS

Indice descendente

Mensagem por leandrolinauer »

Bom dia a todos.
Estou com um problema na indexação de indices descendentes com valores positivos e negativos no campo, exemplo:
Resultado:
15.000,00
5.000,00
1,00
0,00
-5.000,00 -> este deveria ficar no fim da relação
-1.000,00
-1,00 -> e este no lugar do -5.000,00
Se alguem souber e puder me informar porque o indice fica desta forma, fico grato.
:'(
Grings
Usuário Nível 3
Usuário Nível 3
Mensagens: 340
Registrado em: 18 Ago 2004 13:51

Mensagem por Grings »

Grings escreveu:Post editado
Isso é óbvio, -5000,00 é maior que -1,00. O índice não é descendente ?
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.
Editado pela última vez por Grings em 18 Abr 2008 17:08, em um total de 3 vezes.
Luiz
Usuário Nível 2
Usuário Nível 2
Mensagens: 61
Registrado em: 05 Set 2006 07:30
Localização: Vila Velha - ES

Mensagem por Luiz »

Grings escreveu:Isso é óbvio, -5000,00 é maior que -1,00. O índice não é descendente ?
ná verdade -5000 é menor que -1

Código: Selecionar todos

USE 'teste.dbf' EXCLUSIVE NEW
INDEX ON valor TAG '01'

Ascendente
Recno 9 ->  -15000.00
Recno 8 ->  -10000.00
Recno 7 ->      -5.00
Recno 6 ->      -1.00
Recno 5 ->       0.00
Recno 4 ->       1.00
Recno 3 ->       5.00
Recno 2 ->   10000.00
Recno 1 ->   15000.00


USE 'teste.dbf' EXCLUSIVE NEW
INDEX ON valor TAG '01' DESCENDING

Descendente
Recno 1 ->   15000.00
Recno 2 ->   10000.00
Recno 3 ->       5.00
Recno 4 ->       1.00
Recno 5 ->       0.00
Recno 6 ->      -1.00
Recno 7 ->      -5.00
Recno 8 ->  -10000.00
Recno 9 ->  -15000.00
Fiz os testes e funcionou beleza, tanto com CDX como com NTX.

obs: com o xHarbour 0.99.71
"Ninguém se engane a si mesmo; se alguém dentre vós se tem por sábio neste mundo, faça-se louco para se tornar sábio." (I Coríntios 3:18)
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
xHarbour | Gtwvw | HwGui | DBF+CDX | mySQL | Genesis IDE
Grings
Usuário Nível 3
Usuário Nível 3
Mensagens: 340
Registrado em: 18 Ago 2004 13:51

Mensagem por Grings »

Tens razão Luiz, raciocinei de forma matemática, dever 100 é mais do que dever 2, mas não é assim que funciona.
leandrolinauer
Usuário Nível 3
Usuário Nível 3
Mensagens: 413
Registrado em: 16 Out 2006 10:59
Localização: Paranaíba-MS

Mensagem por leandrolinauer »

Luiz, fiz exatamente como vc usando DBFCDX - INDICES IDX AINDA EM CLIPPER, ABAIXO A LINHA DE INDEXAÇÃO

Index On &Chave. To (Arquivo)+"."+wRdd Eval ContaReg(Linha,Coluna) Every LastRec()/100 DESCENDING

RESULTA

Descendente
Recno 1 -> 15000.00
Recno 2 -> 10000.00
Recno 3 -> 5.00
Recno 4 -> 1.00
Recno 5 -> 0.00
Recno 6 -> -15000.00
Recno 7 -> -10000.00
Recno 8 -> -5.00
Recno 9 -> -1.00

PARA MIM TERIA QUE SER -1.00 PRIMEIRO E DEPOIS -15000.00
MAS NA TELA A VISUALIZACAO DO ARQUIVO ESTA ERRADA.
leandrolinauer
Usuário Nível 3
Usuário Nível 3
Mensagens: 413
Registrado em: 16 Out 2006 10:59
Localização: Paranaíba-MS

Descending

Mensagem por leandrolinauer »

Ao fórum.
:)) Perdoem-me minha falha de principiante, indexei os indices com Strzero(), o que não pode ser feito, por isto que os valores estavam errados, quando ví ja tinha feito.
Eu deveria estar #-) nesta hora, puts nem acredito.
Tirei a função e indexou normal e funcionou perfeitamente.

Obrigado a todos.
Grato -:]
Responder