Indexação utilizando descending.
Moderador: Moderadores
Indexação utilizando descending.
Olá a todos,
tenho um arquivo com código e nome da cidade e valor.
Queria indexar em ordem de código de cidade ascendente e dentro de cada cidade o valor seria do maior para o menor valor ( descendente) . Tem como? .
Já dei uma procurada aqui no fórum, mas não vi nada parecido. Se alguém tiver alguma dica.
Poka.
tenho um arquivo com código e nome da cidade e valor.
Queria indexar em ordem de código de cidade ascendente e dentro de cada cidade o valor seria do maior para o menor valor ( descendente) . Tem como? .
Já dei uma procurada aqui no fórum, mas não vi nada parecido. Se alguém tiver alguma dica.
Poka.
Indexação utilizando descending.
Veja se é isso:
Ate+
Código: Selecionar todos
index on STR(codigo)+DESCEND(STR(valor)) to arqntxClipper 5.2e / Blinker 5.1 / Harbour 3.2 / GTwvg
Indexação utilizando descending.
Nossa, tão simples, sei lá o que tinha feito que não dava certo.
Valeu Andril.
Poka
Valeu Andril.
Poka
Indexação utilizando descending.
Andril, não funcionou, já tentei de todo jeito, sai metade na ordem , outra parte não
estou anexando o arquivo aqui, se você ou alguém se dispuser a testar agradeço.
teria que ser nessa ordem
ex:
index on nomepraca+ descend(str(valor)) tag tempox temporary
assim sai mas o nome da praça tambem sai descendente, não é o que eu quero.
index on nomepraca+ str(valor) tag tempox descending temporary
Poka
estou anexando o arquivo aqui, se você ou alguém se dispuser a testar agradeço.
teria que ser nessa ordem
ex:
index on nomepraca+ descend(str(valor)) tag tempox temporary
assim sai mas o nome da praça tambem sai descendente, não é o que eu quero.
index on nomepraca+ str(valor) tag tempox descending temporary
Poka
- Jairo Maia
- Moderador
- Mensagens: 2785
- Registrado em: 16 Ago 2010 13:46
- Localização: Campinas-SP
Indexação utilizando descending.
Poka,
O arquivo não foi anexado, então não dá para testar. Porém, o comando está correto, tanto da sua forma como a que o ANDRIL passou, e deveria ter o efeito que você quer.
Você usa Harbour ou xHarbour, e qual versão?
O arquivo não foi anexado, então não dá para testar. Porém, o comando está correto, tanto da sua forma como a que o ANDRIL passou, e deveria ter o efeito que você quer.
Você usa Harbour ou xHarbour, e qual versão?
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Indexação utilizando descending.
Não era pelo codigo da cidade? No exemplo que postou acima, esta usando o nome da cidade. Vou ver aqui, porem o exemplo que te passei era para NTX. Na teoria, deveria funcionar normalmente.Poka escreveu:Queria indexar em ordem de código de cidade ascendente
Ate+
Clipper 5.2e / Blinker 5.1 / Harbour 3.2 / GTwvg
Indexação utilizando descending.
Segue o arquivo exportado da sua base, veja se esta correto. Como disse, usei NTX. Talvez seja algo com CDX.
Até+
Código: Selecionar todos
INDEX ON NOMEPRACA+DESCEND(STR(VALOR)) TO CIDADE- Anexos
-
SAIDA.TXT- (9.5 KiB) Baixado 64 vezes
Clipper 5.2e / Blinker 5.1 / Harbour 3.2 / GTwvg
- Jairo Maia
- Moderador
- Mensagens: 2785
- Registrado em: 16 Ago 2010 13:46
- Localização: Campinas-SP
Indexação utilizando descending.
Olá Poka,
Compilando com a versão 3.0, 3.2 e 3.4, resultou na mesma imagem abaixo e usando este código:
Compilando com a versão 3.0, 3.2 e 3.4, resultou na mesma imagem abaixo e usando este código:
Código: Selecionar todos
REQUEST DBFCDX
Function Main()
RDDSETDEFAULT( "DBFCDX" )
Use ARQCID Shared New
Index On nomepraca+Descend(Str(valor)) Tag TEMPOX TEMPORARY
SetColor( "GR+/B+" )
Browse()
Return NilAbraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Indexação utilizando descending.
Andril , Jairo é assim mesmo que era para sair.
Andril, mesmo com o código da praça o resultado é o mesmo.
veja abaixo, como fiz , e o resultado, note que a ordem segue até um determinado valor, depois desordena tudo.
Poka
Andril, mesmo com o código da praça o resultado é o mesmo.
veja abaixo, como fiz , e o resultado, note que a ordem segue até um determinado valor, depois desordena tudo.
Código: Selecionar todos
abre("arqcid","E")
sele arqCid
Index On nomepraca+Descend(Str(valor)) Tag TEMPOX TEMPORARY
arqCid->(dbsetorder(1))
Código: Selecionar todos
94.77 | ALTINOPOLIS
81.51 | ALTINOPOLIS
64.56 | ALTINOPOLIS
47.88 | ALTINOPOLIS
15.93 | ALTINOPOLIS
3.81 | ALTINOPOLIS
1.80 | ALTINOPOLIS
53.19 | ALTINOPOLIS
391.80 | ARARAQUARA
265.11 | ARARAQUARA
222.42 | ARARAQUARA
135.36 | ARARAQUARA
124.59 | ARARAQUARA
114.60 | ARARAQUARA
110.25 | ARARAQUARA
102.75 | ARARAQUARA
77.79 | ARARAQUARA
77.61 | ARARAQUARA
78.33 | ARARAQUARA
73.50 | ARARAQUARA
75.90 | ARARAQUARA
84.00 | ARARAQUARA
69.39 | ARARAQUARA
66.90 | ARARAQUARA
66.30 | ARARAQUARA
38.10 | ARARAQUARA
33.96 | ARARAQUARA
34.50 | ARARAQUARA
31.80 | ARARAQUARA
35.49 | ARARAQUARA
35.40 | ARARAQUARA
35.40 | ARARAQUARA
30.99 | ARARAQUARA
30.90 | ARARAQUARA
49.65 | ARARAQUARA
49.20 | ARARAQUARA
42.33 | ARARAQUARA
45.90 | ARARAQUARA
40.80 | ARARAQUARA
40.80 | ARARAQUARA
26.37 | ARARAQUARA
23.19 | ARARAQUARA
24.90 | ARARAQUARA
24.30 | ARARAQUARA
25.80 | ARARAQUARA
20.70 | ARARAQUARA
20.10 | ARARAQUARA
19.80 | ARARAQUARA
17.91 | ARARAQUARA
18.93 | ARARAQUARA
16.50 | ARARAQUARA
13.80 | ARARAQUARA
13.50 | ARARAQUARA
14.64 | ARARAQUARA
14.10 | ARARAQUARA
11.10 | ARARAQUARA
15.48 | ARARAQUARA
15.00 | ARARAQUARA
15.00 | ARARAQUARA
10.80 | ARARAQUARA
9.60 | ARARAQUARA
9.30 | ARARAQUARA
7.80 | ARARAQUARA
7.20 | ARARAQUARA
7.50 | ARARAQUARA
8.19 | ARARAQUARA
6.00 | ARARAQUARA
3.30 | ARARAQUARA
4.35 | ARARAQUARA
4.20 | ARARAQUARA
2.70 | ARARAQUARA
2.40 | ARARAQUARA
2.25 | ARARAQUARA
2.10 | ARARAQUARA
2.55 | ARARAQUARA
1.80 | ARARAQUARA
1.80 | ARARAQUARA
1.80 | ARARAQUARA
1.80 | ARARAQUARA
1.20 | ARARAQUARA
5.61 | ARARAQUARA
5.10 | ARARAQUARA
59.10 | ARARAQUARA
59.10 | ARARAQUARA
57.90 | ARARAQUARA
57.87 | ARARAQUARA
53.40 | ARARAQUARA
54.90 | ARARAQUARA
52.20 | ARARAQUARA
51.00 | ARARAQUARA
50.82 | ARARAQUARA
Indexação utilizando descending.
Fiz um teste com HARBOR 3.0 (rev 16951) usando CDX e retornou o mesmo resultado que postei anteriormente. Seu Harbour talvez pode ter um Bug.
Tente baixar outra versao para tirar esta duvida.
ate+
Tente baixar outra versao para tirar esta duvida.
ate+
Clipper 5.2e / Blinker 5.1 / Harbour 3.2 / GTwvg
- Jairo Maia
- Moderador
- Mensagens: 2785
- Registrado em: 16 Ago 2010 13:46
- Localização: Campinas-SP
Indexação utilizando descending.
Olá Poka,
Mas você está mudando a ordem. Tente novamente mas removendo o DbSetOrder():
Mas você está mudando a ordem. Tente novamente mas removendo o DbSetOrder():
Código: Selecionar todos
abre("arqcid","E")
sele arqCid
Index On nomepraca+Descend(Str(valor)) Tag TEMPOX TEMPORARY
// arqCid->(dbsetorder(1))Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
-
aferra
- Usuário Nível 1

- Mensagens: 41
- Registrado em: 30 Mai 2008 06:55
- Localização: Ribeirão Preto/SP
Indexação utilizando descending.
Olá, bom dia.
eu usaria de forma diferente.
continue indexando como faz e use a função
<alias>->( OrdDescend( ,,.T. ) ) <- DESCENDING
<alias>->( OrdDescend( ,,.F. ) ) <- sem DESCENDING
SINTAX
OrdDescend ()
Determina a ordem de navegação de uma área de trabalho.
argumentos
<cIndexName>
Esta é uma cadeia de caracteres que contém o nome simbólico do índice para consultar. Ele é parecido com o nome de alias de uma área de trabalho. Suporte para <cIndexName> depende do RDD utilizado para criar o índice. Normalmente, RDDS que são capazes de manter vários índices em nomes de índice simbólicas um arquivo de índice de apoio, tais como DBFCDX, por exemplo.
<Norder>
Opcionalmente, um valor numérico que especifica a posição ordinal do índice aberta numa área de trabalho. Índices são números na seqüência de abertura, começando com 1. O valor de zero identifica o índice de controle.
<cIndexFile>
<cIndexFile> é uma cadeia de caracteres com o nome do arquivo que armazena o índice. Só é necessário quando vários arquivos de índice estão abertos que contêm índices tendo o mesmo <cIndexName>.
<lNewDescendFlag>
Um valor lógico pode ser passado para <lNewDescendFlag>. Ele muda a bandeira descida do índice. Quando .T. (true) é especificado, a ordem de navegação na área de trabalho atual está definido para decrescente, .F. (false) define a ordem de navegação para ascendente.
descrição
O OrdDescend function () é usado para mudar a bandeira descer dinamicamente em tempo de execução. A ordem de navegação em uma área de trabalho pode ser alterado de ascendente para descendente e para trás sem ter que criar um índice correspondente. Quando .T. (true) é passado para a função, a ordem de navegação é invertida, ou seja, todas as funções e comandos que movem o ponteiro do registro são invertidos.
Exemplo
eu usaria de forma diferente.
continue indexando como faz e use a função
<alias>->( OrdDescend( ,,.T. ) ) <- DESCENDING
<alias>->( OrdDescend( ,,.F. ) ) <- sem DESCENDING
SINTAX
OrdDescend ()
Determina a ordem de navegação de uma área de trabalho.
argumentos
<cIndexName>
Esta é uma cadeia de caracteres que contém o nome simbólico do índice para consultar. Ele é parecido com o nome de alias de uma área de trabalho. Suporte para <cIndexName> depende do RDD utilizado para criar o índice. Normalmente, RDDS que são capazes de manter vários índices em nomes de índice simbólicas um arquivo de índice de apoio, tais como DBFCDX, por exemplo.
<Norder>
Opcionalmente, um valor numérico que especifica a posição ordinal do índice aberta numa área de trabalho. Índices são números na seqüência de abertura, começando com 1. O valor de zero identifica o índice de controle.
<cIndexFile>
<cIndexFile> é uma cadeia de caracteres com o nome do arquivo que armazena o índice. Só é necessário quando vários arquivos de índice estão abertos que contêm índices tendo o mesmo <cIndexName>.
<lNewDescendFlag>
Um valor lógico pode ser passado para <lNewDescendFlag>. Ele muda a bandeira descida do índice. Quando .T. (true) é especificado, a ordem de navegação na área de trabalho atual está definido para decrescente, .F. (false) define a ordem de navegação para ascendente.
descrição
O OrdDescend function () é usado para mudar a bandeira descer dinamicamente em tempo de execução. A ordem de navegação em uma área de trabalho pode ser alterado de ascendente para descendente e para trás sem ter que criar um índice correspondente. Quando .T. (true) é passado para a função, a ordem de navegação é invertida, ou seja, todas as funções e comandos que movem o ponteiro do registro são invertidos.
Exemplo
Código: Selecionar todos
PROCEDURE Main
USE Customer
INDEX ON Upper(Lastname+Firstname) TO Cust01
GO TOP
? LastName // result: Alberts
GO BOTTOM
? LastName // result: Waters
OrdDescend( ,, .T. ) // change navigational order
SKIP -1 // skipping backwards from the last
// record hits begin of file.
? Bof() // result: .T.
GO BOTTOM
? Eof() // result: .F.
? LastName // result: Alberts
SKIP
? Eof() // Result: .T.
GO TOP
? LastName // result: Waters
USE
RETURN
Indexação utilizando descending.
aferra, também não deu certo. Jairo, já tinha feito sem o dbsetorder sem sucesso.
Vou mudar a versão do harbour para ver o que acontece, depois reporto aqui. O arquivo para o cliente, deixei como ;
index on nomepraca + str(valor) tag tempo descending temporary mesmo.
obrigado a todos
Poka
Vou mudar a versão do harbour para ver o que acontece, depois reporto aqui. O arquivo para o cliente, deixei como ;
index on nomepraca + str(valor) tag tempo descending temporary mesmo.
obrigado a todos
Poka

