Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

rafaelbh

ReportViewer Ordenação Interativa

Recommended Posts

Olá!

 

Tenho os alguns valores em meu banco de dados, em um campo do tipo varchar, e gostaria de ordená-los assim:

 

numeroNota

1/2011

2/2011

104/2012

110/2012

 

Porém, quanto mando ordernar pela propriedade "Interactive Sorting" do textbox no reportviewer (ou até mesmo pelo próprio sql server), ele ordena da seguinte forma:

 

numeroNota

1/2011

104/2012

110/2012

2/2011

 

Como fazer para ordená-lo corretamente? Gostaria que fosse possível a criação da "expression" no próprio reportviewer e não no banco de dados. Quem puder ajudar, ficarei agradecido!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha, ele está certo, quando ele ordena o 1 vem antes do 2, por isso que você está tendo esse erro, além do mais ele é uma string, o que eu aconselho você a fazer é quebrar esta string pelo próprio banco na '/' e jogar cada valor em uma coluna, daí você dá um ORDER BY <coluna1>,<coluna2>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha, ele está certo, quando ele ordena o 1 vem antes do 2, por isso que você está tendo esse erro, além do mais ele é uma string, o que eu aconselho você a fazer é quebrar esta string pelo próprio banco na '/' e jogar cada valor em uma coluna, daí você dá um ORDER BY <coluna1>,<coluna2>

 

Na verdade, eu também tenho esses valores em colunas separadas, mas não sei como usar os dois campos na sortExpression do reportviewer. Coloquei dessa forma:

 

=Fields!anoNota.Value & Fields!numNota.Value (com vírgula dá erro e tentei com "AND" também)

 

E continua ordenando errado. Tentei também com o CInt(), mas tabém não funcionou...

 

Ordenando com uma coluna funciona: (=Fields!numNota.Value), mas preciso ordenar por anoNota, numNota.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não precisa usar direto no report, voc~e pode trazer eles direto do SQL.

 

Mas, nesse caso, eu teria que colocar o ORDER BY na consulta, certo? E ele viria, a princípio, sempre ordenado por anoNota, numNota.

Porém, o usuário vai conseguir ordenar crescente e decrescente ao clicar no ícone de ordenação do report passando o ORDER BY somente na consulta?

Se sim, como faço?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, na teoria o report deveria ser inteligente a este ponto, não é necessário nenhuma configuração adicional para a automatização deste processo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, na teoria o report deveria ser inteligente a este ponto, não é necessário nenhuma configuração adicional para a automatização deste processo.

 

O que não entendi é que, na consulta, vou passar dois campos no ORDER BY anoNota e numNota.

Mas, no report, só terei a coluna Nota (que é a concatenação de numNota + anoNota).

 

Ou seja, a coluna do report é diferente das colunas do ORDER BY.

E para criar o Interactive Sorting, tenho que especificar uma coluna ou uma expressão.

 

Desculpa ficar te amolando, mas é q estou confuso rsrsrs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então, você pode não exibir uma coluna no report, mas ter esta coluna no order by do interactive sorting.

 

Sim, mas só uma coluna, certo?

Por exemplo, no meu dataset eu tenho as duas colunas (anoNota e numNota), mas não sei como atribuir ambas à uma única coluna do report.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Concatenando é uma opção.

 

É o que já faço, mas aí volta ao meu problema... ordernar o campo concatenado com o interactive sorting.

Acredito que não tenha solução para o meu problema, que seria passar duas colunas na sortexpression :(

 

Então, vou exibir os três campos: Nota, anoNota, numNota e não colocar interactive sorting no campo Nota, somente nos outros dois. Quando o usuário quiser, vai ter que ordenar separadamente usando o "shift"... :unsure:

 

De qualquer forma, muito obrigado pela sua paciência e atenção! :thumbsup:

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.