Fórum ClientDataSet Erro ao Ordenar(IndexFieldNames) - URGENTE #365383

23/10/2008

0

Pessoal,
Estou com um problema meio bizarro.

Tenho uma tabela e quando ordeno pelo nmObjeto essa tabela pelo select fica perfeito. exemplo:

01257-X.SQL
01257A-X.SQL
01257B-X.SQL
01257C-X.SQL
01257D-X.SQL
01257E-X.SQL
01257V1-X.SQL
01257V2-X.SQL

NOTA-SE: Que esta ordenado corretamente.

Logo quando essa informação esta em um ClientDataSet
e Coloco IndexFieldNames : nmObjeto

a ordenação fica assim.......(errado))

01257A-X.SQL
01257B-X.SQL
01257C-X.SQL
01257D-X.SQL
01257E-X.SQL
01257V1-X.SQL
01257V2-X.SQL
01257-X.SQL

NOTA-SE: Que agora o primeiro registro fica por ultimo, ele esta considerando o caracter ´-´ como se fosse depois das letras do alfabeto.
Mas na Tabela ASC ele vem antes. Não sei como ordenar esse cara ali no ClientDataset.
Não posso dar orderBy no select pois essa ordenação é trocada conforme opção na tela.

Essa informação não é mostrado em uma grid, ela é exportado para um TXT.

Será que alguém tem alguma idéia.

Alguém pode ajudar????

Obrigado.


Davefloripa

Davefloripa

Responder

Posts

24/10/2008

Davefloripa

Ninguém pode me ajudar? Alguém tem alguma idéia??


Responder

Gostei + 0

24/10/2008

Jc

Na verdade, observando bem você vai ver que a ordem correta é a que vc diz que esta errada. por exemplo, ignore o nº 01257..., e observe somente as letras A, B, C...:
-------\/
01257A-X.SQL
01257B-X.SQL

o que vc pode fazer é colocar em ordem descendente quando jogar no ClientDataSet ou chamar o IndexFieldnames


Responder

Gostei + 0

24/10/2008

Davefloripa

Não, assim não da.

eu preciso que fique assim(que ordene assim))

01257-X.SQL
01257A-X.SQL
01257B-X.SQL

Eu não sei quando vai ocorrer essa situaçã, mas as vezes ocorre, e quando ela ocorre gostaria que ordenasse da forma correta.


Responder

Gostei + 0

24/10/2008

Emerson Nascimento

jogue esses dados numa coluna no excel (em qualquer ordem), mande ordenar e veja o resultado.


Responder

Gostei + 0

24/10/2008

Emerson Nascimento

o sinal de menos é o caractere ASCII 45, que ficaria no início da lista.
provavelmente, por se tratar de strings, o caractere ´-´ que você vê, deve ser o de código ASCII 150, ou algum outro...


Responder

Gostei + 0

29/10/2008

Davefloripa

Obrigado pelo esclarecimento....

Mas preciso achar uma solução ...
de ordenar pelo caracter ASCII45,

Acho que criar uma outra coluna e aonde tiver ´-´ substituir por outro caracter que seja antes na tabela ASCII e ordenar por essa nova coluna.

Obrigado!!!


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar